GeoJSON coğrafi özellikleri uzamsal olmayan özelliklerle temsil etmek için kullanılır. Oysa TopoJSON, GeoJSON’un Topoloji kullanan bir uzantısıdır. Gereksinimlerinize göre GeoJSON’u TopoJSON’a ve TopoJSON’u GeoJSON’a dönüştürebilirsiniz. Aşağıdaki kullanım durumlarını ayrıntılı olarak inceleyelim:
- GeoJSON ve TopoJSON arası dönüşüm – C# .NET API Kurulumu
- C# kullanarak GeoJSON’u Programlı Olarak TopoJSON’a Dönüştürün
- C# kullanarak Niceleme ile GeoJSON’u TopoJSON’a dönüştürün
- C# ile TopoJSON’u Programlı Olarak GeoJSON’a Dönüştürün
GeoJSON ve TopoJSON arası dönüşüm – C# .NET API Kurulumu
Aspose.GIS for .NET API, coğrafi verileri işlemek veya dönüştürmek için kullanılabilir. API’yi, DLL dosyasını İndirilenler bölümünden veya NuGet galerisinden aşağıdaki kurulum komutuyla indirerek kolayca yapılandırabilirsiniz:
PM> Install-Package Aspose.GIS
C# kullanarak GeoJSON’u Programlı Olarak TopoJSON’a Dönüştürün
GeoJSON’dan TopoJSON’a dosya dönüştürme, jeo-uzamsal özellikleri kodladığı ve dosya boyutu olarak daha küçük olduğu için faydalıdır. Topoloji ve fazlalığı ortadan kaldırması nedeniyle dosya boyutunda daha küçüktür. Ayrıca, paylaşılan bir topoloji olmadığında bile, sabit hassasiyetli kodlama, GeoJSON dosya biçiminin kayan noktalı kodlamasından çok daha verimlidir. Aşağıdaki adımlarla GeoJSON’u TopoJSON’a dönüştürebilirsiniz:
- Girdi GeoJSON dosyasını yükle
- GeoJSON’u TopoJSON’a dönüştürün
Aşağıdaki kod parçacığı, GeoJSON’un C# kullanarak programlı olarak TopoJSON’a nasıl dönüştürüleceğini gösterir:
// Girdi GeoJSON dosyasını yükle
string sampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSample_out.topojson";
// GeoJSON'u TopoJSON'a dönüştür
VectorLayer.Convert(sampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson);
C# kullanarak Niceleme ile GeoJSON’u TopoJSON’a dönüştürün
GeoJSON’dan TopoJSON’a dönüştürme, sabit hassasiyetli verimlilik ve daha küçük dosya boyutu nedeniyle popülerdir. Ayrıca niceleme, koordinatların kesinliğini azaltır. Sonuç olarak, koordinatları tamsayılar olarak temsil ederek dosya boyutunu optimize eder. Böylece, aşağıdaki adımlarla GeoJSON’u niceleme ile TopoJSON’a dönüştürebilirsiniz:
- ConversionOptions sınıf nesnesini başlat
- Niceleme Numarasını Belirtin
- Veya Transform özelliğini ayarlayın
- Niceleme ile GeoJSON’u TopoJSON’a dönüştürün
Aşağıdaki kod, GeoJSON’un niceleme ile TopoJSON’a nasıl dönüştürüleceğini gösterir. Dönüşüm için iki alternatif yaklaşımı açıklar:
// GeoJSON'u niceleme ile TopoJSON'a dönüştürün - dosya boyutunu azaltmak için çiftleri tamsayılara dönüştürün.
string SampleGeoJsonPath = dataDir + "sample.geojson";
var outputFilePath = dataDir + "convertedSampleWithQuantization_out.topojson";
// ConversionOptions sınıf nesnesini başlat
var options = new ConversionOptions
{
DestinationDriverOptions = new TopoJsonOptions
{
// Kuantizasyon parametrelerini ayarlamanın iki yolu vardır - Transform özelliğiyle veya
// kuantizasyon numarası ile. Burada kuantizasyon sayısını belirtiyoruz.
// Niceleme numarası, sonuçta boyut başına ifade edilebilir değerlerin sayısını belirtir
// koordinatlar.
QuantizationNumber = 100_000,
// Alternatif olarak, 'Dönüştür' özelliği ayarlanabilir (ancak niceleme numarasıyla aynı anda değil).
// Dönüşüm nesnesi ve niceleme hakkında daha fazla ayrıntı için TopoJSON spesifikasyonuna bakın.
//
// Dönüşüm = yeni TopoJsonTransform(
// xTranslate: 0,
// yÇevir: 0,
// xÖlçek: 0.0001000010000100001,
// yÖlçek: 0.0001000010000100001),
}
};
VectorLayer.Convert(SampleGeoJsonPath, Drivers.GeoJson, outputFilePath, Drivers.TopoJson, options);
C# ile TopoJSON’u Programlı Olarak GeoJSON’a Dönüştürün
Aspose.GIS for .NET API, TopoJSON’dan GeoJSON’a dosya dönüştürmeyi destekler. Böylece bu özelliği .NET uygulamalarınıza ekleyebilirsiniz. Ayrıca GeoJSON dosyası, topoloji gerektirmeyen geometrilerin sunucu tarafında işlenmesinde genellikle tercih edilir. TopoJSON’dan GeoJSON’a dönüşüm için aşağıdaki adımları takip edebilirsiniz:
- Giriş TopoJSON dosyasını yükle
- TopoJSON’u GeoJSON’a dönüştürme
Aşağıdaki kod, TopoJSON’un C# kullanarak programlı olarak GeoJSON’a nasıl dönüştürüleceğini gösterir:
// Giriş TopoJSON dosyasını yükle
var sampleTopoJsonPath = dataDir + "sample.topojson";
var outputFilePath = dataDir + "convertedSample_out.geojson";
// TopoJSON'u GeoJSON dosyasına dönüştürün
VectorLayer.Convert(sampleTopoJsonPath, Drivers.TopoJson, outputFilePath, Drivers.GeoJson);
Çözüm
Bu yazımızda GeoJSON ve TopoJSON dosya formatlarının farklılıklarını ve uygunluğunu öğrendiniz. Ayrıca, gereksinimlerinize göre bunları nasıl birbirine dönüştüreceğinizi de keşfettiniz. Aspose.GIS for .NET API, uygulamalarınızda dönüşümler arası verimli ve hızlı bir şekilde gerçekleştirebilir. Ayrıca, API’yi Documentation ziyaret ederek daha fazla bilgi edinebilirsiniz. Herhangi bir sorunuz veya endişeniz olması durumunda lütfen Ücretsiz Destek Forumları üzerinden bize yazmaktan çekinmeyin.