KML dosya formatı ve google haritalarında kullanımı. Tanıtım
Duyuru
KML Çeşitli dosya biçimi
KML dosyaları XML biçiminde depolanır ve orijinal olarak Anahtar Deliği eşleme programı için geliştirilmiştir. 2004'te Google, Keyhole Inc.'i satın aldı, bu nedenle KML dosyaları artık Google'ın haritalama hizmetleri - Google Haritalar ve Google dünya.
KML dosyalarının teknik detayları
KML dosyaları, XML biçiminde depolanan bilgileri içerir. Bu bilgiler hem görüntüleri hem de çizgiler, çokgenler ve noktalar gibi daha basit verileri içerir. Bu dosyalar, harita üzerinde belirli bir konum hakkında bilgi depolamak için kullanılır. KML dosyası, kullanıcının yalnızca harita üzerinde konumu işaretlemesine değil, aynı zamanda içerik (HTML formatı), doku ve farklı açılardan görünüm eklemesine de olanak tanır. KML dosyalarını Google Haritalar'da açmak için tek gereken, web'de barındırılan KML dosyasının kendisidir. Sırada ayrı bir uzatma bağlantısı ile Google arama Haritalar onu açacaktır.
KML dosya biçimi hakkında daha fazla bilgi
Dosya uzantısı | .kml |
Dosya kategorisi | |
Örnek dosya | (2.05 KiB) |
ilişkili programlar | Blender (Windows, Mac ve Linux) Blue Marble Geographics Global Mapper (Windows) Masaüstü için ESRI ArcGIS (Windows) Google Earth (Windows, Mac ve Linux) Google Haritalar (Web) Merkaartor (Windows, Mac ve Linux) Keyhole PRO (Windows ve Mac) |
KML, coğrafi verileri Google Earth gibi bir Earth tarayıcısında görüntülemek için kullanılan bir dosya biçimidir. KML, iç içe öğeler ve nitelikler içeren etiket tabanlı bir yapı kullanır ve XML standardını temel alır. Tüm etiketler büyük/küçük harfe duyarlıdır ve tam olarak KML Referansında listelendiği gibi görünmelidir. Referans, hangi etiketlerin isteğe bağlı olduğunu gösterir. Belirli bir öğe içinde etiketler, Referans'ta gösterilen sırada görünmelidir. KML'de yeniyseniz, bu belgeyi ve beraberindeki örnek dosyaları inceleyin ( ÖrneklerInEarth) bir KML dosyasının temel yapısını ve en sık kullanılan etiketleri öğrenmeye başlamak için. İlk bölüm, Google Earth kullanıcı arayüzü ile oluşturulabilecek özellikleri açıklamaktadır. Bu özellikler yer işaretlerini, açıklamaları, yer paylaşımlarını, yolları ve çokgenleri içerir. İkinci bölüm, bir metin düzenleyiciyle KML yazmayı gerektiren özellikleri açıklar. Bir metin dosyası ile kaydedildiğinde .kml veya .kmz uzantısı, Earth tarayıcıları nasıl görüntüleneceğini bilir. |
Uç: Google Earth'teki bir özelliğin KML "kodunu" görmek için, Google Earth'ün 3D Görüntüleyicisinde özelliği sağ tıklayıp Kopyala'yı seçmeniz yeterlidir. Ardından panonun içeriğini herhangi bir metin düzenleyiciye yapıştırın. Google Earth'te görüntülenen görsel özellik, KML metin eşdeğerine dönüştürülür. Bu özelliği denediğinizden emin olun.
KML'deki bazı temel özelliklerin nasıl kullanılacağına ilişkin bir tartışma için Geliştirici Kılavuzuna bakın.
İçindekiler
Temel KML Belgeleri
En basit KML belgeleri türü, doğrudan Google Earth'te yazılabilenlerdir; yani, bir metin düzenleyicide herhangi bir KML'yi düzenlemeniz veya oluşturmanız gerekmez. Yer işaretleri, yer paylaşımları, yollar ve çokgenlerin tümü doğrudan yazılabilir Google Earth'te.
Yer işaretleri
Yer İşareti, Google Earth'te en sık kullanılan özelliklerden biridir. Simge olarak sarı bir raptiye kullanarak Dünya yüzeyinde bir konumu işaretler. En basit Yer İşareti yalnızca bir
Örnek olarak, KML Örnekleri dosyasında "Mutlak Konumlandırma: Sol üst" klasörünü etkinleştirin ve görünüm penceresinin sol üst kısmında bir ekran yerleşimi göreceksiniz. Bu, aşağıdaki KML koduyla oluşturuldu:
Konumlandırma, tarafından belirtilen görüntüdeki bir nokta eşlenerek kontrol edilir.
Diğer sabit konumları elde etmenin ve ekran boyutuyla dinamik olarak boyutlandırılmış görüntüler oluşturmanın nasıl mümkün olduğunu görmek için klasördeki diğer örnekleri kontrol edin. (Bunu not et xunits ve yunitler hassas kontrol için "piksel" olarak da belirtilebilir.) Daha fazla ayrıntı için KML 2.2 Referansına bakın.
Ağ Bağlantıları
Bir ağ bağlantısı şunları içerir: eleman ile bir
NS
- Simge stillerinde, zemin kaplamalarında ve ekran kaplamalarında simgeler tarafından kullanılan bir görüntü dosyası
- Kullanılan bir model dosyası
eleman - Ağ Bağlantısı tarafından yüklenen bir KML veya KMZ dosyası
Belirtilen dosya, yerel bir dosya veya uzak sunucudaki bir dosya olabilir. En basit biçimleriyle ağ bağlantıları, büyük bir KML dosyasını aynı bilgisayardaki daha küçük, daha yönetilebilir dosyalara bölmenin kullanışlı bir yoludur.
Şimdiye kadar tüm örneklerimiz, KML kodunun yerel makineden Google Earth'e teslim edilmesini gerektirdi. Ağ bağlantıları, size uzak bir konumdan içerik sunma gücü verir ve genellikle çok sayıda kullanıcıya veri dağıtmak için kullanılır. Bu sayede verilerde değişiklik yapılması gerekiyorsa, sadece kaynak lokasyonda değiştirilmesi gerekir ve tüm kullanıcılar güncellenen verileri otomatik olarak alır.
KML için CGI Komut Dosyası
Statik veri içeren dosyalara işaret etmenin yanı sıra, bir ağ bağlantısı "s
Bir ağ CGI aracılığıyla KML'yi teslim etmek için iki şey gereklidir:
İstemciden (Google Earth) sunucuya bir çağrı yapıldığında, sunucu (1) HTTP 200 yanıt kodunu döndürmeli ve (2) yanıtın içerik türünü metin / düz veya uygulama / vnd.google olarak ayarlamalıdır. -earth.kml + xml.
Yanıt geçerli KML olmalıdır. Karmaşık uygulamalar için doğru hata işleme çok önemlidir.
Uç: Hataları işlemenin basit bir yolu, sunucu hatasını bir klasör adı metni olarak ayrıştırmaktır. Örneğin, sunucunun geri dönmesini sağlayabilirsiniz.
Aşağıdaki örnekler Python'u kullanır, ancak bunlar diğer herhangi bir komut dosyası dilinde eşit derecede geçerlidir.
Rastgele bir yer işareti oluşturma
Aşağıdaki Python betiği, aşağıdakiler için rastgele tamsayı değerleri üretir: enlem ve boylam ve ardından bu değerleri
#! / usr / bin / python import rastgele enlem = random.randrange (-90, 90) boyitude = random.randrange (-180, 180) kml = ("\ n ""
Aşağıda, bu Python komut dosyasını yükleyen bir Ağ Bağlantısı içeren bir KML dosyası örneği verilmiştir:
her aramada yer işareti
Görünüme Dayalı Yenileme Sorguları
Standart bir ağ bağlantısı tek yönlü bir bağlantıdır: veriler yalnızca sunucudan Google Earth'e akar. Görünüm tabanlı yenileme, çift yönlü iletişime olanak tanır. Görünüm tabanlı yenileme etkin olduğunda, Google Earth, belirli bir zamanda görünüm koordinatlarını sunucuya döndürür. Bu her olabilir n saniyeler, dakikalar veya saatler veya görünümün hareket etmesinin durmasından bu yana belirli bir süre geçtikten sonra. Görmek
Koordinatlar, aşağıdaki gibi ekleyen bir HTTP GET aracılığıyla sunucuya döndürülür (bu, varsayılan sınırlayıcı kutu bilgisidir):
GET / yol / sunucu / komut dosyası / sorgu? BBOX = HTTP / 1.1
Kullanıcı San Francisco'ya yukarıdan bakarken istek yapılmışsa, koordinatlar aşağıdaki gibi görünebilir:
GET /path/to/server/script/query?BBOX=-122.497790,37.730385,-122.380087,37.812331 HTTP / 1.1
Bu özellik bazı çok yaratıcı uygulamalar için kullanılabilir, ancak başlamanız için aşağıda basit bir örnek sunulmuştur.
Bir Noktayı Doğrudan Görüşünüz Altında İzleme
Aşağıdaki sunucu tarafı Python komut dosyası, Google Earth tarafından gönderilen dönüş mesajını ayrıştırır ve ekranın ortasında bir Yer İşareti ile yanıt verir. Ağ Bağlantısı her yenilendiğinde, yeni bir Yer İşareti oluşturulur.
#! / usr / bin / python içe aktarma cgi url = cgi.FieldStorage () bbox = url ["BBOX"].değer bbox = bbox.split (",") batı = kayan nokta (bbox) güney = kayan nokta (bbox) doğu = float (bbox) kuzey = float (bbox) center_lng = ((doğu - batı) / 2) + batı center_lat = ((kuzey - güney) / 2) + güney kml = ("\ n ""
Python komut dosyasını yükleyen Ağ Bağlantısı için KML:
ekranın ortasına getirin ve bir yer işareti döndürün.
Bu örnekte gösterilen ilke, bazı çok karmaşık uygulamalar için kullanılabilir. Örneğin, bir coğrafi bilgi veritabanınız varsa, izleyicinin koordinatlarını çıkarabilir, görünüme özel veriler için veritabanına çağrı yapabilir ve bunu KML olarak Google Earth'e döndürebilirsiniz.
3 KML MIME Türü
Google Earth'ten (veya herhangi bir Earth tarayıcısından) gelen bir isteğe yanıt verirken, bir KML sunucusunun, Google Earth'ün yanıtlarını doğru şekilde yorumlayabilmesi için belirli bir dizi kurala uyması gerekir.
Başarılı olduğunda, sunucu HTTP 200 yanıt kodunu döndürmeli ve yanıtın içerik türünü burada açıklandığı gibi uygun bir MIME türüne ayarlamalıdır.
Google Earth, KML ve KMZ dosyalarını okur. KML dosyaları için MIME türü
- uygulama / vnd.google-earth.kml + xml
KMZ dosyaları için MIME türü
- uygulama / vnd.google-earth.kmz
Apache için bu satırları httpd.conf dosya:
- AddType uygulaması / vnd.google-earth.kml + xml .kml
- AddType uygulaması / vnd.google-earth.kmz .kmz
Microsoft'un IIS'sinde MIME türlerini ayarlamayla ilgili ayrıntılar için Microsoft belgelerine bakın.
Yanıtın gövdesi, XML bildirimi de dahil olmak üzere geçerli KML verilerini içermelidir (). Sunucu geçersiz KML döndürürse, Ağ Bağlantısı durur, devre dışı bırakılır ve bir hata mesajı verir.
KML biçimi, Google Earth'teki özellikler için coğrafi verileri depolayan bir uzantıdır. Bu tür bilgiler, haritadaki yer işaretlerini, bir çokgen veya çizgi şeklinde rastgele bir alanı, üç boyutlu bir modeli ve haritanın bir bölümünün görüntüsünü içerir.
Bu formatla etkileşime giren uygulamaları ele alalım.
Google dünya
- Başladıktan sonra üzerine tıklayın "Açık" ana menüde.
- Orijinal nesnenin bulunduğu dizini bulun. Bizim durumumuzda dosya konum bilgilerini içerir. Üzerine tıklayın ve tıklayın "Açık".
Bir etiket şeklinde konum göstergesi ile program arayüzü.
Not defteri
Not Defteri, oluşturmak için yerleşik bir Windows uygulamasıdır. metin belgeleri... Ayrıca belirli formatlar için kod düzenleyici olarak da işlev görebilir.
- Bu yazılımı çalıştırın. Dosyayı görüntülemek için öğesini seçin. "Açık" menüde.
- Biz seciyoruz "Tüm dosyalar" uygun alanda. İstenen nesneyi seçtikten sonra üzerine tıklayın. "Açık".
Dosya içeriğinin Not Defteri'nde görsel olarak gösterilmesi.
KML uzantısının çok az dağıtıma sahip olduğunu ve yalnızca Google Earth'te kullanıldığını ve böyle bir dosyayı Notepad üzerinden görüntülemenin kimseye faydası olmayacağını söyleyebiliriz.