Genel Bakış
Bu eğitimde, bir KML dosyasının bilgilerinin Google Haritalar'da ve kenar çubuğunda nasıl görüntüleneceği gösterilmektedir. KML dosyalarını haritalarda kullanma hakkında daha fazla bilgi için KML katmanları kılavuzunu okuyun. Kenar çubuğundaki verileri görmek için aşağıdaki haritada bir işaretçiyi tıklamayı deneyin.
Aşağıdaki bölümde, haritayı ve kenar çubuğunu oluşturmak için ihtiyacınız olan kodun tamamı gösterilmektedir.
var map; var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml'; function initMap() { map = new google.maps.Map(document.getElementById('map'), { center: new google.maps.LatLng(-19.257753, 146.823688), zoom: 2, mapTypeId: 'terrain' }); var kmlLayer = new google.maps.KmlLayer(src, { suppressInfoWindows: true, preserveViewport: false, map: map }); kmlLayer.addListener('click', function(event) { var content = event.featureData.infoWindowHtml; var testimonial = document.getElementById('capture'); testimonial.innerHTML = content; }); }
<div id="map"></div> <div id="capture"></div>
html, body { height: 370px; padding: 0; margin: 0; } #map { height: 360px; width: 300px; overflow: hidden; float: left; border: thin solid #333; } #capture { height: 360px; width: 480px; overflow: hidden; float: left; background-color: #ECECFB; border: thin solid #333; border-left: none; }
<!-- Replace the value of the key parameter with your own API key. --> <script async src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qk&callback=initMap"> </script>
Kendiniz deneyin
Kod penceresinin sağ üst köşesindeki <>
simgesini tıklayarak bu kodu JSFiddle'de deneyebilirsiniz.
<!DOCTYPE html> <html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <title>KML Click Capture Sample</title> <style> html, body { height: 370px; padding: 0; margin: 0; } #map { height: 360px; width: 300px; overflow: hidden; float: left; border: thin solid #333; } #capture { height: 360px; width: 480px; overflow: hidden; float: left; background-color: #ECECFB; border: thin solid #333; border-left: none; } </style> </head> <body> <div id="map"></div> <div id="capture"></div> <script> var map; var src = 'https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml'; function initMap() { map = new google.maps.Map(document.getElementById('map'), { center: new google.maps.LatLng(-19.257753, 146.823688), zoom: 2, mapTypeId: 'terrain' }); var kmlLayer = new google.maps.KmlLayer(src, { suppressInfoWindows: true, preserveViewport: false, map: map }); kmlLayer.addListener('click', function(event) { var content = event.featureData.infoWindowHtml; var testimonial = document.getElementById('capture'); testimonial.innerHTML = content; }); } </script> <script async src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY &callback=initMap"> </script> </body> </html>
Başlarken
Bu eğitim için haritayı ve kenar çubuğunu oluşturma adımları şunlardır:
KML dosyasını içe aktarma için ayarlama
KML dosyanız KML standardına uygun olmalıdır. Bu standart hakkında ayrıntılı bilgi için Open Geospatial Consortium web sitesine bakın. Google'ın KML dokümanları da dili açıklar ve hem referans hem de kavramsal geliştirici dokümanları sunar.
Yeni başlıyorsanız ve KML dosyanız yoksa şunları yapabilirsiniz:
Bu eğitim için aşağıdaki KML dosyasını kullanın:
https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml
Web'de bir KML dosyası bulun. Google'ın
filetype
arama operatörünü kullanabilirsiniz.Tüm KML dosyalarını bulmak için arama terimini
velodromes
ile değiştirin veya terimi tamamen çıkarın.
Kendi dosyanızı oluşturuyorsanız bu örnekteki kodda aşağıdakiler varsayılır:
- Dosyayı internette herkese açık olarak barındırdıysanız Bu, Google sunucularının harita üzerinde görüntülemek için içeriği bulup alabilmesi amacıyla, KML'yi bir
KMLLayer
içine yükleyen tüm uygulamalar için bir şarttır. - Dosya, şifre korumalı bir sayfada yer almıyor.
- Özelliklerinizde bilgi penceresi içeriği var. Bu içeriği bir
description
öğesinde veyaExtendedData
öğesi ve varlık değiştirme özelliğini kullanarak ekleyebilirsiniz (daha fazla bilgi için aşağıyı okuyun). Her ikisine de özelliğininfoWindowHtml
mülkü olarak erişilebilir.
ExtendedData öğeleri
Bu eğitimdeki KML dosyası, ExtendedData
öğesinde özellik bilgilerini içerir. Bu bilgileri özelliğin açıklamasına eklemek için BalloonStyle
etiketindeki bir değişken olan varlık değiştirme özelliğini kullanın.
Aşağıdaki tabloda bu bölümün kodu açıklanmaktadır.
Kod ve açıklama | |
---|---|
|
KML dosyasında, tüm yer işaretlerine uygulanan tek bir Style öğesi vardır. Bu Style öğesi, BalloonStyle öğesinin metin öğesine #[video] değerini atar.$[x] biçimi, KML ayrıştırıcısına video adlı bir Data öğesi aramasını ve bunu balon metni olarak kullanmasını söyler. |
|
Her Placemark , Data öğesini barındıran bir ExtendedData öğesi içerir.
Her Placemark öğesinin, video ad özelliğine sahip tek bir Data öğesine sahip olduğunu unutmayın.Bu eğitimdeki dosyada, her bir yer işaretinin balon metni değeri olarak yerleşik YouTube videosu kullanılır. |
KML dokümanının Özel Veri Ekleme bölümünde öğe değiştirme hakkında daha fazla bilgi edinebilirsiniz.
KMLLayer'ı görüntüleme
Haritayı başlatma
Bu tabloda, bu bölümün kodu açıklanmaktadır.
Kod ve açıklama | |
---|---|
|
KML'yi bir haritada görüntülemek için önce haritayı oluşturmanız gerekir. Bu kod yeni bir Google Haritalar nesnesi oluşturur, bu nesneye nereden merkezleneceğini ve yakınlaşacağını söyler ve haritayı div öğesine ekler.Google Haritası oluşturmanın temelleri hakkında daha fazla bilgi edinmek için Web sitenize Google Haritası ekleme eğitimini okuyun. |
KMLLayer oluşturma
Bu tabloda, KMLLayer oluşturan kod açıklanmaktadır.
Kod ve açıklama | |
---|---|
|
KML'nizi görüntülemek için yeni bir KMLLayer nesnesi oluşturur. |
|
KMLLayer kurucusu, KML dosyanızın URL'sini ayarlar. Ayrıca, KMLLayer nesnesi için aşağıdaki işlemleri yapan özellikleri de tanımlar:
|
Verileri kenar çubuğunda görüntüleme
Bu bölümde, haritadaki bir özelliği tıkladığınızda bilgi penceresi içeriğini kenar çubuğunda gösteren ayarlar açıklanmaktadır. Bu işlem için:
- KMLLayer'ın özelliklerinden herhangi birinde tıklama etkinliği dinleniyor.
- Tıklanan özelliğin verilerini alma.
- Bu verileri kenar çubuğuna yazma
Etkinlik işleyici ekleme
Google Haritalar, haritadaki kullanıcı etkinliklerini (ör. tıklamalar veya klavye tuşlarına basmalar) dinlemek ve yanıtlamak için bir işlev sağlar. Bu tür click
etkinlikleri dinleyen bir işleyici ekler.
Aşağıdaki tabloda bu bölümün kodu açıklanmaktadır.
Kod ve açıklama | |
---|---|
|
kmlLayer.addListener etkinlik işleyici aşağıdakilere odaklanır:
|
KML özellik verilerini kenar çubuğuna yazma
Eğitimin bu aşamasında, katmanın özelliklerindeki tıklama etkinliklerini yakaladınız. Artık uygulamayı, özelliğin verilerini ve bilgi penceresi içeriğini kenar çubuğuna yazacak şekilde ayarlayabilirsiniz.
Aşağıdaki tabloda bu bölümün kodu açıklanmaktadır.
Kod ve açıklama | |
---|---|
|
Bilgi penceresi içeriğini bir değişkene yazar. |
|
Yazılacak div öğesini tanımlar ve içindeki HTML'yi özelliğin içeriğiyle değiştirir.
|
|
Bu kod satırları, addListener sınıfının içindeki işlev olur.
|
Artık haritadaki bir KML özelliğini her tıkladığınızda bilgi penceresi içeriğini göstermek için kenar çubuğu güncellenir.
Daha fazla bilgi
KML dosyalarını kullanma hakkında daha fazla bilgi edinin.