Pembuat Ubin
Pembuat Ubin
Peta ubin adalah cara paling populer untuk menampilkan dan menavigasi peta. GeneratorTiles
memiliki metode untuk merender ubin untuk peta yang dibangun atau tujuan praktis lainnya.
Kita perlu mengatur lapisan input (atau lapisan), direktori output, dan parameter zoom. Jika kita memiliki lebih dari satu lapisan, maka untuk setiap lapisan, kita menggabungkan geometri dan membuat lapisan gabungan baru. Semua ubin dibuat di direktori output yang ditentukan dan memiliki nama tile_zxy_{z}_{x}_{y}
, di mana z
adalah parameter zoom, x
dan y
adalah koordinat dari luas sudut kiri atas ubin. Pada level zoom “0”, seluruh lapisan akan dirender dalam satu ubin peta. Setiap level zoom berlipat ganda dalam kedua dimensi, sehingga satu ubin diganti oleh 4 ubin saat memperbesar. Ubin disimpan dengan ekstensi “png”.
Contoh dengan lapisan InMemory
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); // untuk melihat seluruh ubin
GeneratorTiles.GenerateTiles(layer, OutDirectory, zoom: 1); // untuk melihat 4 ubin
Contoh saat kita mendapatkan lapisan dari file GeoJson (atau lainnya)
var layer_GeoJson = VectorLayer.Open(sourcePath, Drivers.GeoJson);
var layer_OsmXml = VectorLayer.Open(sourcePath, Drivers.OsmXml);
GeneratorTiles.GenerateTiles(layer_GeoJson, OutDirectory, zoom: 0); // untuk melihat seluruh ubin
GeneratorTiles.GenerateTiles(layer_GeoJson, OutDirectory, zoom: 2); // untuk melihat 16 ubin
GeneratorTiles.GenerateTiles(layer_OsmXml, OutDirectory, zoom: 0); // untuk melihat seluruh ubin
GeneratorTiles.GenerateTiles(layer_OsmXml, OutDirectory, zoom: 2); // untuk melihat 16 ubin
Contoh dengan multi lapisan
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); // untuk melihat seluruh ubin
GeneratorTiles.GenerateTiles(listLayers, OutDirectory, zoom: 1); // untuk melihat 4 ubin