Ringkasan
Tutorial ini menunjukkan cara menampilkan informasi file KML pada sidebar dan peta Google. Untuk informasi selengkapnya tentang penggunaan file KML di peta, baca panduan Lapisan KML. Coba klik penanda pada peta di bawah ini untuk melihat data di sidebar.
Bagian di bawah ini menampilkan seluruh kode yang Anda perlukan untuk membuat peta dan sidebar.
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>
Cobalah sendiri
Anda dapat bereksperimen dengan kode ini di JSFiddle dengan mengklik ikon <>
di sudut kanan atas jendela kode.
<!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>
Memulai
Berikut tahapan untuk membuat peta dan sidebar untuk tutorial ini:
Menyiapkan file KML untuk diimpor
File KML Anda harus sesuai dengan standar KML. Untuk mengetahui detail standar ini, lihat situs Open Geospatial Consortium. Dokumentasi KML Google juga menjelaskan bahasa, dan menawarkan referensi serta dokumentasi developer konseptual.
Jika Anda baru belajar dan tidak memiliki file KML, Anda dapat:
Menggunakan file KML berikut untuk tutorial ini:
https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml
Mencari file KML di web. Anda dapat menggunakan operator penelusuran
filetype
Google.Ganti istilah penelusuran apa pun untuk
velodromes
, atau hapus semua istilah untuk menemukan semua file KML.
Jika Anda membuat file sendiri, kode dalam contoh ini mengasumsikan bahwa:
- Anda telah menghosting file di internet yang dapat diakses publik. Hal ini merupakan persyaratan untuk semua aplikasi yang memuat KML ke dalam
KMLLayer
, sehingga server Google dapat menemukan dan mengambil konten untuk menampilkannya di peta. - File tidak berada dalam halaman yang dilindungi sandi.
- Fitur Anda memiliki konten jendela info. Anda dapat memuat konten ini di
elemen
description
, atau menyertakannya menggunakan elemenExtendedData
dan penggantian entitas (baca di bawah untuk info selengkapnya). Keduanya dapat diakses sebagai propertiinfoWindowHtml
fitur.
Elemen ExtendedData
File KML dalam tutorial ini menyertakan informasi fitur dalam elemen ExtendedData
. Untuk memasukkan informasi ini ke dalam deskripsi fitur, gunakan penggantian entitas, yang pada dasarnya adalah variabel dalam tag BalloonStyle
.
Tabel di bawah menjelaskan kode untuk bagian ini.
Kode dan deskripsi | |
---|---|
|
File KML memiliki satu elemen Style yang diterapkan ke semua penanda letak. Elemen Style ini menetapkan nilai #[video] ke elemen teks BalloonStyle .Format $[x] memberi tahu parser KML untuk mencari elemen Data bernama video , dan menggunakannya sebagai teks balon. |
|
Setiap Placemark berisi elemen ExtendedData , yang menyimpan elemen Data .
Perhatikan bahwa setiap Placemark memiliki satu elemen Data
dengan atribut nama video .File untuk tutorial ini menggunakan video YouTube yang disematkan sebagai nilai dari setiap teks balon Penanda Letak. |
Anda dapat mempelajari lebih lanjut penggantian entitas di bab Menambahkan Data Kustom dalam dokumentasi KML.
Menampilkan KMLLayer
Melakukan inisialisasi peta
Tabel ini menjelaskan kode untuk bagian ini.
Kode dan deskripsi | |
---|---|
|
Untuk menampilkan KML pada peta, Anda perlu membuat peta terlebih dahulu. Kode ini membuat objek Google Maps baru, memberi tahu tempat yang dipusatkan dan diperbesar, serta melampirkan peta ke div .Untuk mempelajari lebih lanjut dasar-dasar pembuatan Google Maps, baca tutorial Menambahkan Google Maps ke situs Anda. |
Membuat KMLLayer
Tabel ini menjelaskan kode yang membuat KMLLayer.
Kode dan deskripsi | |
---|---|
|
Membuat objek KMLLayer baru untuk menampilkan KML Anda. |
|
Konstruktor KMLLayer menetapkan URL file KML Anda. Konstruktor ini juga menentukan properti untuk objek KMLLayer yang akan melakukan hal berikut:
|
Menampilkan data di sidebar
Bagian ini menjelaskan setelan yang menampilkan konten jendela info di sidebar saat Anda mengklik fitur pada peta. Hal ini dilakukan dengan:
- Memproses peristiwa klik pada fitur KMLLayer apa pun.
- Mengambil data fitur yang diklik.
- Menuliskan data tersebut ke sidebar.
Menambahkan pemroses peristiwa
Google Maps menyediakan fungsi untuk memproses dan merespons peristiwa pengguna di peta, seperti klik atau penekanan tombol keyboard. Metode ini menambahkan pemroses untuk peristiwa click
tersebut.
Tabel di bawah menjelaskan kode untuk bagian ini.
Kode dan deskripsi | |
---|---|
|
Pemroses peristiwa kmlLayer.addListener berfokus pada hal berikut:
|
Menuliskan data fitur KML ke sidebar
Pada tahap tutorial ini, Anda telah mencatat peristiwa klik pada fitur lapisan. Sekarang, Anda dapat menetapkan aplikasi untuk menuliskan data fitur dan konten jendela info ke sidebar.
Tabel di bawah menjelaskan kode untuk bagian ini.
Kode dan deskripsi | |
---|---|
|
Menuliskan konten jendela info ke sebuah variabel. |
|
Mengidentifikasi div yang menjadi target penulisan dan mengganti HTML di dalamnya dengan konten fitur.
|
|
Baris kode ini menjadi fungsi dalam konstruktor addListener .
|
Sekarang, setiap kali Anda mengklik fitur KML pada peta, sidebar akan diperbarui untuk menampilkan konten jendela infonya.
Informasi selengkapnya
Baca selengkapnya tentang cara menggunakan file KML.