Dart Documentationsimple_features

simple_features library

Functions

dynamic parseGeoJson(String geoJson) #

Parses GeoJSON.

Returns a Geometry, a Feature, or a FeatureCollection.

parseGeoJson(String geoJson) {
 var value = json.parse(geoJson);
 assert(value is Map);

 Point pos(coord) => new Point(coord[0], coord[1]);
 List<DirectPosition2D> poslist(l) => l.map(pos).toList();

 deserializePoint(Map gj) =>
     pos(gj["coordinates"]);

 deserializeMultiPoint(Map gj) =>
     new MultiPoint(poslist(gj["coordinates"]));

 deserializeLineString(Map gj) =>
     new LineString(poslist(gj["coordinates"]));

 deserializeMultiLineString(Map gj) =>
   new MultiLineString(
     gj["coordinates"]
     .map((ls) => new LineString(poslist(ls)))
     .toList()
   );

 polygonFromCoordinates(coords) {
   var rings = coords
     .map((l) => poslist(l))
     .map((poslist) => new LineString(poslist))
     .toList();
   return new Polygon(rings.first, rings.skip(1));
 }

 deserializePolygon(Map gj) =>
   polygonFromCoordinates(gj["coordinates"]);

 deserializeMultipolygon(Map gj) =>
     new MultiPolygon(
         gj["coordinates"]
         .map((coords) => polygonFromCoordinates(coords))
         .toList()
     );

 var deserialize;

 deserializeGeometryCollection(Map gj) =>
     new GeometryCollection(gj["geometries"]
       .map((o) => deserialize(o))
       .toList()
     );

 deserializeFeature(Map gj) {
   var geometry = deserialize(gj["geometry"]);
   var properties = gj["properties"];
   return new Feature(geometry, properties);
 }

 deserializeFeatureCollection(Map gj) {
   var features = gj["features"]
     .map((f) => deserializeFeature(f))
     .toList();
   return new FeatureCollection(features);
 }

 deserialize = (Map gj) {
   switch(gj["type"]) {
     case "Point":      return deserializePoint(gj);
     case "MultiPoint": return deserializeMultiPoint(gj);
     case "LineString": return deserializeLineString(gj);
     case "MultiLineString": return deserializeMultiLineString(gj);
     case "Polygon":    return deserializePolygon(gj);
     case "MultiPolygon": return deserializeMultipolygon(gj);
     case "GeometryCollection": return deserializeGeometryCollection(gj);
     case "Feature": return deserializeFeature(gj);
     case "FeatureCollection" : return deserializeFeatureCollection(gj);
     default:
       throw new FormatException(
           "unknown GeoJson object type '${gj['type']}"
       );
   }
 };

 return deserialize(value);
}

Geometry parseWKT(String wkt) #

Parses the WKT string wkt and replies the parsed Geometry.

wkt must not be null.

Throws a WKTError if parsing fails.

Geometry parseWKT(String wkt) {
 _require(wkt != null);
 var parser = new _WKTParser(wkt);
 parser.advanceMandatory();
 return parser.parseWKTObject();
}

Abstract Classes

Classes

Tin

Exceptions