سؤال

أنا أستخدم GMAPS V3 مع MarkerClusterer من http://code.google.com/p/gmaps-utility-library-dev/

العلامات المعروضة على الخريطة محددة من قبل المستخدم وغالبًا ما تنهار ، لذلك بغض النظر عن مقدار التكبير ، يظهر الكتلة دائمًا أن هناك عناصر متعددة في مكان واحد. ولكن يجب أن يكون المستخدم قادرًا على النقر فوق كل علامة واحدة لرؤية نافذة المعلومات. هل تعرف أي طريقة للتعامل مع هذا؟

لقد جربت موقع العشوائية قليلاً على الخادم ، لكن العشوائية ليست عشوائية بما فيه الكفاية وتستمر العلامات في الانهيار ، وليس في كثير من الأحيان.

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

المحلول

الرد على تعليق OP في إجابتي السابقة لأنه لا يناسب مربع التعليق:

هذا يمنع Clusterer من تجميع العلامات ، ولكن عندما تكون الإحداثيات متطابقة ، تبقى جميع العلامات على قمة بعضها البعض. هل تعرف أي حلول لهذا؟

أعتقد أن هذا هو السلوك المتوقع مع خرائط Google - إذا كانت العلامات لديها نفس LAT/LNG تمامًا ، فستحصل على العلامات فوق بعضها البعض.

أحد الحلول المحتملة هو إضافة العلامة الأولى فقط إلى الخريطة ، ثم عندما تحاول إضافة علامة أخرى إلى LAT/LNG محددة بالفعل (تتبعها بخريطة JS) ، يمكنك إضافة عدد (أو إنشاء A مجموعة من معلومات العلامة) وتحديث نص InfoWindow مع تلك المعلومات. على سبيل المثال ، سيُظهر النقر على العلامة infoWindow قائلاً إن هناك 15 "أشياء" في هذا الموقع ثم سرد أسمائها وسماتها في قائمة تحتها ...

الاحتمال الآخر هو "dither" علامات لاحقة عن طريق إضافة رقم عشوائي إلى نهاية LAT/LNG العشرية. وبهذه الطريقة عندما يقوم المستخدم بتكبير على طول الطريق ، سيتم تعويض العلامات قليلاً. هذا الخيار يشعر قليلا "قذرة" رغم ذلك.

نصائح أخرى

لقد واجهت هذه المشكلة وحلها عن طريق تحديد خاصية مُنشأة لـ "Maxzoom" التي كانت أقل من Maxzoom لخريطة Google:

var markerCluster = new MarkerClusterer(map, markers, { maxZoom: 18 });

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

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