Лучшие практики Google Maps?

Приведенный ниже код определяет фиктивные функции pushX() для имитации функций в вашем примере, затем определяет карту замыканий, где каждое замыкание вызывает соответствующую функцию pushX(), затем ищет соответствующее замыкание по имени и вызывает его, передавая имя в качестве параметра:

def pushA(def name) { println "In pushA() with $name" }
def pushB(def name) { println "In pushB() with $name" }

def funcMap = [
    a: { pushA(it) },
    b: { pushB(it) }
]

def repoName = 'a'

// Invoke the closure mapped to 'repoName', also passing 'repoName' as a parameter.
funcMap[repoName].call(repoName)

Может быть, что-то подобное будет работать для вас. Это все еще пахнет довольно плохо, хотя; если pushA() используется только когда нажимается на репо А, зачем ему имя репо в качестве параметра? Вполне может быть лучший способ организовать все это, включая части, не показанные выше.

5
задан Brian Agnew 15 April 2009 в 14:31
поделиться

3 ответа

Вы можете найти некоторые хорошие идеи в этой статье , в которой сравниваются несколько методов обработки большого количества маркеров.

Менеджер маркеров имеет некоторые ограничения, в зависимости от того, что вы пытаетесь достичь; например, он не позволяет каждому маркеру быть доступным с любого уровня масштабирования. Я создал функцию кластеризации на основе принципов, рассмотренных в этого руководства . Он использует API статических карт в PHP, но принципы кластеризации могут использоваться по вашему усмотрению.

Обновление: Эта утилита кластеризации была только что выпущена: MarkerClusterer

6
ответ дан 13 December 2019 в 22:16
поделиться

Используйте Менеджер маркеров .

3
ответ дан 13 December 2019 в 22:16
поделиться
  • Ограничить маркеры тем, что видно (т. Е. Понять границы окна, и показывать только маркеры, попадающие в окно)
  • Научитесь прислушиваться к различным действиям на карте и реагировать - например, на перемещение точек обзора, масштабирование и т. д. - для обновления маркеров
  • Не показывать маркеры, которые сильно перекрываются - показывать только один маркер (возможно, другой оттенок или цвет для обозначения нескольких точек на этом маркере) и позволяет пользователю увеличивать масштаб, если он хочет видеть отдельные маркеры. Используйте всплывающую подсказку, чтобы показать увеличенное окно, если вы хотите выглядеть модно.
1
ответ дан 13 December 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: