هل الامور على ما يرام؟ Clearoverlays () في GMAP API V2 إلى Google Maps API V3؟

StackOverflow https://stackoverflow.com/questions/953394

  •  11-09-2019
  •  | 
  •  

سؤال

يمكنني استخدام خرائط Google API V3.

أنا هجر موقعي GMP API V2 -> V3. ولكن تعاملت لأنني استخدمت طريقة ClearOverlays () لحذف كائن موجود مرة واحدة في V2، وحذف كائن في ما تم إلغاؤه في V3 بشكل فردي.

v2.

map.clearOverlays();

v3.

map.set_visible(false);
popup.close();

هل الامور على ما يرام؟ أو حلول أخرى؟

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

المحلول

لم أجد أي شيء في v3 المرجع الذي سيقوم صراحة بمسح التراكبات التي تم إنشاؤها على الخريطة ولم أجد أي عينات من التعليمات البرمجية التي تفعل هذا أيضا.

أعتقد أنه من المهم الإشارة إلى API V3 هو إصدار مطور مبكر للغاية ويحتوي فقط على اساسي جدا مجموعة من الميزات. من الممكن تماما أنهم ببساطة ليس لديهم هذه الوظيفة بعد. إذا كنت تعمل على نظام حي، أقترح عليك التمسك ب V2 حتى V3 أكثر نضجا.

هناك منشور على مجموعة المطور التي تطلب من السؤال حول كيفية استخدام API مع إجابة مفيدة للغاية من إدارة منتجات V3:

سوء فهم حول خيارات V3

تعديل:

حسنا، يبدو أن هذه الوظيفة مفقودة من API عمدا من أجل الحفاظ على خفيفة الوزن. يجب أن تتبع كائنات تراكب الخاص بك بنفسك واتصل:

object.set_map(null);

لإزالتها.

نصائح أخرى

إليك ما أقوم به:

قم بإنشاء مجموعة فارغة حرفية، ادفع العلامات وأنت تجعلها، ثم طردهم عند الضرورة

var eviction_list = [];

function evictMarkers() {

    // clear all markers

    $(eviction_list).each(function () {
         this.set_map(null);
    });

    // reset the eviction array 
    eviction_list = [];
}

//in function adding markers
......
marker = new google.maps.Marker({
    position: results[0].geometry.location,
    map: map,
    title: elem.title
});
eviction_list.push(marker);
......

//to clear all markers
evictMarkers();

كما يذكر Hongwei بشكل صحيح، تسمى الوظيفة SetMap ()، وليس SET_MAP ().

يرى http://code.google.com/apis/maps/documentation/v3/overlays.html#hideshow.

المشكلة هي setMap(null) يمكن أن تكون بطيئة عندما يكون لديك العديد من العلامات.

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