Я недавно реализовал нечто очень похожее;Хотя я лично решил удалить все маркеры и полностью заполнить карты, мне действительно нравится ваша общая стратегия, и я думаю, что она также может сделать пользовательский интерфейс более плавным, поскольку исчезает краткий миг между удалением всех маркеров и добавлением новых.Так что да, я бы сказал, что это хорошая стратегия.
Холостой ход - интересное событие;Я обнаружил, что onZoom и т. Д. Не работают особенно хорошо и остановились на TileLoaded (или аналогичном).Хорошо работает для меня, но выглядит как хак.
По поводу вашего вопроса с хэш-таблицей - есть два возможных места, где вы можете хранить такую карту.
a) Сервер Если вы можете отслеживатьна той странице, на которую вы отправляете координаты, вы можете хранить точечный Hashtable маркеров в своем состоянии сеанса.Это может помешать вам отправлять ненужные координаты клиенту, но более подвержено ошибкам imo
b) Клиент Это, вероятно, то, что вы хотите пойти в любом случае.Здесь нормальный ассоциативный массив Javascript должен быть вашим другом.
var x = {"some key": "some value"};
document.write ("some key" in x); // True
document.write ("some other key" in x); // False
Если вы не найдете хороший способ отображения lat и lng в одно хешируемое значение, вам может потребоваться сохранить массив массивов:
var markers = {lat1: {lng11: 1, lng12: 1, lng13: 1}, lat2: ...}
и затем отметьте как
...
if (checklat in markers)
if (checklng in markers[checklat])
return True
return False
Я просто вижу, что это старый вопрос.Ну, слишком поздно, может быть, это все еще помогает.