public void AxisAlignedBoundingBox() { var p = DotSpatialGeometry.FromWkb("LINESTRING(-1 1, -5 2, -3 4)", 32633); var bb = p.Envelope; Assert.AreEqual("Env[-5 : -1, 1 : 4", bb.ToString()); }
public override void Execute(NinServiceContext context) { Values = SqlServer.GetAreaLayerValues(AreaType, Number); var layer = Config.Settings.Map.FindLayer(MapLayerName); var store = new Cache <VectorQuadTile>(new DiskTileStore(layer)); var tiler = new VectorTiler(store, layer); var areas = SqlServer.GetAreas(AreaType, 0, Number); ZoomFactor zf = layer.GetZoomFactors(AreaType); string allAffected = ""; foreach (var area in areas) { for (int zoom = zf.Minimum; zoom <= zf.Maximum; zoom++) { var distanceTolerance = layer.SimplificationToleranceAtZoom0 * Math.Pow(0.25, zoom); var fullRes = DotSpatialGeometry.From(area.Geometry); Geometry simpler = VectorTiler.Simplify(fullRes, distanceTolerance); if (simpler.IsEmpty) { continue; } var område = Map.Tiles.Geometri.Område.Fra(area); Log.v("TILE", $"Area type {område.Type} #{område.Number}: {fullRes.Coordinates.Count} => {simpler.Coordinates.Count} (zoom {zoom})"); var affected = tiler.Update(område, simpler, zoom); if (allAffected.Length > 0) { allAffected += ","; } allAffected += affected; } } Affected = allAffected; }
public VectorQuadTile Load(string key) { var qt = new VectorQuadTile(TileCoordinates.FromRelativePath(key), layer); var fullPath = GetFullPath(key); if (!File.Exists(fullPath)) { return(qt); } string json = File.ReadAllText(fullPath); var featureCollection = JsonConvert.DeserializeObject <FeatureCollection>(json, GetJsonSerializerSettings()); foreach (Feature feature in featureCollection.Features) { var geometry = DotSpatialGeometry.FromGeoJson(feature.Geometry); var areaType = (AreaType)Enum.Parse(typeof(AreaType), feature.Properties["type"].ToString()); var areaId = int.Parse(feature.Id, CultureInfo.InvariantCulture); var område = new Område(areaId, areaType) { Category = ReadProp(feature, "category"), Name = ReadProp(feature, "name"), Number = int.Parse(feature.Properties["number"].ToString(), CultureInfo.InvariantCulture), Value = ReadProp(feature, "value"), kind = ReadProp(feature, "kind") }; qt.Områder.Add(new OmrådeMedGeometry(område, geometry)); } return(qt); //var serializer = new DataContractJsonSerializer(typeof(VectorQuadTile), CreateDataContractJsonSerializerSettings()); //using (Stream s = File.OpenRead(fullPath)) // return (VectorQuadTile)serializer.ReadObject(s); }
public void ConvertPointTest() { var point = SqlGeometry.STGeomFromText(new SqlChars("POINT(150.555 -10.666)"), 25832); var geom = DotSpatialGeometry.GetGeometry(point); Assert.True(geom.GeometryType == "Point"); Assert.False(geom.IsEmpty); }
public void ConvertEmptyGeometryCollectionTest() { var geometrycollection = SqlGeometry.STGeomFromText(new SqlChars("GEOMETRYCOLLECTION EMPTY"), 25832); var geom = DotSpatialGeometry.GetGeometry(geometrycollection); Assert.True(geom.GeometryType == "GeometryCollection"); Assert.True(geom.IsEmpty); }
private string Tile(string geom) { Område o = new Område(-1, AreaType.Fylke); var rectangle = DotSpatialGeometry.FromWkb(geom, 32633); tiler.Update(o, rectangle, 0); return(store.ToString()); }
private string GetTileRange(string geom, int zoomLevel) { var rectangle = DotSpatialGeometry.FromWkb(geom, 32633); TileRange r = tiler.GetTileRange(zoomLevel, (Envelope)rectangle.Envelope); return(r.ToString()); //return JsonConvert.SerializeObject(tids).Replace("\"", "'"); }
public void ConvertEmptyMultiLineStringTest() { var multilinestring = SqlGeometry.STGeomFromText(new SqlChars("MULTILINESTRING EMPTY"), 25832); var geom = DotSpatialGeometry.GetGeometry(multilinestring); Assert.True(geom.GeometryType == "MultiLineString"); Assert.True(geom.IsEmpty); }
public void ConvertEmptyPolygonTest() { var polygon = SqlGeometry.STGeomFromText(new SqlChars("POLYGON EMPTY"), 25832); var geom = DotSpatialGeometry.GetGeometry(polygon); Assert.True(geom.GeometryType == "Polygon"); Assert.True(geom.IsEmpty); }
public void ConvertLineStringTest() { var linestring = SqlGeometry.STGeomFromText(new SqlChars("LINESTRING(30 10, 31 11, 32 12)"), 25832); var geom = DotSpatialGeometry.GetGeometry(linestring); Assert.True(geom.GeometryType == "LineString"); Assert.False(geom.IsEmpty); }
public void ConvertEmptyMultiPointTest() { var multipoint = SqlGeometry.STGeomFromText(new SqlChars("MULTIPOINT EMPTY"), 25832); var geom = DotSpatialGeometry.GetGeometry(multipoint); Assert.True(geom.GeometryType == "MultiPoint"); Assert.True(geom.IsEmpty); }
public void ConvertGeometryCollectionTest() { var geometrycollection = SqlGeometry.STGeomFromText(new SqlChars("GEOMETRYCOLLECTION(POINT(4 6), LINESTRING(4 6, 7 10))"), 25832); var geom = DotSpatialGeometry.GetGeometry(geometrycollection); Assert.True(geom.GeometryType == "GeometryCollection"); Assert.False(geom.IsEmpty); }
public void ConvertMultiPointTest() { var multipoint = SqlGeometry.STGeomFromText(new SqlChars("MULTIPOINT((10 40), (40 30), (20 20), (30 10))"), 25832); var geom = DotSpatialGeometry.GetGeometry(multipoint); Assert.True(geom.GeometryType == "MultiPoint"); Assert.False(geom.IsEmpty); }
public void ConvertMultiLineStringTest() { var multilinestring = SqlGeometry.STGeomFromText( new SqlChars("MULTILINESTRING((10 10, 20 20, 10 40), (40 40, 30 30, 40 20, 30 10))"), 25832); var geom = DotSpatialGeometry.GetGeometry(multilinestring); Assert.True(geom.GeometryType == "MultiLineString"); Assert.False(geom.IsEmpty); }
public void ConvertPolygonTest() { var polygon = SqlGeometry.STGeomFromText( new SqlChars("POLYGON((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20))"), 25832); var geom = DotSpatialGeometry.GetGeometry(polygon); Assert.True(geom.GeometryType == "Polygon"); Assert.False(geom.IsEmpty); }
public void ConvertMultiPolygonTest() { var multipolygon = SqlGeometry.STGeomFromText( new SqlChars( "MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),(30 20, 20 15, 20 25, 30 20)))"), 25832); var geom = DotSpatialGeometry.GetGeometry(multipolygon); Assert.True(geom.GeometryType == "MultiPolygon"); Assert.False(geom.IsEmpty); }
private static void TileNorway() { var layer = new TiledVectorLayer("test2", WebMercator.BoundingBox1, 39135.75848201024 * 4); var store = new DiskTileStore(layer); store.Wipe(); var tiler = new VectorTiler(store, layer); var filename = FileLocator.FindFileInTree(@"data\norway.geojson"); FeatureCollection norway = JsonConvert.DeserializeObject <FeatureCollection>(File.ReadAllText(filename)); List <OmrådeMedGeometry> partOfNorway = new List <OmrådeMedGeometry>(); foreach (var feature in norway.Features) { partOfNorway.Add(new OmrådeMedGeometry(new Område(3581, AreaType.Land), DotSpatialGeometry.From(feature))); } foreach (var omg in partOfNorway) { omg.Område.Number = -5; } for (int zoom = 0; zoom < 6; zoom++) { foreach (OmrådeMedGeometry polygon in partOfNorway) { tiler.Update(polygon.Område, polygon.Geometry, zoom); } } }
public void TileNorway() { var filename = FileLocator.FindFileInTree(@"data\norway.geojson"); FeatureCollection norway = JsonConvert.DeserializeObject <FeatureCollection>(File.ReadAllText(filename)); List <OmrådeMedGeometry> partOfNorway = new List <OmrådeMedGeometry>(); foreach (var feature in norway.Features) { partOfNorway.Add(new OmrådeMedGeometry(new Område(3581, AreaType.Land), DotSpatialGeometry.From(feature))); } foreach (var omg in partOfNorway) { omg.Område.Number = -5; } for (int zoom = 0; zoom < 6; zoom++) { foreach (OmrådeMedGeometry polygon in partOfNorway) { tiler.Update(polygon.Område, polygon.Geometry, zoom); } } }