סקירה כללית
במדריך הזה תלמדו איך להציג מידע מקובץ KML במפה של Google ובסרגל הצד. למידע נוסף על שימוש בקובצי KML במפות, תוכלו לקרוא את המדריך לשכבות KML. אפשר ללחוץ על סמן במפה שבהמשך כדי להציג נתונים בסרגל הצד.
בקטע הבא מוצג הקוד המלא שדרוש כדי ליצור את המפה ואת סרגל הצד.
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>
התנסות עצמית
אפשר להתנסות בקוד הזה ב-JSFiddle בלחיצה על הסמל <>
בפינה השמאלית העליונה של חלון הקוד.
<!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>
תחילת העבודה
אלה השלבים ליצירת המפה והסרגל הצדדי במדריך הזה:
הגדרת קובץ ה-KML לייבוא
קובץ ה-KML צריך לעמוד בסטנדרט KML. פרטים נוספים על התקן הזה זמינים באתר של Open Geospatial Consortium. המסמכים של Google בנושא KML מתארים גם את השפה, ומציעים מסמכים למפתחים שכוללים גם מידע עזר וגם מידע קונספטואלי.
אם אתם רק מתחילים ללמוד ואין לכם קובץ KML, אתם יכולים:
במדריך הזה נשתמש בקובץ ה-KML הבא:
https://developers.google.com/maps/documentation/javascript/examples/kml/westcampus.kml
מחפשים קובץ KML באינטרנט. אפשר להשתמש בסימן החיפוש
filetype
של Google.אפשר להחליף את
velodromes
במונח חיפוש כלשהו, או להשמיט את המונח לגמרי כדי למצוא את כל קובצי ה-KML.
אם יוצרים קובץ בעצמכם, הקוד בדוגמה הזו מבוסס על ההנחות הבאות:
- האירוח של הקובץ באינטרנט היה גלוי לכולם. זוהי דרישות לכל האפליקציות שטעונות KML ל-
KMLLayer
, כדי ששרתי Google יוכלו למצוא ולשלוף את התוכן ולהציג אותו במפה. - הקובץ לא נמצא בדף שמוגן באמצעות סיסמה.
- התכונות שלכם מכילות תוכן של חלון מידע. אפשר לכלול את התוכן הזה ברכיב
description
, או לכלול אותו באמצעות רכיבExtendedData
והחלפת ישות (מידע נוסף מופיע בהמשך). אפשר לגשת לשניהם כנכסinfoWindowHtml
של התכונה.
רכיבי ExtendedData
קובץ ה-KML במדריך הזה כולל את פרטי התכונות ברכיב ExtendedData
. כדי להוסיף את המידע הזה לתיאור התכונה, משתמשים בהחלפת ישות, שהיא למעשה משתנה בתג BalloonStyle
.
בטבלה הבאה מוסבר הקוד של הקטע הזה.
קוד ותיאור | |
---|---|
|
בקובץ ה-KML יש רכיב Style יחיד שחלה על כל התוויות של הנקודות. האלמנט Style מקצה ערך של #[video] לאלמנט הטקסט של BalloonStyle .הפורמט $[x] מורה למנתח ה-KML לחפש רכיב Data בשם video ולהשתמש בו כטקסט של הבלון. |
|
כל Placemark מכיל אלמנט ExtendedData
שמכיל את האלמנט Data .
שימו לב שלכל Placemark יש אלמנט Data אחד עם מאפיין שם של video .בקובץ של המדריך הזה נעשה שימוש בסרטון YouTube המוטמע כערך של הטקסט בבלון של כל סמליל מיקום. |
מידע נוסף על החלפת ישויות זמין בקטע הוספת נתונים מותאמים אישית במסמכי העזרה של KML.
הצגת KMLLayer
אתחול המפה
בטבלה הזו מוסבר הקוד של הקטע הזה.
קוד ותיאור | |
---|---|
|
כדי להציג קובץ KML במפה, קודם צריך ליצור את המפה. הקוד הזה יוצר אובייקט חדש של מפות Google, מציין איפה למרכז את המפה ואת רמת הזום, ומצרף את המפה ל- div .למידע נוסף על העקרונות הבסיסיים של יצירת מפה ב-Google, תוכלו לקרוא את המדריך הוספת מפה של Google לאתר. |
יצירת KMLLayer
בטבלה הזו מוסבר הקוד שיוצר שכבת KML.
קוד ותיאור | |
---|---|
|
יצירת אובייקט KMLLayer חדש כדי להציג את קובץ ה-KML. |
|
ה-constructor של KMLLayer מגדיר את כתובת ה-URL של קובץ ה-KML. הוא גם מגדיר מאפיינים לאובייקט KMLLayer שמבצעים את הפעולות הבאות:
|
הצגת נתונים בסרגל הצד
בקטע הזה מוסבר איך להגדיר את התוכן שיוצג בחלון המידע בסרגל הצד כשלוחצים על מקום מסוים במפה. כדי לעשות זאת:
- האזנה לאירוע לחיצה על אחת מהתכונות של KMLLayer.
- אחזור הנתונים של התכונה שנלחצה עליה.
- כתיבת הנתונים האלה בסרגל הצד.
הוספת event listener
במפות Google יש פונקציה שמאפשרת להקשיב לאירועים של משתמשים במפה ולהגיב להם, כמו קליקים או הקשות על המקלדת. הוא מוסיף listener לאירועים כאלה של click
.
בטבלה הבאה מוסבר הקוד של הקטע הזה.
קוד ותיאור | |
---|---|
|
ה-event listener של kmlLayer.addListener מתמקד בנושאים הבאים:
|
כתיבת נתוני התכונות של KML בסרגל הצד
בשלב הזה במדריך, תועדו אירועי קליקים על המאפיינים של השכבה. עכשיו אפשר להגדיר שהאפליקציה תכתוב את הנתונים של התכונה ואת התוכן של חלון המידע בסרגל הצד.
בטבלה הבאה מוסבר הקוד של הקטע הזה.
קוד ותיאור | |
---|---|
|
כתיבה של תוכן חלון המידע במשתנה. |
|
מזהה את ה- div שרוצים לכתוב אליו, ומחליף את ה-HTML שלו
בתוכן התכונה.
|
|
שורות הקוד האלה הופכות לפונקציה בתוך ה-constructor addListener .
|
עכשיו, בכל פעם שתלחצו על תכונה של KML במפה, סרגל הצד יתעדכן ויציג את התוכן של חלון המידע שלה.