Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quelle  gis-json.test  Sprache: unbekannt

 
Spracherkennung für: .test vermutete Sprache: Ada {ADA[90] SQL[90] VHDL[90]} [Methode: maximale Elemente, drei Dimensionen]

-- source include/have_geometry.inc

select st_asgeojson(geomfromtext('POINT(1 1)')) as exp;
select st_asgeojson(geomfromtext('LINESTRING(10 10,20 10,20 20,10 20,10 10)')) as exp;
select st_asgeojson(geomfromtext('POLYGON((10 10,20 10,20 20,10 20,10 10))')) as exp;
select st_asgeojson(geomfromtext('MULTIPOLYGON(((10 10,20 10,20 20,10 20,10 10)))')) as exp;
select st_asgeojson(geomfromtext('multilinestring((10 10,20 10,20 20,10 20,10 10))')) as exp;
select st_asgeojson(geomfromtext('multipoint(10 10,20 10,20 20,10 20,10 10)')) as exp;
select st_asgeojson(st_geomfromtext('GEOMETRYCOLLECTION(POINT(100 0),LINESTRING(101 0,102 1))')) as exp;

SELECT st_astext(st_geomfromgeojson('{"type":"point","coordinates":[1,2]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type":"LineString","coordinates":[[1,2],[4,5],[7,8]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "polygon", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type":"multipoint","coordinates":[[1,2],[4,5],[7,8]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "multilinestring", "coordinates": [[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "multipolygon", "coordinates": [[[[10, 10], [20, 10], [20, 20], [10, 20], [10, 10]]]]}')) as exp;
SELECT st_astext(st_geomfromgeojson('{"type": "GeometryCollection", "geometries": [{"type": "Point","coordinates": [100.0, 0.0]}, {"type": "LineString","coordinates": [[101.0, 0.0],[102.0, 1.0]]}]}')) as exp;

SELECT st_astext(st_geomfromgeojson('{"type":"point"}'));
SELECT st_astext(st_geomfromgeojson('{"type":"point"'));
SELECT st_astext(st_geomfromgeojson('{"type""point"}'));

SELECT st_astext(st_geomfromgeojson('{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] } }')) as exp;
SELECT st_astext(st_geomfromgeojson('{ "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "type": "Feature" }')) as exp;
SELECT st_astext(st_geomfromgeojson('{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [102.0, 0.5] }, "properties": { "prop0": "value0" } }]}')) as exp;


--error ER_WRONG_VALUE_FOR_TYPE
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',5));

--error ER_GIS_INVALID_DATA
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',1)) as exp;

SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',2)) as exp;
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',3)) as exp;
SELECT ST_AsText(ST_GeomFromGeoJSON('{ "type": "Point", "coordinates": [5.3, 15.0, 4.3]}',4)) as exp;

SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),2);
SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),1);
SELECT ST_AsGeoJSON(ST_GeomFromText('POINT(5.363 7.266)'),10);

SELECT ST_AsGeoJSON(ST_GeomFromText("POINT(10 11)"), 100, 1);
SELECT ST_AsGeoJSON(ST_GeomFromText("POINT(10 11)"), 100, 5);

SELECT st_astext(st_geomfromgeojson('{"type": "MultiLineString","coordinates": []}')) as a;
SELECT st_astext(st_geomfromgeojson('{"type": "Polygon","coordinates": []}')) as a;
SELECT st_astext(st_geomfromgeojson('{"type": "MultiPolygon","coordinates": []}')) as a;

SELECT ST_GEOMFROMGEOJSON("{ \"type\": \"Feature\", \"geometry\": [10, 20] }") as exp;

#
# MDEV-25461 Assertion `je->state == JST_KEY' failed in Geometry::create_from_json.
#

SELECT ST_ASTEXT (ST_GEOMFROMGEOJSON ('{ "type": "GEOMETRYCOLLECTION", "coordinates": [102.0, 0.0]}')) as exp;

SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type": ["POINT"], "coINates": [0,0] }')) as exp;
--echo #
--echo # End of 10.2 tests
--echo #


--echo # Boundary condition: foreign-member nesting at depth 32
SET @geom := '{"type":"Point","coordinates":[1,2]}';

SET @doc := CONCAT(
  REPEAT('{"x":', 29),
  @geom,
  REPEAT('}', 29)
);

SELECT ST_ASTEXT( ST_GeomFromGeoJSON(@doc) ) AS expr;


--echo # Foreign-member nesting exceeds depth 32
SET @geom := '{"type":"Point","coordinates":[1,2]}';

SET @doc := CONCAT(
  REPEAT('{"x":', 30),
  @geom,
  REPEAT('}', 30)
);

SELECT ST_GeomFromGeoJSON(@doc) AS expr;


--echo # Deep foreign member attached to otherwise valid GeoJSON
SET @foreign := CONCAT(
  REPEAT('{"x":', 28),
  '{"leaf":1}',
  REPEAT('}', 28)
);

SET @doc := CONCAT(
  '{"type":"Point","coordinates":[10,20],"foreign":',
  @foreign,
  '}'
);

SELECT ST_ASTEXT(ST_GeomFromGeoJSON(@doc)) AS expr;


--echo # Foreign member exceeds depth limit
SET @foreign := CONCAT(
  REPEAT('{"x":', 29),
  '{"leaf":1}',
  REPEAT('}', 29)
);

SET @doc := CONCAT(
  '{"type":"Point","coordinates":[10,20],"foreign":',
  @foreign,
  '}'
);

SELECT ST_ASTEXT(ST_GeomFromGeoJSON(@doc)) AS expr;

--echo # GeometryCollection containing 33 valid GeoJSON Point objects
SET @point := '{"type":"Point","coordinates":[1,2]}';

SET @geoms := CONCAT(
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point, ',', @point, ',', @point, ',',
  @point, ',', @point, ',', @point
);

SET @doc := CONCAT(
  '{"type":"GeometryCollection","geometries":[',
  @geoms,
  ']}'
);

SELECT ST_AsText(ST_GeomFromGeoJSON(@doc)) AS expr;

--echo #
--echo # MDEV-39981: ST_GEOMFROMGEOJSON returns wrong result with reversed key order
--echo #

--echo # GeometryCollection: type before geometries (baseline)
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"type":"GeometryCollection","geometries":[]}')) as expr;

--echo # GeometryCollection: geometries before type (empty)
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"geometries":[],"type":"GeometryCollection"}')) as expr;

--echo # GeometryCollection: geometries before type (non-empty)
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"geometries":[{"type":"Point","coordinates":[0,1]}],"type":"GeometryCollection"}')) as expr;

--echo # GeometryCollection: multiple geometries before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"geometries":[{"type":"Point","coordinates":[1,2]},{"type":"Point","coordinates":[3,4]}],"type":"GeometryCollection"}')) as expr;

--echo # Point: coordinates before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"coordinates":[0,1],"type":"Point"}')) as expr;

--echo # LineString: coordinates before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"coordinates":[[0,0],[1,1],[2,2]],"type":"LineString"}')) as expr;

--echo # Polygon: coordinates before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"coordinates":[[[0,0],[1,0],[1,1],[0,1],[0,0]]],"type":"Polygon"}')) as expr;

--echo # FeatureCollection: features before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"features":[{"geometry":{"type":"Point","coordinates":[5,6]},"type":"Feature","properties":{}}],"type":"FeatureCollection"}')) as expr;

--echo # Feature: geometry before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"geometry":{"coordinates":[7,8],"type":"Point"},"type":"Feature","properties":{}}')) as expr;

--echo # Unknown keys interspersed (should be ignored)
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"foo":"bar","geometries":[],"type":"GeometryCollection","extra":123}')) as expr;

--echo # Deeply nested geometries before type
SELECT ST_ASTEXT(ST_GEOMFROMGEOJSON('{"geometries":[{"geometries":[{"type":"Point","coordinates":[9,10]}],"type":"GeometryCollection"}],"type":"GeometryCollection"}')) as expr;

--echo # End of 10.6 tests

--echo #
--echo # MDEV-34079: ST_AsGeoJSON returns incorrect value for empty geometry
--echo #

SELECT ST_AsGeoJSON(GeomFromText('GeometryCollection EMPTY'));
SELECT ST_AsGeoJSON(ST_DIFFERENCE(POINT(0,0), POINT(0,0)));
SELECT ST_AsGeoJSON(GeomFromText('MultiPoint EMPTY'));
SELECT ST_AsGeoJSON(GeomFromText('MultiLineString EMPTY'));
SELECT ST_AsGeoJSON(GeomFromText('MultiPolygon EMPTY'));

--echo # End of 10.11 tests

[Dauer der Verarbeitung: 0.24 Sekunden, vorverarbeitet 2026-10-08]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1126864
#Domains=1897691