Döşeme Üreticisi

Döşeme Üreticisi

Döşeme haritası, haritaları görüntülemenin ve bunlarda gezinmenin en popüler yoludur. GeneratorTiles, yerleşik harita veya diğer pratik amaçlar için döşemeler oluşturmak için yöntemlere sahiptir. Giriş katmanını (veya katmanlarını), çıktı dizinini ve yakınlaştırma parametresini ayarlamamız gerekir. Birden fazla katmanımız varsa, her katman için geometrileri birleştirir ve yeni bir birleşik katman oluşturur. Tüm döşemeler ayarlanmış çıktı dizinine tile_zxy_{z}_{x}_{y} adıyla kaydedilir; burada z yakınlaştırma parametresidir, x ve y ise sol üst köşenin kapsamının koordinatlarıdır. “0” yakınlaştırma seviyesinde tüm katman tek bir harita döşemesine işlenir. Her yakınlaştırma seviyesi her iki boyutta da ikiye katlanır; bu nedenle, yakınlaştırıldığında tek bir döşeme 4 döşemeyle değiştirilir. Döşemeler “png” uzantısıyla kaydedilir.

Bellekte Katman Örneği

var layer = Drivers.InMemory.CreateLayer();

Feature feature_1 = layer.ConstructFeature();
feature_1.Geometry = Geometry.FromText("LINESTRING(0 0, 500 300)");
layer.Add(feature_1);

Feature feature_2 = layer.ConstructFeature();
feature_2.Geometry = Geometry.FromText("LINESTRING(0 300, 500 0)");
layer.Add(feature_2);

GeneratorTiles.GenerateTiles(layer, OutDirectory, zoom: 0); // tüm döşemeyi görmek için
GeneratorTiles.GenerateTiles(layer, OutDirectory, zoom: 1); // 4 döşeme görmek için

Katmanı GeoJson (veya diğer) dosyasından aldığımızda Örnek

var layer_GeoJson = VectorLayer.Open(sourcePath, Drivers.GeoJson);
var layer_OsmXml = VectorLayer.Open(sourcePath, Drivers.OsmXml);

GeneratorTiles.GenerateTiles(layer_GeoJson, OutDirectory, zoom: 0); // tüm döşemeyi görmek için
GeneratorTiles.GenerateTiles(layer_GeoJson, OutDirectory, zoom: 2); // 16 döşeme görmek için

GeneratorTiles.GenerateTiles(layer_OsmXml, OutDirectory, zoom: 0); // tüm döşemeyi görmek için
GeneratorTiles.GenerateTiles(layer_OsmXml, OutDirectory, zoom: 2); // 16 döşeme görmek için

Çoklu katmanlı örnek

var layer1 = Drivers.InMemory.CreateLayer();
var layer2 = Drivers.InMemory.CreateLayer();
var layer3 = Drivers.InMemory.CreateLayer();

Feature feature1 = layer1.ConstructFeature();
feature1.Geometry = Geometry.FromText("LINESTRING(-250 100, 0 0)");
layer1.Add(feature1);

Feature feature2 = layer1.ConstructFeature();
feature2.Geometry = Geometry.FromText("LINESTRING(0 100, 250 200)");
layer2.Add(feature2);

Feature feature3 = layer1.ConstructFeature();
feature3.Geometry = Geometry.FromText("LINESTRING(-250 200, 250 0)");
layer3.Add(feature3);

List<VectorLayer> listLayers = new List<VectorLayer>();
listLayers.Add(layer1);
listLayers.Add(layer2);
listLayers.Add(layer3);

GeneratorTiles.GenerateTiles(listLayers, OutDirectory, zoom: 0); // tüm döşemeyi görmek için
GeneratorTiles.GenerateTiles(listLayers, OutDirectory, zoom: 1); // 4 döşeme görmek için