Coğrafi Bilgi Sistemi Vektör Verilerini KML'ye Dönüştürme

Mano Marks, Google Coğrafi API'ler Ekibi
Eylül 2009

Hedef

Bu eğitim, OGR açık kaynak kitaplığını kullanarak Coğrafi Bilgi Sistemi vektör verilerini KML'ye dönüştürmeyle ilgili temel bilgiler konusunda size yol gösterir. Bu kitaplıklar çoğu GIS dosyasıyla kullanılabilir ancak bu eğitim, ESRI şekil dosyalarıyla çalışmaya odaklanacaktır.

Giriş

Coğrafi veriler web'de birçok biçimde mevcuttur. KML en yaygın kullanılan dosya biçimlerinden biridir, ancak diğer pek çok dosya türü de kullanılmaktadır. Büyük şirketler, devletler ve STK'lar, haritalarını oluşturmak için özel dosya biçimleriyle birlikte coğrafi bilgi sistemlerini kullanır. Bu uygulamalar genellikle özel eğitim gerektirir veya en azından belirli bir süre içinde öğrenilmesi gerekir. Özel markalar oldukça pahalı olabilir. Diğer yandan, son derece güçlü olan bu araçlar, profesyonel haritacı için zengin bir harita oluşturma aracı seti sağlar.

Birçok devlet kurumu, Coğrafi Bilgi Sistemi verilerinin bir kısmını kamusal kullanım için serbest bırakmaktadır. Data.gov, Massachusetts Coğrafi Bilgi Sistemi ve DataSF gibi portallar topluluklarına ait verileri bulmayı kolaylaştırır. Bu makalede, vektör verilerinin (noktalar, çizgiler ve çokgenler gibi basit geometrilerden oluşan veriler) KML'ye nasıl dönüştürüleceği açıklanmaktadır. Bu sayede, aşağıdakiler de dahil olmak üzere çok çeşitli veri türlerine erişim elde edersiniz:

  • Parça oluşturma sınırlarını temsil eden paket verileri
  • Suç raporları gibi olay verileri
  • Belediyeler, eyaletler, ilçeler, iller vb. ile ilgili sınır verileri.
  • Planlanan yollar ve mevcut yollar dahil yol verileri
  • İzinlerin verildiği yerleri belirten inşaat izinleri
  • Grip salgınlarının gerçekleştiği yerleri açıklama gibi sağlık verileri

Veri dönüştürme işlemi için Google Earth Pro, shp2KML, KML2KML, Arc2Earth gibi pek çok mükemmel uygulama vardır. Bu makale, komut satırındaki açık kaynaklı Geospatial Data Abstraction Library(GDAL) yardımcı programlarını kullanarak vektör verilerini Google Earth veya Google Haritalar'da kullanılmak üzere KML'ye dönüştürmeye odaklanacak ve bu kitaplıkları kendi uygulamalarınıza dahil etmeniz için size ilham verecektir.

Dosya türleriyle ilgili bir not

Bu makale, ESRI şekil dosyalarını KML'ye dönüştürürken uygulanacak adımları içerir. GDAL yardımcı programları, özellikle de OGR, CSV, PostGRES/PostGIS veritabanları ve çeşitli diğer biçimler dahil olmak üzere çok çeşitli dosya türlerinden dönüştürme yapmak için kullanılabilir. Karşılaşacağınız başlıca veri biçimleri desteklenir. Desteklenmeyen bir biçim bulursanız açık kaynak kitaplığı olduğu için OGR için bir sürücü yazabilirsiniz.

Şekil dosyaları

ESRI'nin popüler şekil dosyası biçimi en yaygın Coğrafi Bilgi Sistemi veri biçimlerinden biridir. Şekil dosyası .shp uzantısına sahip tek bir dosya olsa da kendi başına açılamaz. En azından bir .dbf ve .shx dosyası gerektirir. Ayrıca, çeşitli amaçlarla kullanılması gereken başka dosyalar da vardır. Bir şekil dosyasına başvuru gördüğünüz zaman neredeyse bir dosya koleksiyonu anlamına gelir. Bu dosya genellikle dosyayı bir arada tutmak için sıkıştırılmış bir arşiv biçiminde sıkıştırılır ve bu makalenin geri kalanında şekil dosyası terimini bu şekilde kullanırız.

Şekil dosyalarında, tanımladıkları coğrafyalar hakkında büyük miktarda bilgi yer alır. Bunlar, gerçek geometrileri, geometrilerle ilgili meta verileri ve kullanılan mekansal referans sistemiyle ilgili bilgilerin yanı sıra verilerin diğer birçok yönünü açıklar. Bu makalenin amaçları doğrultusunda en çok geometri, meta veriler ve uzamsal referans sisteminden bahsedeceğiz.

Geometri ve meta veri kullanımı kolay kavramlardır. Geometri noktaları noktalar, çizgiler ve poligonlardır ve KML'de kolayca ifade edilebilir. Meta veriler, genellikle filtreleme veya sorgulama amacıyla kullanılan verilerle ilgili verilerdir. Örneğin, bir yolu açıklayan çizgi, yol türü (belediye sokak, ulusal otoyol, bek turnesi), hız sınırları, aracı kime ödediği, boyutu vb. ile ilgili meta verilere sahip olabilir.

Konumsal başvuru sistemleri (SRS), vektör verilerini oluşturmak için kullanılan koordinat sistemlerini ve projeksiyonları tanımlamak için kullanılır. KML'de, WGS84 koordinat sisteminde enlem ve boylam kullanılır. Ancak, haritada koordinatları tanımlamanın başka yolları da vardır. Popüler sistemler şunlardır: Evrensel Transvers Merkatörü, İngiliz Ulusal Izgarası ve Eyalet Uçak sistemleri. Verileri KML'ye dönüştürmek için bu bilgileri belirlemeniz gerekebilir. KML yalnızca WGS84'ü destekler. Genellikle şekil dosyaları bu bilgileri genellikle .prj dosyasında taşır ve OGR bu konumda bilgileri algılayabilir. Ancak bazen SRS'nin tanımlanması gerekir. Bazen bu işlem, veri kaynağı tarafından, verinin indirildiği sayfada, indirme işlemini gerçekleştiren bir salt okunur dokümanda veya başka bir biçimde sağlanır. Bu genellikle yeterlidir. Uzay Referansı sitesi, SRS'ler hakkında daha fazla bilgi içerir ve tek tek referans sistemlerini aramanızı sağlayan bir referansa sahiptir.

ogr2ogr

GDAL, vektör verileriyle çalışmak için güçlü bir kitaplık seti sağlar. Özellikle, ogr2ogr veri dönüştürme için güçlü bir yardımcı programdır. Yukarıda belirtilenler de dahil olmak üzere birçok uygulamada GDAL/OGR uygulaması bulunur.

Başlamak için GDAL'i indirip yükleyin. Ardından bir şekil dosyası gerekir. Bu eğitimin amaçları için DataSF'den bir uygulama kullanmayı deneyin. Aşağıdaki örnekte, lisans kabul edildikten sonra buradan edinilebilen realtor_neighborhoods şekil dosyası kullanılmaktadır. Dosyayı indirdikten sonra hatırlayabileceğiniz bir dizinde açın. Bir komut satırı açın ve verileri yerleştirdiğiniz dizine gidin. Şimdi sıra işin eğlenceli kısmına geldi.

ogr2ogr, komut satırından çok kolay bir şekilde kullanılabilir. realtor_neighborhoods dosyasını bir şekil dosyasından KML'ye nasıl dönüştürebileceğiniz aşağıda açıklanmıştır:

ogr2ogr -f "KML" -where "NBRHOOD='Telegraph Hill'" realtor_neighborhoods.kml realtor_neighborhoods.shp

Aşağıda, bu komutun ne işe yaradığının bir dökümünü görebilirsiniz:

  • ogr2ogr: Bu, temel komuttur.
  • -f "KML: Çıkış biçimini KML olarak ayarlar.
  • -where "NBRHOOD='Telegraph Hill'": Bu, SQL'de olduğu gibi isteğe bağlı bir where koşuludur. Temel olarak meta verilere göre verileri sorgulamanızı sağlar. Şekil dosyaları ve sorgulamayı destekleyen diğer dosya türleriyle çalışır. Bu durumda, NBRHOOD alanını sorgulamakta ve yalnızca NBRHOOD Telegraph Hill'e sahip olan özellikleri seçmektedir. Bu parametreyi devre dışı bırakırsanız ogr2ogr, tüm mahalle poligonlarını size verir.
  • realtor_neighborhoods.kml: Bu, çıkış dosyasının adıdır. Önce çıkış dosyası adı gelir.
  • realtor_neighborhoods.shp: Bu, giriş dosyası adıdır. .shp dosyası şekil dosyasının tamamını temsil eder.

Hepsi bu kadar basit. Bu komut, şu şekilde görünen bir KML dosyası yazar:

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Document><Folder><name>realtor_neighborhoods</name>
    <Schema name="realtor_neighborhoods" id="realtor_neighborhoods">
      <SimpleField name="Name" type="string"></SimpleField>
      <SimpleField name="Description" type="string"></SimpleField>
      <SimpleField name="OBJECTID" type="float"></SimpleField>
      <SimpleField name="NBRHOOD" type="string"></SimpleField>
      <SimpleField name="SFAR_DISTR" type="string"></SimpleField>
    </Schema>
    <Placemark>
      <ExtendedData><SchemaData schemaUrl="#realtor_neighborhoods">
        <SimpleData name="OBJECTID">81</SimpleData>
        <SimpleData name="NBRHOOD">Telegraph Hill</SimpleData>
        <SimpleData name="SFAR_DISTR">District 8 - Northeast</SimpleData>
      </SchemaData></ExtendedData>
      <Polygon><outerBoundaryIs><LinearRing><coordinates>-122.41041847319012,37.805924016582715,0 -122.407203813674,37.806324902060979,0 -122.40667792852096,37.803710121958744,0 -122.40348255423899,37.804117462290641,0 -122.40237202127015,37.798540648764529,0 -122.40876046662795,37.797723222540775,0 -122.41041847319012,37.805924016582715,0</coordinates></LinearRing></outerBoundaryIs></Polygon>
      <Style><LineStyle><color>ff0000ff</color></LineStyle>  <PolyStyle><fill>0</fill></PolyStyle></Style>
    </Placemark>
  </Folder></Document></kml>

Şekil dosyasındaki meta verilerin Schema ve SimpleData öğelerinde korunduğunu görebilirsiniz. Genişletilmiş Veri kullanımı ve özel verilerin korunması hakkında daha fazla bilgi için Özel Veri Ekleme ile ilgili KML Geliştirici Kılavuzu bölümüne bakın.

Sonraki adım

GDAL/OGR size muazzam bir güç sunar. En basit uygulamada, artık tüm verilerinizi Google Earth, Haritalar veya diğer KML destekli coğrafi tarayıcılarda kullanılmak üzere KML'ye dönüştürebilirsiniz. Daha da iyisi, GDAL/OGR kitaplıklarını uygulamalarınıza ekleyerek, Coğrafi Bilgi Sistemi verilerinin KML'ye dönüştürülmesini otomatikleştirmenize ve bu dönüşümün çıkışını kontrol etmenize olanak tanır. KML oluşturma işleminiz üzerinde daha da fazla programatik kontrol için libKML ile birleştirmeyi deneyin.