volga-volga / react-native-yamap

React Native Yandex Maps | Яндекс Карты | Yandex.MapKit implementation for react native | YandexMaps
144 stars 80 forks source link

Наложение маркеров с одинаковыми координатами #238

Open E-Viskhan opened 1 year ago

E-Viskhan commented 1 year ago

У меня есть 4 маркера с полностью одинаковыми координатами, при отрисовке они накладываются друга на друга, так что видным остается только самый последний отрисованный маркер:

screenshot_from_app

На веб версии мы используем библиотеку leaflet, в которой из под коробки все происходит следующим образом для точно такой же ситуации:

  1. Маркеры при любом приближении остаются в виде кластера:
screenshot_from_web_1
  1. но при клике на кластер мы видим следующую картину:
screenshot_from_web_2

Чтобы вы могли мне порекомендовать сделать, чтобы все маркеры были доступны для клика и не были наложены друга на друга?

Буду благодарен за любые мысли

@ownikss

E-Viskhan commented 1 year ago

@ownikss если у вас есть какие-то мысли, как я могу это сделать, то это бы мне очень помогло, даже примерно?

E-Viskhan commented 1 year ago

@ch3rn1k привет, может быть у тебя есть мысли? прошло много времени, удается сделать только через жуткие костыли со скрытыми маркерами, чтобы количество маркеров не нарушалось в маркере кластера из библиотеки, и через отрисовку кастомного маркера кластера и ручной обработкой клика по нему, короче дичь сумасшедшая, дайте подсказку, если она существует)

ch3rn1k commented 1 year ago

@ch3rn1k привет, может быть у тебя есть мысли? прошло много времени, удается сделать только через жуткие костыли со скрытыми маркерами, чтобы количество маркеров не нарушалось в маркере кластера из библиотеки, и через отрисовку кастомного маркера кластера и ручной обработкой клика по нему, короче дичь сумасшедшая, дайте подсказку, если она существует)

Привет, используйте компонент ClusteredYamap (если еще не используете). Как решить "проблему" кластеров? Да в целом никак, тут уже UX страдать начнет если делать как в вебе. Я лично реализовывал так - при нажатии на кластер на разных уровнях разное поведение, и на минимальном зуме, при клике, просто открывал окно поверх карты с айтемами внутри.

E-Viskhan commented 1 year ago

@ch3rn1k привет, может быть у тебя есть мысли? прошло много времени, удается сделать только через жуткие костыли со скрытыми маркерами, чтобы количество маркеров не нарушалось в маркере кластера из библиотеки, и через отрисовку кастомного маркера кластера и ручной обработкой клика по нему, короче дичь сумасшедшая, дайте подсказку, если она существует)

Привет, используйте компонент ClusteredYamap (если еще не используете). Как решить "проблему" кластеров? Да в целом никак, тут уже UX страдать начнет если делать как в вебе. Я лично реализовывал так - при нажатии на кластер на разных уровнях разное поведение, и на минимальном зуме, при клике, просто открывал окно поверх карты с айтемами внутри.

Спасибо за то, что вы нашли время на ответ. До конца надеялся, что в библиотеке такой момент будет продуман(идентичные lat и lon у маркеров), и я просто не знаю нужный API), потратил на данную задачу около 10 дней.

ClusteredYaMap уже используется, но он к сожалению не объединяет маркеры с одинаковыми координатами в кластер, а просто рисует их друг над другом.

В любом случае, благодарю за ответ!