سؤال

هناك حوالي 100 علامة على خريطة Google بالإضافة إلى وجود علامة خاصة واحدة يجب أن تكون مرئية. حاليًا ، تخفي العلامات المحيطة بها تمامًا أو جزئيًا عند تكبير الخريطة. أحتاج إلى أن تكون هذه العلامة مرئية تمامًا وأعتقد أن الاحتفاظ بها على رأس جميع العلامات الأخرى يجب أن تقوم بالخدعة. لكن لا يمكنني إيجاد طريقة لتعديل ترتيب التراص (Z-Index).

هل كانت مفيدة؟

المحلول

استخدم ال Zindexprocess الخيار في GmarkerOptions عند إنشاء العلامة التي تريدها في الأعلى. علي سبيل المثال:

var pt = new GLatLng(42.2659, -83.74861);
var marker = new GMarker(pt, {zIndexProcess: function() { return 9999; }});
map.addOverlay(marker);

أعتقد أن الافتراضي هو أن يكون لديك مؤشر Z يمثل خط عرض نقطة العلامة ، لذلك يجب أن يكون هذا آمنًا إلى حد ما في إحضار علامة واحدة إلى المقدمة. علاوة على ذلك ، كان هذا مجرد مثال بسيط ؛ يمكنك تعيين Z-ondex لجميع العلامات الخاصة بك بأي طريقة بسيطة أو معقدة تريدها. مثال آخر هو أن يكون لديك وظيفتين: واحدة للعلامات الخاصة وواحدة للباقي.

var pt1 = new GLatLng(42.2659, -83.74861);
var pt2 = new GLatLng(42.3000, -83.74000);
var marker1 = new GMarker(pt1, {zIndexProcess: specialMarker});
var marker2 = new GMarker(pt2, {zIndexProcess: normalMarker});
map.addOverlay(marker1);
map.addOverlay(marker2);

function specialMarker() {
  return 9999;
}

function normalMarker() {
  return Math.floor(Math.random()*1000);
}

نصائح أخرى

هذا هو لـ Google Maps API 2.

بالنسبة لـ Google Maps API 3 ، استخدم setzindex (Zindex: Number) للعلامة.

يرى:http://code.google.com/apis/maps/documentation/javaScript/Reference.html#marker

إضافة إلى إجابة Jhanifen ، إذا كنت ترغب في الحصول على علامة خاصة واحدة لتكون على رأس الباقي ، قم بتعيين zindex على google.maps.marker.max_zindex + 1. هذا سيتأكد من أنه على رأس أي علامة على الخريطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top