Angular-google-maps: تداخل ماركر سبايدرفير

تم إنشاؤها على ١٢ سبتمبر ٢٠١٧  ·  23تعليقات  ·  مصدر: SebastianM/angular-google-maps

وصف المشكلة
في الوقت الحالي ، عندما يتداخل محددان أو أكثر أو فوق بعضهما البعض مباشرة ، فلا توجد طريقة للنقر / تحديد العلامة السفلية.

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

كما هو موضح في أدناه plunkr

http://plnkr.co/edit/031xGrYzAVfYR3k1OyYg؟p=info

السلوك الحالي
لا يمكن النقر فوق العلامة الخلفية

السلوك المتوقع / المطلوب
على عكس واجهة برمجة تطبيقات google ، في خرائط google الفعلية ، إذا حدث هذا ، فعندما يحوم المستخدم فوق العلامة ، ستتوسع العلامات الأخرى في نمط دائري للسماح للمستخدم بتحديد الدبوس الذي يرغب في تحديده.

تم تكرار هذا السلوك في الحزمة أدناه:
https://github.com/jawj/OverlappingMarkerSpiderfier

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

nice to have AgmMarker feature-request

التعليق الأكثر فائدة

أتمنى أن يكون لديك هذه الميزة

ال 23 كومينتر

ستكون هذه بالتأكيد ميزة رائعة ولكنها ستكون في حزمة منفصلة @ agm NPM (لذلك ليس في الحزمة agm / core). سيكون ذلك مناسبًا تمامًا لمشروع مجتمعي صغير لـ AGM. أو شخص ما لديه الوقت لتنفيذه هنا.

أتمنى أن يكون لديك هذه الميزة

لدينا مشكلة ذات صلة في مشروعنا الآن على ما أعتقد. نحن نستخدم مجموعات في agm. وإذا كان لدينا علامتان لهما نفس العنوان بالضبط (على سبيل المثال ، شركتان في نفس المبنى) لا يمكن فتح المجموعة. إذا نقرنا عليه ، فإنه يختفي في النيرفانا. ما رأيك في ذلكSebastianM. هل هذه نفس المشكلة؟

نفس العدد من Badmonky

لقد وجدت حلًا لهذا الأمر ، يمكنك تعيين خاصية "maxZoom" بحيث لا تتجمع بعد الآن عند التكبير بالكامل.

سيؤدي هذا إلى إصلاح العلامات القريبة جدًا ، ولكنها لن تعمل على إصلاح مشكلة علامتين في نفس الموضع ، وسيظل امتداد Spiderfier بحاجة إلى إصلاح هذه المشكلة.

هل هناك أي طريقة لكيفية سرد كافة العلامات عند النقر فوق المجموعة؟

مرحبًا بكم مرة أخرى. هل نظر أي شخص في مشكلة "العنوان نفسه" حتى الآن؟ نظام الإنتاج لدينا لديه هذه المشكلة في الوقت الحالي ، وهي مشكلة كبيرة.

SebastianM أي أخبار عن هذا؟

أهلا! SebastianM أي أخبار عن هذه الميزة؟

كنت أحاول إنشاء وحدة لهذا ، ولكن واجهت ما يلي:

الطريقة التي يتم بها إعداد علاقة "MarkerManager" -> "ClusterManager" ، يبدو / من المستحيل أن يكون لديك "SpiderManager" يمكن دمجها في "ClusterManager" أو العكس.

لذلك شيء مثل:

<agm-map>
    <agm-marker-cluster>
        <agm-marker-spider>
            <agm-marker>
            <agm-marker>
            ....
        </agm-marker-spider>
    </agm-marker-cluster>
</agm-map>

هذا يجعل من المستحيل إنشاء عرض خريطة حيث تحصل حتى "maxZoom" للعنقود على علامات "مجمعة" لطيفة وبعد ذلك يبدأ العنكبوت ليكون قادرًا على "(un) spiderfy" العلامة.

أعلم أنه يمكنك استخدام @Host جنبًا إلى جنب مع @Optional للإشارة إلى ClusterManager ولكن في هذه الحالة يوجد موقف مثل ما يلي

<agm-map>
    <agm-marker-cluster>
        <agm-marker>
        <agm-marker>
        ....
    </agm-marker-cluster>
    <agm-marker-spider>
        <agm-marker>
        <agm-marker>
        ....
    </agm-marker-spider>
</agm-map>

سيؤدي أيضًا إلى حل ClusterManager وبالتالي إضافة العلامات (بشكل غير صحيح) إلى المجموعة أيضًا.

ربما يمكن لشخص ما أن يصححني إذا رأيت هذا خطأ أو كان لديه اقتراح حول كيفية القيام بذلك باستخدام التطبيق الحالي ، لأنه بخلاف ذلك قد يعني تغييرًا رئيسيًا (من المحتمل حدوث كسر) في @agm/core و @agm/js-marker-clusterer حزم

ستظل بعض التغييرات مطلوبة ، ولكنها ستكون ثانوية (إضافة addNativeMarker / deleteNativeMarker حتى يتمكن * extends MarkerManager المتداخل من إعادة توجيهه addMarker / deleteMarker على الأصل دون إنشاء مثيل محدد جديد تمامًا (والذي يتعارض أيضًا مع الغرض من تداخلهم: wink :))

لقد أجريت بعض التغييرات على الحزم الأساسية والمجموعة الحالية وأضفت حزمة لدعم OverlappingMarkerSpiderfier ، ويظهر الاختبار الأولي أنها تعمل كما هو متوقع (أيضًا عند استخدامها في إعداد "متداخل" مع الكتلة) لذا يرجى الاختبار / المراجعة ويمكننا أيضًا إضافة spiderfier كجزء من هذه المكتبات التي تدعم الخيارات.

chancezeus Thats أخبار رائعة ، معرف ترغب في اختباره ، أي أمثلة حول كيفية استخدامه؟

شكرا لعملك على هذا! أنا أيضًا مهتم جدًا باستخدامه. إذا كان لديك بعض الإرشادات الموجزة حول كيفية إعداده ، فسيكون ذلك رائعًا!

<agm-map style="width:100%; height:400px;" [latitude]="lat" [longitude]="lng" [zoom]="12">
    <agm-marker-cluster  [maxZoom]="15" [imagePath]="'https://googlemaps.github.io/js-marker-clusterer/images/m'">
         <agm-marker *ngFor='let carer of family.carers' [latitude]="carer.latitude" [longitude]="carer.longitude">                    
        </agm-marker>
    </agm-marker-cluster>
</agm-map>   

أفترض أنه يمكنني فقط تثبيت spiderfier وتغيير agm-marker-cluster إلى agm-marker-spiderfier . أنا فقط غير متأكد من كيفية تثبيته ...

chancezeus سأكون ممتنًا أيضًا إذا كان بإمكانك مشاركة دليل حول كيفية تنفيذ ذلك ، شكرًا :)

jonomacd هل يمكنك أن تشرح لي كيف تجعلها تعمل؟ أفترض أنه يمكنني فقط تثبيت spiderfier وتغيير مجموعة agm-marker-الكتلة الخاصة بي إلى agm-marker-spiderfier.
يعمل فقط agm-marker-cluster ، ولا يمكنني رؤية نتائج agm-marker-spiderfier.
انا اقدر مساعدتك.

تم وضع علامة على هذه المشكلة تلقائيًا على أنها قديمة نظرًا لعدم وجود نشاط حديث لها. سيتم إغلاقه إذا لم يحدث أي نشاط آخر. شكرا لمساهماتكم.

أي ملاحظات على ما ورد أعلاه؟ انظر انها اصبحت قديمة جدا

MattStrybis انظروا إلى هذا # 1329

شكرا hernantomassini الكمال !!

واجهت مشاكل عند محاولة استخدام agm-oms مع js-marker-Clusterer. نأمل أن يتم دعم حزمة علامة spiderfier بالكامل في agm في أسرع وقت ممكن. شكرا جزيلا.

@ henryyue2010 هل جربت حزمة npm agm-spiderfeir؟ إنها شوكة من agm-oms التي تعمل على حل مشكلة. إنه يعمل بالنسبة لي مع js-marker-clusterer و ts-interapping-marker-spiderfier.

مغلق لأننا لا ندعم سبايدر.

بالنسبة للأشخاص الذين يرغبون في استخدام كل من المكونات الإضافية spiderfier والمجموعة ، فإن الحل الخاص بي هو فصلهم عن طريق النسخ المتماثل للعلامة وإضافة شرط ngIf استنادًا إلى التكبير الحالي (نظرًا لأنهم لا يعملون على نفس مستوى التكبير / التصغير)

<agm-map (zoomChange)="currentZoom = $event" [zoom]="currentZoom">
    <agm-marker-cluster *ngIf="gpsZoom<=12">
         <agm-marker *ngFor="let marker of markers">
             ...
         </agm-marker>
    </agm-marker-cluster>
    <agm-marker-spider *ngIf="gpsZoom>12">
        <agm-marker *ngFor="let marker of markers">
            ...
        </agm-marker>
    </agm-marker-spider>
</agm-map>

(متعلق بسؤال تجاوز سعة المكدس هذا

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات