تعرض KmlLayer عناصر KML وGeoRSS على شكل تراكب صور في Maps JavaScript API.
نظرة عامة
تتوافق Maps JavaScript API مع تنسيقات بيانات KML وGeoRSS
لعرض المعلومات الجغرافية. يتم عرض تنسيقات البيانات هذه على خريطة باستخدام الكائن KmlLayer، الذي يأخذ منشئه عنوان URL لملف KML أو GeoRSS يمكن الوصول إليه بشكل علني.
ملاحظة: تستخدم الفئة KmlLayer التي تنشئ تراكبات KML في Maps JavaScript API خدمة تستضيفها Google لاسترداد ملفات KML وتحليلها من أجل عرضها.
وبالتالي، لا يمكن عرض ملفات KML إلا إذا كانت مستضافة على عنوان URL متاح للجميع ولا يتطلب مصادقة للوصول إليه.
إذا كنت بحاجة إلى الوصول إلى ملفات خاصة أو التحكّم بدقة في الذاكرة المؤقتة أو إرسال إطار عرض المتصفّح إلى خادم بيانات جغرافية مكانية كمعلَمة طلب بحث، ننصحك باستخدام طبقات
البيانات بدلاً من KmlLayer. سيؤدي ذلك إلى توجيه متصفحات المستخدمين لطلب الموارد مباشرةً من خادم الويب.
تحوّل Maps JavaScript API بيانات XML الجغرافية المقدَّمة إلى تمثيل KML يتم عرضه على الخريطة باستخدام طبقة مربّعات في Maps JavaScript API. يبدو ملف KML هذا (ويتصرف إلى حد ما) مثل عناصر التراكب المألوفة في Maps JavaScript API. يتم عرض عناصر KML <Placemark> وGeoRSS point كعلامات، مثلاً، يتم عرض عناصر <LineString> كخطوط متعددة، ويتم عرض عناصر <Polygon> كمضلعات. وبالمثل، يتم عرض عناصر <GroundOverlay> كصور مستطيلة على الخريطة. مع ذلك، من المهم ملاحظة أنّ هذه العناصر ليست Markers أو Polylines أو Polygons أو GroundOverlays في Maps JavaScript API، بل يتم عرضها في عنصر واحد على الخريطة.
تظهر عناصر KmlLayer على الخريطة بعد ضبط السمة map. يمكنك إزالتها من الخريطة من خلال استدعاء setMap() مع تمرير null. يدير العنصر KmlLayer عرض هذه العناصر الثانوية من خلال استرداد الميزات المناسبة تلقائيًا لحدود الخريطة المحدّدة. مع تغيُّر الحدود، يتم تلقائيًا عرض العناصر في نافذة العرض الحالية.
بما أنّ المكوّنات داخل KmlLayer يتم عرضها عند الطلب،
تتيح لك الطبقة إدارة عرض آلاف العلامات والخطوط المتعددة الأضلاع والمضلّعات بسهولة. يُرجى العِلم أنّه لا يمكنك الوصول إلى هذه العناصر المكوّنة بشكل مباشر، ولكن يوفّر كل عنصر أحداث نقر تعرض بيانات حول هذه العناصر الفردية.
خيارات طبقة KML
تمرِّر طريقة وضع التصميم KmlLayer() بشكل اختياري عددًا من KmlLayerOptions:
- تحدّد السمة
mapMapالذي سيتم عرضKmlLayerعليه. يمكنك إخفاءKmlLayerمن خلال ضبط هذه القيمة علىnullضمن طريقةsetMap(). - تحدّد
preserveViewportأنّه يجب عدم تعديل الخريطة لتناسب حدود محتوىKmlLayerعند عرض الطبقة. عند عرضKmlLayerتلقائيًا، يتم تكبير الخريطة وتحديد موضعها لعرض محتوى الطبقة بالكامل. - يشير
suppressInfoWindowsإلى أنّه يجب ألا تؤدي الميزات القابلة للنقر داخلKmlLayerإلى عرض عناصرInfoWindow.
بالإضافة إلى ذلك، بعد عرض KmlLayer، يحتوي على خاصية metadata غير قابلة للتغيير تتضمّن اسم الطبقة ووصفها ومقتطفها ومؤلفها ضمن حرف كائن KmlLayerMetadata. يمكنك فحص هذه المعلومات باستخدام طريقة getMetadata(). بما أنّ عرض عناصر KmlLayer يتطلّب
تواصلًا غير متزامن مع خادم خارجي، عليك الاستماع إلى حدث metadata_changed،
الذي سيشير إلى أنّه تمّت تعبئة السمة.
ينشئ المثال التالي KmlLayer من خلاصة GeoRSS المحدّدة:
TypeScript
function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 4, center: { lat: 49.496675, lng: -102.65625 }, } ); const georssLayer = new google.maps.KmlLayer({ url: "http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss", }); georssLayer.setMap(map); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: { lat: 49.496675, lng: -102.65625 }, }); const georssLayer = new google.maps.KmlLayer({ url: "http://api.flickr.com/services/feeds/geo/?g=322338@N20&lang=en-us&format=feed-georss", }); georssLayer.setMap(map); } window.initMap = initMap;
CSS
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<html>
<head>
<title>GeoRSS Layers</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
</head>
<body>
<div id="map"></div>
<!--
The `defer` attribute causes the script to execute after the full HTML
document has been parsed. For non-blocking uses, avoiding race conditions,
and consistent behavior across browsers, consider loading using Promises. See
https://developers.google.com/maps/documentation/javascript/load-maps-js-api
for more information.
-->
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
defer
></script>
</body>
</html>تجربة عيّنة
ينشئ المثال التالي KmlLayer من خلاصة KML المحدّدة:
TypeScript
function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 11, center: { lat: 41.876, lng: -87.624 }, } ); const ctaLayer = new google.maps.KmlLayer({ url: "https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml", map: map, }); } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 11, center: { lat: 41.876, lng: -87.624 }, }); const ctaLayer = new google.maps.KmlLayer({ url: "https://googlearchive.github.io/js-v2-samples/ggeoxml/cta.kml", map: map, }); } window.initMap = initMap;
CSS
/* * Always set the map height explicitly to define the size of the div element * that contains the map. */ #map { height: 100%; } /* * Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; }
HTML
<html>
<head>
<title>KML Layers</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
</head>
<body>
<div id="map"></div>
<!--
The `defer` attribute causes the script to execute after the full HTML
document has been parsed. For non-blocking uses, avoiding race conditions,
and consistent behavior across browsers, consider loading using Promises. See
https://developers.google.com/maps/documentation/javascript/load-maps-js-api
for more information.
-->
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
defer
></script>
</body>
</html>تجربة عيّنة
تفاصيل ميزة KML
بما أنّ ملف KML قد يتضمّن عددًا كبيرًا من العناصر، قد لا تتمكّن من الوصول إلى بيانات العناصر من الكائن KmlLayer مباشرةً. بدلاً من ذلك، عند عرض العناصر، يتم عرضها لتبدو كعناصر متراكبة قابلة للنقر في Maps JavaScript API.
يؤدي النقر على ميزات فردية، تلقائيًا، إلى ظهور InfoWindow يحتوي على <title> KML و<description> معلومات حول الميزة المحدّدة.
بالإضافة إلى ذلك، يؤدي النقر على عنصر KML إلى إنشاء KmlMouseEvent،
الذي ينقل المعلومات التالية:
- يشير
positionإلى إحداثيات خط العرض/خط الطول التي سيتم تثبيتInfoWindowعليها لهذه الميزة في ملف KML. هذا الموضع هو بشكل عام الموقع الجغرافي الذي تم النقر عليه بالنسبة إلى المضلّعات والخطوط المتعددة وGroundOverlays، ولكنّه المصدر الحقيقي بالنسبة إلى العلامات. - يشير
pixelOffsetإلى الإزاحة منpositionأعلاه لتثبيت "ذيل"InfoWindow. بالنسبة إلى الأشكال المضلّعة، تكون هذه الإزاحة عادةً0,0، ولكن بالنسبة إلى العلامات، تتضمّن ارتفاع العلامة. - تحتوي
featureDataعلى بنية JSON الخاصة بـKmlFeatureData.
في ما يلي نموذج لعنصر KmlFeatureData:
{ author: { email: "nobody@google.com", name: "Mr Nobody", uri: "http://example.com" }, description: "description", id: "id", infoWindowHtml: "html", name: "name", snippet: "snippet" }
يعرض المثال التالي نص ميزة KML <Description>
ضمن لوحة جانبية <div> عند النقر على الميزة:
TypeScript
function initMap(): void { const map = new google.maps.Map( document.getElementById("map") as HTMLElement, { zoom: 12, center: { lat: 37.06, lng: -95.68 }, } ); const kmlLayer = new google.maps.KmlLayer({ url: "https://raw.githubusercontent.com/googlearchive/kml-samples/gh-pages/kml/Placemark/placemark.kml", suppressInfoWindows: true, map: map, }); kmlLayer.addListener("click", (kmlEvent) => { const text = kmlEvent.featureData.description; showInContentWindow(text); }); function showInContentWindow(text: string) { const sidebar = document.getElementById("sidebar") as HTMLElement; sidebar.innerHTML = text; } } declare global { interface Window { initMap: () => void; } } window.initMap = initMap;
JavaScript
function initMap() { const map = new google.maps.Map(document.getElementById("map"), { zoom: 12, center: { lat: 37.06, lng: -95.68 }, }); const kmlLayer = new google.maps.KmlLayer({ url: "https://raw.githubusercontent.com/googlearchive/kml-samples/gh-pages/kml/Placemark/placemark.kml", suppressInfoWindows: true, map: map, }); kmlLayer.addListener("click", (kmlEvent) => { const text = kmlEvent.featureData.description; showInContentWindow(text); }); function showInContentWindow(text) { const sidebar = document.getElementById("sidebar"); sidebar.innerHTML = text; } } window.initMap = initMap;
CSS
/* Optional: Makes the sample page fill the window. */ html, body { height: 100%; margin: 0; padding: 0; } #container { height: 100%; display: flex; } #sidebar { flex-basis: 15rem; flex-grow: 1; padding: 1rem; max-width: 30rem; height: 100%; box-sizing: border-box; overflow: auto; } #map { flex-basis: 0; flex-grow: 4; height: 100%; }
HTML
<html>
<head>
<title>KML Feature Details</title>
<link rel="stylesheet" type="text/css" href="./style.css" />
<script type="module" src="./index.js"></script>
</head>
<body>
<div id="container">
<div id="map"></div>
<div id="sidebar"></div>
</div>
<!--
The `defer` attribute causes the script to execute after the full HTML
document has been parsed. For non-blocking uses, avoiding race conditions,
and consistent behavior across browsers, consider loading using Promises. See
https://developers.google.com/maps/documentation/javascript/load-maps-js-api
for more information.
-->
<script
src="https://maps.googleapis.com/maps/api/js?key=AIzaSyB41DRUbKWJHPxaFjMAwdrzWzbVKartNGg&callback=initMap&v=weekly"
defer
></script>
</body>
</html>تجربة عيّنة
قيود الحجم والتعقيد لعرض ملفات KML
تفرض Maps JavaScript API قيودًا على حجم ملفات KML التي يتم تحميلها ومدى تعقيدها. في ما يلي ملخّص بالحدود الحالية.
ملاحظة: يمكن تغيير هذه الحدود في أي وقت.
- جلب الحد الأقصى من حجم الملف (KML غير منسق، أو GeoRSS غير منسق، أو KMZ مضغوط)
- 3MB
- الحد الأقصى لحجم ملف KML غير مضغوط
- 10 ميغابايت
- الحد الأقصى لحجم ملف الصورة غير المضغوط في ملفات KMZ
- 500 كيلوبايت لكل ملف
- الحدّ الأقصى لعدد روابط الشبكة
- 10
- الحد الأقصى للعدد الإجمالي للميزات على مستوى المستند بأكمله
- 1,000
- عدد طبقات KML
- هناك حدّ أقصى لعدد طبقات KML التي يمكن عرضها على خريطة Google واحدة. في حال تجاوز هذا الحدّ، لن تظهر أي من الطبقات على الخريطة، وسيتم تسجيل خطأ في وحدة تحكّم JavaScript في متصفّح الويب. ويستند الحدّ إلى مجموعة من عدد
KmlLayerالصفوف التي تم إنشاؤها وإجمالي طول جميع عناوين URL المستخدَمة لإنشاء هذه الطبقات. سيشغل كلKmlLayerجديد تنشئه جزءًا من الحدّ الأقصى للطبقة، وجزءًا إضافيًا من الحدّ الأقصى استنادًا إلى طول عنوان URL الذي تم تحميل ملف KML منه. وبالتالي، سيختلف عدد الطبقات التي يمكنك إضافتها حسب التطبيق، ولكن في المتوسط، يجب أن تتمكّن من تحميل ما بين 10 و20 طبقة بدون بلوغ الحد الأقصى. إذا استمر ظهور الخطأ، يمكنك استخدام خدمة تقصير عناوين URL لتقصير عناوين URL الخاصة بملفات KML، أو إنشاء ملف KML واحد يتضمّن NetworkLinks لعناوين URL الفردية الخاصة بملفات KML.
اعتبارات الأداء والتخزين المؤقت
ستخزّن خوادم Google مؤقتًا ملفات KML للحدّ من الحمل على خوادمك. سيؤدي ذلك أيضًا إلى تحسين الأداء للمستخدمين من خلال عرض تمثيل فعال من حيث المساحة للقطاعات المناسبة في ملف KML، وذلك عندما ينقر المستخدمون على الخريطة ويحرّكونها ويغيّرون مستوى تكبيرها.
للحصول على أفضل أداء، ننصحك بما يلي:
- استخدِم علامة
<expires>مناسبة في ملف KML.
KmlLayerلن تستخدم عناوين HTTP عند تحديد طريقة تخزين ملفات KML مؤقتًا. - لا تنشئ الملفات بشكل ديناميكي عند وقت الطلب.
بدلاً من ذلك، يمكنك إنشاء الملفات قبل الحاجة إليها وعرضها بشكل ثابت. إذا استغرق الخادم وقتًا طويلاً لنقل ملف KML، قد لا يتم عرضKmlLayer. - لا تحاوِل تجاوز ذاكرات التخزين المؤقت إلا إذا كنت متأكدًا من أنّه تم تعديل ملفك.
يمكن أن يؤدي تجاوز ذاكرات التخزين المؤقت دائمًا (على سبيل المثال، عن طريق إضافة رقم عشوائي أو وقت ساعة المستخدم كمعلَمة طلب بحث) إلى إرهاق خوادمك بسهولة إذا أصبح موقعك الإلكتروني رائجًا فجأة، وكنت تعرض ملفات KML كبيرة.
يمكن أن يؤدي ذلك أيضًا إلى أن تعرض ذاكرة التخزين المؤقت بيانات قديمة للمستخدمين، إذا كان أي من الساعات غير صحيح، ولم يتم ضبط علامة<expires>بشكل صحيح.
بدلاً من ذلك، يمكنك نشر ملفات ثابتة معدَّلة مع رقم مراجعة جديد ومستقل، واستخدام رمز من جهة الخادم لتعديل عنوان URL الذي تم تمريره إلىKmlLayerديناميكيًا باستخدام الإصدار الحالي. - يجب ألّا يتم تغيير ملفات KML أكثر من مرّة واحدة في الدقيقة.
إذا كان إجمالي حجم جميع الملفات يتجاوز 1 ميغابايت (غير مضغوطة)، يجب ألا تتجاوز التغييرات مرة واحدة كل 5 دقائق. - عند استخدام خادم بيانات جغرافية مكانية، تجنَّب استخدام مَعلمات طلب البحث للحدّ من إطار العرض للطبقات.
بدلاً من ذلك، يمكنك حصر إطار عرض الخريطة باستخدام الحدثbounds_changed. سيتم إرسال الميزات التي يمكن عرضها تلقائيًا فقط إلى المستخدمين.
إذا كان خادم البيانات الجغرافية المكانية يحتوي على كمية كبيرة من البيانات، ننصحك باستخدام طبقات البيانات بدلاً من ذلك. - عند استخدام خادم بيانات جغرافية مكانية، استخدِم عدة
KmlLayerلكل مجموعة من العناصر التي تريد السماح للمستخدمين بتبديلها، بدلاً منKmlLayerواحد مع مَعلمات طلب بحث مختلفة. - استخدِم ملفات KMZ مضغوطة لتقليل حجم الملف.
- إذا كنت تستخدم Google Cloud Storage أو حل تخزين سحابي آخر، تجنَّب استخدام ميزات مثل عناوين URL الموقّعة أو الرموز المميزة المؤقتة لفرض عناصر التحكّم في الوصول. ويمكن أن تؤدي هذه الأخطاء إلى منع التخزين المؤقت عن غير قصد.
- قلِّل دقة جميع النقاط إلى دقة مناسبة.
- دمج وتبسيط الأشكال الهندسية للعناصر المتشابهة، مثل المضلّعات والخطوط المتعددة
- إزالة أي عناصر أو موارد صور غير مستخدَمة
- أزِل أي عناصر غير متوافقة.
إذا كنت بحاجة إلى الوصول إلى بيانات خاصة أو منع التخزين المؤقت أو إرسال إطار عرض المتصفح إلى خادم بيانات جغرافية مكانية كمعلَمة طلب بحث، ننصحك باستخدام طبقات البيانات بدلاً من KmlLayer. سيؤدي ذلك إلى توجيه متصفحات المستخدمين لطلب الموارد مباشرةً من خادم الويب.
عناصر KML المتوافقة
تتيح Maps JavaScript API عناصر KML التالية. يتجاهل المحلل اللغوي لـ KML عادة علامات XML التي لا يفهمها.
- العلامات الموضعية
- الرموز
- المجلدات
- HTML وصفي: استبدال الكيان باستخدام <BalloonStyle> و<text>
- KMZ (KML مضغوط، بما في ذلك الصور المرفقة)
- الخطوط المتعددة والمضلعات
- نمط الخطوط المتعددة والمضلعات، بما في ذلك اللون، والتعبئة، والتعتيم
- روابط الشبكة لاستيراد البيانات ديناميكيًا
- تراكبات الأرض وتراكبات الشاشة
يقدّم الجدول التالي تفاصيل كاملة عن عناصر KML المتوافقة.
| عنصر KML | هل تتوافق مع واجهة برمجة التطبيقات؟ | تعليق |
|---|---|---|
| <address> | لا | |
| <AddressDetails> | لا | |
| <Alias> | لا ينطبق | <Model> غير متوافق |
| <altitude> | لا | |
| <altitudeMode> | لا | |
| <atom:author> | نعم | |
| <atom:link> | نعم | |
| <atom:name> | نعم | |
| <BalloonStyle> | جزئيًا | يُسمح فقط باستخدام <text> |
| <begin> | لا ينطبق | <TimeSpan> غير متاح |
| <bgColor> | لا | |
| <bottomFov> | لا ينطبق | <PhotoOverlay> غير متاح |
| <Camera> | لا | |
| <Change> | جزئيًا | لا يُسمح إلا بتغيير الأنماط |
| <color> | جزئيًا | يشمل #AABBGGRR و #BBGGRR، ولا يتوافق مع <IconStyle> و<ScreenOverlay> و <GroundOverlay> |
| <colorMode> | لا | |
| <cookie> | لا | |
| <coordinates> | نعم | |
| <Create> | لا | |
| <Data> | نعم | |
| <Delete> | لا | |
| <description> | نعم | يُسمح بمحتوى HTML، ولكن يتم تنظيفه للحماية من الهجمات على مستوى المتصفحات. لا يُسمح باستبدال الكيانات بالتنسيق $[dataName]. |
| <displayMode> | لا | |
| <displayName> | لا | |
| <Document> | جزئيًا | ضمنيًا، يمكن استخدامها مع حسابات الأطفال، ولا يكون لها أي تأثير كعنصر تابع لميزات أخرى |
| <drawOrder> | لا | |
| <east> | نعم | |
| <end> | لا ينطبق | <TimeSpan> غير متاح |
| <expires> | نعم | يُرجى الاطّلاع على قسم "الملخّص" للحصول على التفاصيل |
| <ExtendedData> | جزئيًا | يجب أن يكون <Data> غير مصنّف فقط، بدون <SimpleData> أو <Schema>،
ولا يمكن استخدام بدائل الكيانات بالشكل $[dataName].
|
| <extrude> | لا | |
| <fill> | نعم | |
| <flyToView> | لا | |
| <Folder> | نعم | |
| <geomColor> | لا | متوقفة نهائيًا |
| <GeometryCollection> | لا | متوقفة نهائيًا |
| <geomScale> | لا | متوقفة نهائيًا |
| <gridOrigin> | لا ينطبق | <PhotoOverlay> غير متاح |
| <GroundOverlay> | نعم | لا يمكن تدويرها |
| <h> | نعم | متوقفة نهائيًا |
| <heading> | نعم | |
| تلميح | نعم | target=... جهاز متوافق |
| <hotSpot> | نعم | |
| <href> | نعم | |
| <httpQuery> | لا | |
| <Icon> | نعم | لا يمكن تدويرها |
| <IconStyle> | نعم | |
| <ImagePyramid> | لا ينطبق | <PhotoOverlay> غير متاح |
| <innerBoundaryIs> | نعم | ضمنيًا من ترتيب <LinearRing> |
| <ItemIcon> | لا ينطبق | لا تتوافق <ListStyle> |
| <key> | لا ينطبق | العنصر <StyleMap> غير متاح |
| <kml> | نعم | |
| <labelColor> | لا | متوقفة نهائيًا |
| <LabelStyle> | لا | |
| <latitude> | نعم | |
| <LatLonAltBox> | نعم | |
| <LatLonBox> | نعم | |
| <leftFov> | لا ينطبق | <PhotoOverlay> غير متاح |
| <LinearRing> | نعم | |
| <LineString> | نعم | |
| <LineStyle> | نعم | |
| <Link> | نعم | |
| <linkDescription> | لا | |
| <linkName> | لا | |
| <linkSnippet> | لا | |
| <listItemType> | لا ينطبق | لا تتوافق <ListStyle> |
| <ListStyle> | لا | |
| <Location> | لا ينطبق | <Model> غير متوافق |
| <Lod> | نعم | |
| <longitude> | نعم | |
| <LookAt> | لا | |
| <maxAltitude> | نعم | |
| <maxFadeExtent> | نعم | |
| <maxHeight> | لا ينطبق | <PhotoOverlay> غير متاح |
| <maxLodPixels> | نعم | |
| <maxSessionLength> | لا | |
| <maxWidth> | لا ينطبق | <PhotoOverlay> غير متاح |
| <message> | لا | |
| <Metadata> | لا | متوقفة نهائيًا |
| <minAltitude> | نعم | |
| <minFadeExtent> | نعم | |
| <minLodPixels> | نعم | |
| <minRefreshPeriod> | لا | <NetworkLink> |
| <Model> | لا | |
| <MultiGeometry> | جزئيًا | يتم عرضها كميزات منفصلة في اللوحة الجانبية اليمنى |
| <name> | نعم | |
| <near> | لا ينطبق | <PhotoOverlay> غير متاح |
| <NetworkLink> | نعم | |
| <NetworkLinkControl> | جزئيًا | العنصران <Update> و <expires> متوافقان جزئيًا. تتجاهل واجهة برمجة التطبيقات إعدادات انتهاء الصلاحية في عناوين HTTP، ولكنها تستخدم إعدادات انتهاء الصلاحية المحدّدة في KML. في حال عدم توفّر إعدادات انتهاء الصلاحية أو ضمن فترة الصلاحية، قد تخزّن "خرائط Google" مؤقتًا البيانات التي يتم جلبها من الإنترنت لمدد غير محدّدة. يمكن فرض إعادة جلب البيانات من الإنترنت من خلال إعادة تسمية المستند وجلبه ضمن عنوان URL مختلف، أو من خلال التأكّد من أنّ المستند يتضمّن إعدادات انتهاء صلاحية مناسبة. |
| <north> | نعم | |
| <open> | نعم | |
| <Orientation> | لا ينطبق | <Model> غير متوافق |
| <outerBoundaryIs> | نعم | ضمنيًا من ترتيب <LinearRing> |
| <outline> | نعم | |
| <overlayXY> | لا | |
| <Pair> | لا ينطبق | العنصر <StyleMap> غير متاح |
| <phoneNumber> | لا | |
| <PhotoOverlay> | لا | |
| <Placemark> | نعم | |
| <Point> | نعم | |
| <Polygon> | نعم | |
| <PolyStyle> | نعم | |
| <range> | نعم | |
| <refreshInterval> | جزئيًا | <Link> فقط، وليس في <Icon> |
| <refreshMode> | نعم | لا تتوفّر عناوين HTTP في وضع "onExpire". راجِع الملاحظات حول <Update> و <expires> أعلاه. |
| <refreshVisibility> | لا | |
| <Region> | نعم | |
| <ResourceMap> | لا ينطبق | <Model> غير متوافق |
| <rightFov> | لا ينطبق | <PhotoOverlay> غير متاح |
| <roll> | لا ينطبق | الكاميرا والطراز غير مدعومين |
| <rotation> | لا | |
| <rotationXY> | لا | |
| <Scale> | لا ينطبق | <Model> غير متوافق |
| <scale> | لا | |
| <Schema> | لا | |
| <SchemaData> | لا | |
| <ScreenOverlay> | نعم | لا يمكن تدويرها |
| <screenXY> | لا | |
| <shape> | لا ينطبق | <PhotoOverlay> غير متاح |
| <SimpleData> | لا ينطبق | لا تتوافق <SchemaData> |
| <SimpleField> | لا ينطبق | لا يمكن استخدام <Schema> |
| <size> | نعم | |
| <Snippet> | نعم | |
| <south> | نعم | |
| <state> | لا ينطبق | لا تتوافق <ListStyle> |
| <Style> | نعم | |
| <StyleMap> | لا | تأثيرات التمرير (التمييز) غير متاحة |
| <styleUrl> | لا ينطبق | العنصر <StyleMap> غير متاح |
| <targetHref> | جزئيًا | متاحة في <Update> وليس في <Alias> |
| <tessellate> | لا | |
| <text> | نعم | لا يمكن استبدال $[geDirections] |
| <textColor> | لا | |
| <tileSize> | لا ينطبق | <PhotoOverlay> غير متاح |
| <tilt> | لا | |
| <TimeSpan> | لا | |
| <TimeStamp> | لا | |
| <topFov> | لا ينطبق | <PhotoOverlay> غير متاح |
| <Update> | جزئيًا | تغييرات في الأسلوب فقط، وليس <إنشاء> أو <حذف> |
| <Url> | نعم | متوقفة نهائيًا |
| <value> | نعم | |
| <viewBoundScale> | لا | |
| <viewFormat> | لا | |
| <viewRefreshMode> | جزئيًا | يمكن استخدام onStop |
| <viewRefreshTime> | نعم | |
| <ViewVolume> | لا ينطبق | <PhotoOverlay> غير متاح |
| <visibility> | جزئيًا | yes على <Folder> - ترث العلامات الموضعية الفرعية مستوى ظهورها |
| <w> | نعم | متوقفة نهائيًا |
| <west> | نعم | |
| <when> | لا ينطبق | التنسيق <TimeStamp> غير متاح |
| <width> | نعم | |
| <x> | نعم | متوقفة نهائيًا |
| <y> | نعم | متوقفة نهائيًا |