Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        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;
        }
Пример #3
0
        public TileToDisk()
        {
            var layer = new TiledVectorLayer("test2", WebMercator.BoundingBox1, 39135.75848201024 * 4);
            var store = new DiskTileStore(layer);

            store.Wipe();
            tiler = new VectorTiler(store, layer);
        }
Пример #4
0
        public TilePolygonTest()
        {
            var layer = new TiledVectorLayer("", bbox, 39135.75848201024 * 4)
            {
                TileOverlapRatio = 0
            };

            store = new TestTileStore(layer);
            tiler = new VectorTiler(store, layer);
        }
Пример #5
0
        public TileRangeTest()
        {
            TiledVectorLayer layer = new TiledVectorLayer("", bbox, 39135.75848201024 * 4);

            tiler = new VectorTiler(new TestTileStore(layer), layer);
        }