GPX'i GeoJSON'a dönüştürme

Bu dönüştürücü, GPS cihazından, Strava'dan veya Garmin Connect'ten gelen GPX yol noktalarını, rotalarını ve izlerini GeoJSON objelerine çevirir; yüksekliği üçüncü koordinat olarak korur ve boş GPX alanlarını atar. Dosya tarayıcınızda dönüştürülür, sunucuya gönderilmez. Her iz tek bir MultiLineString olur, nabız, kadans ve güç uzantıları okunmaz; nokta zamanları yalnızca tüm iz noktalarını eklerseniz korunur.

Bir dosya doğru dönüştürülmedi mi? Tercihen küçük bir örnek dosyayla birlikte [email protected] adresine e-posta gönderin, sorun düzeltilecektir.

Temel bilgiler

GPX → GeoJSON: neden dönüştürmelisiniz

GPX, kaydedilmiş bir yürüyüşü, bisiklet turunu veya koşuyu bir GPS cihazından, Strava'dan, Garmin Connect'ten ya da Komoot'tan dışarı almanın standart yoludur. Bu güzergâhı bir Leaflet veya MapLibre haritasında göstermek, D3 ile bir yükseklik profili çizmek ya da PostGIS'e veya başka bir veritabanına aktarmak istiyorsanız elinizde GeoJSON olması gerekir. Bu dönüştürücü GPX dosyasındaki yol noktalarını (waypoint), rotaları ve izleri okur ve bunları GeoJSON objeleri olarak yazar; her noktanın yüksekliği de üçüncü koordinat olarak saklanır. GPX dosyaları, neredeyse her zaman boş kalan uzun bir standart alan listesiyle gelir; magvar, hdop veya link2_type gibi. Yalnızca değer içeren alanlar korunur, böylece öznitelikler sade ve okunaklı kalır. Her şey tarayıcınızda GDAL ile çalışır ve dosyanız hiçbir sunucuya gönderilmez.

GPX dosyası GeoJSON biçimine nasıl dönüştürülür

  1. .gpx dosyanızı kutuya bırakın veya tıklayıp seçin.
  2. İzi haritada kontrol edin; her iz noktasını zamanıyla birlikte de almak istiyorsanız kutucuğu işaretleyin.
  3. “GeoJSON biçimine dönüştür” düğmesine tıklayın ve GeoJSON dosyasını ya da her veri türü için ayrı dosya içeren zip'i indirin.

Dönüştürme sırasında neler değişir

Her veri türü için ayrı bir GeoJSON dosyası

Bir GPX dosyası aynı anda yol noktaları, rotalar ve izler içerebilir ve her birinin alanları farklıdır. Bunlar bir zip içinde waypoints.geojson, routes.geojson ve tracks.geojson adlı ayrı dosyalara yazılır. Strava'dan ya da bir saatten alınan dışa aktarımların çoğunda olduğu gibi yalnızca bir iz içeren dosya ise GPX'in adını taşıyan tek bir GeoJSON dosyası verir.

Bir iz MultiLineString olur

GPX izi segmentlerden oluşur; kayıt duraklatıldığında veya sinyal kaybolduğunda yeni bir segment başlar. Bu boşlukları korumak için her iz, her segment için ayrı bir çizgi içeren tek bir MultiLineString objesine dönüşür. Bir rota tek bir LineString, bir yol noktası ise Point olur.

Üçüncü koordinat olarak yükseklik

ele etiketlerindeki yükseklikler, RFC 7946'nın izin verdiği şekilde her koordinatın üçüncü değeri olur; örneğin [32.854, 39.92, 938]. Web haritaları bu değeri yok sayar, ancak yükseklik profilleri ve 3B görünümler için hazırda bulunur. Yüksekliği olmayan noktalar iki değerle kalır; yol noktalarının yüksekliği ayrıca ele özniteliği olarak da saklanır.

Zaman damgaları için iz noktaları gerekir

GeoJSON'daki bir çizginin, her nokta için ayrı bir zaman tutacak yeri yoktur. “Her iz noktasını da zamanı ve yüksekliğiyle birlikte ekle” kutucuğunu işaretlerseniz track_points.geojson adlı ek bir dosya alırsınız: bu dosyada kaydedilen her nokta için bir Point objesi bulunur ve zaman, yükseklik, iz numarası ile segment numarası öznitelik olarak yazılır. Bu dosya büyük olabilir; saniyede bir kayıt alınan iki saatlik bir bisiklet turu 7.000'den fazla nokta içerir.

Cihaz uzantıları okunmaz

Akıllı saatlerin ve bisiklet bilgisayarlarının her noktaya uzantı (extension) olarak kaydettiği nabız, kadans, güç ve sıcaklık değerleri çıktıya alınmaz. Yol noktalarının adları, açıklamaları, sembolleri ve türleri ise korunur.

Dosya biçimleri hakkında

GPX

GPX (GPS Exchange Format), Garmin, Strava ve Komoot gibi GPS cihazları ve uygulamalarının kullandığı XML biçimidir. Ara noktaları (waypoint), rotaları ve izleri isteğe bağlı zaman ve yükseklik bilgisiyle saklar. Bugün kullanılan sürüm, TopoGrafix tarafından 2004'te yayımlanan 1.1 sürümüdür.

  • Ara noktalar tekil noktalardır; rota, birkaç noktadan geçen planlanmış bir çizgidir; iz ise kaydedilmiş yoldur ve çoğu zaman binlerce noktadan oluşur.
  • İzler her nokta için bir zaman damgası ve yükseklik taşıyabilir.
  • Koordinatlar her zaman WGS84 enlem ve boylamdır.
  • GPX'in sabit bir alan kümesi vardır (ad, açıklama, sembol, tür ve birkaç tane daha); geri kalan her şey uzantılara (extensions) yazılmalıdır.

GeoJSON

GeoJSON, coğrafi nesneler için düz metin bir JSON biçimidir ve 2016'da RFC 7946 olarak standartlaştırıldı. Leaflet, MapLibre ve Mapbox gibi web haritalarının ve birçok API'nin doğal biçimidir.

  • Koordinatlar WGS84 boylam, enlem şeklindedir (bu sırayla).
  • Noktalar, çizgiler ve poligonlar tek bir dosyada karıştırılabilir.
  • Özellikler (properties) herhangi bir JSON değeri olabilir; alan adı uzunluğunda sınır yoktur.

Sıkça sorulan sorular

GPX dosyam bir sunucuya yükleniyor mu?

Hayır. Dosyayı tarayıcınız kendi cihazınızda dönüştürür. Hiçbir şey sunucuya gönderilmez; böylece ev adresiniz ve antrenman saatleriniz gizli kalır.

Neden bir zip dosyası aldım?

GPX dosyanız birden fazla veri türü içeriyor, örneğin yol noktaları ve bir iz. Her tür kendi GeoJSON dosyasına yazılır. GeoJSON noktaları ve çizgileri tek bir dosyada karıştırabildiği için, haritanız tek dosya gerektiriyorsa bunları sonradan birleştirebilirsiniz.

GeoJSON'u geojson.io'da veya QGIS'te açabilir miyim?

Evet. Çıktı, WGS84 boylam ve enlemiyle RFC 7946'ya uygundur; geojson.io, QGIS, Leaflet, MapLibre ve GitHub bu dosyayı okuyabilir.

Rota noktalarına ne oluyor?

Bir rotanın noktaları zaten rota çizgisinin köşe noktalarıdır (vertex), bu yüzden ayrı objeler olarak bir kez daha yazılmazlar.