سؤال

لذلك لدي تطبيق يحتوي على خريطة بها (عدة مئات) من العلامات.أستخدم markclusterer.js الذي توفره Google لتجميع علاماتي وتسهيل النظر إلى الأمر برمته.أنا أستخدم API V3.

أنا بخير مع كل ذلك.ولكن ما أود القيام به هو تنفيذ بعض الإجراءات عندما تنتهي مجموعة العلامات من تجميع جميع العلامات.لقد حاولت أن أفعل ذلك بنفسي ولكن دون أن ألقي نظرة.

أي اقتراحات؟(أفترض أن هذا سيكون أسهل مما أعتقد وأن ذهني مقلي)

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

المحلول

كنت أتساءل فقط نفس الشيء.هذه هي الطريقة التي فعلتها:

giveacodicetagpre.

نصائح أخرى

هل ستقوم الخريطة "idle" حدث الحدث المناسب لك؟يجب أن ينطلق بمجرد انتهاء MarkerCluster (على افتراض أنك تقوم بتحميل Markercluster عند تحميل الصفحة).

يبدو أن هذه المكتبة لا تتم صيانتها.إنه لا يعمل مع الإصدار 3 بشكل صحيح لسنوات ولم يتم تطوير أي حل.

لذا، قمت بتنزيل النسخة غير المصغرة ووضعتها في الكود المصدري للمشاريع التي أعمل عليها.لن يعمل الحل المقبول إلا (للإصدار 3) إذا قمت بإجراء التغييرات التالية مباشرة في المكتبة:

ابحث عن وظيفة createClusters_ المضافة google.maps.event.trigger(this, "clusteringend", this); بعد الحلقة.لذلك سيبدو كما يلي:

MarkerClusterer.prototype.createClusters_ = function() {
  if (!this.ready_) {
    return;
  }

  // Get our current map view bounds.
  // Create a new bounds object so we don't affect the map.
  var mapBounds = new google.maps.LatLngBounds(this.map_.getBounds().getSouthWest(),
      this.map_.getBounds().getNorthEast());
  var bounds = this.getExtendedBounds(mapBounds);

  for (var i = 0, marker; marker = this.markers_[i]; i++) {
    if (!marker.isAdded && this.isMarkerInBounds_(marker, bounds)) {
      this.addToClosestCluster_(marker);
    }
  }
  google.maps.event.trigger(this, "clusteringend", this);
};

الآن يمكنك استخدام:

google.maps.event.addListener(markerClusterer, 'clusteringend', myFunction);

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