نظرة عامة
يوضّح لك هذا البرنامج التعليمي كيفية عرض معلومات ملف 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 الإلكتروني. توضّح مستندات KML من Google أيضًا اللغة، وتوفّر مرجعًا ومستندات مفاهيمية للمطوّرين.
إذا كنت في بداية التعلّم وليس لديك ملف 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
يوضّح هذا الجدول الرمز البرمجي الذي ينشئ KMLLayer.
الرمز والوصف | |
---|---|
|
تنشئ هذه السمة عنصر KMLLayer جديدًا لعرض ملف KML. |
|
يضبط منشئ KMLLayer عنوان URL لملف KML. تحدّد أيضًا سمات لكائن KMLLayer تنفّذ ما يلي:
|
عرض البيانات في الشريط الجانبي
يوضّح هذا القسم الإعدادات التي تعرض محتوى نافذة المعلومات في الشريط الجانبي عند النقر على عنصر في الخريطة. ويتم ذلك من خلال:
- الاستماع إلى حدث النقر على أي من عناصر KMLLayer
- الحصول على بيانات الميزة التي تم النقر عليها
- كتابة هذه البيانات في الشريط الجانبي
إضافة أداة معالجة الأحداث
توفّر "خرائط Google" وظيفة للاستماع إلى أحداث المستخدمين والاستجابة لها على الخريطة، مثل النقرات أو ضغطات مفاتيح لوحة المفاتيح. تضيف هذه السمة أداة معالجة لأحداث click
من هذا النوع.
يوضّح الجدول أدناه الرمز البرمجي لهذا القسم.
الرمز والوصف | |
---|---|
|
يركّز متتبّع الأحداث kmlLayer.addListener على ما يلي:
|
كتابة بيانات عنصر KML في الشريط الجانبي
في هذه المرحلة من الدليل التعليمي، تكون قد سجّلت أحداث النقر على عناصر الطبقة. يمكنك الآن ضبط التطبيق لكتابة بيانات الميزة ومحتوى نافذة المعلومات في الشريط الجانبي.
يوضّح الجدول أدناه الرمز البرمجي لهذا القسم.
الرمز والوصف | |
---|---|
|
يكتب محتوى نافذة المعلومات إلى متغيّر. |
|
تحدّد هذه السمة div الذي سيتم الكتابة إليه، وتستبدل رمز HTML فيه
بمحتوى الميزة.
|
|
تصبح أسطر الرمز هذه هي الدالة داخل الدالة الإنشائية addListener .
|
الآن، في كل مرة تنقر فيها على عنصر KML على الخريطة، يتم تعديل الشريط الجانبي لعرض محتوى نافذة المعلومات الخاصة به.
مزيد من المعلومات
مزيد من المعلومات عن استخدام ملفات KML