У меня на карте имеется от 4 до 5 тысяч маркеров. Я хочу, чтобы пользователь разрешил рисовать многоугольник на карте, а затем удалять те маркеры, которые находятся в затененном полигоне. Может ли кто-нибудь посоветовать мне узнать, какие маркеры находятся в затененной области полигона?API Google Map: маркер в отмеченном полигоне
-1
A
ответ
1
Во-первых, вам необходимо использовать geometry library. Append libraries=geometry
в строке запроса URL, который используется для загрузки API Карт:
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry"></script>
Затем вы можете использовать функцию containsLocation, чтобы проверить, если каждый маркер находится внутри многоугольника.
for (var i = 0; i < markers.length; i++) {
if (google.maps.geometry.poly.containsLocation(markers[i].getPosition(), yourPolygon)) {
markers[i].setMap(null);
}
}
Я предполагаю, что здесь у вас есть эти 5k маркеры в массиве с именем markers
. И, удалив эти маркеры, вы просто хотите удалить их из представления. Возможно, вы захотите также отключить запрос ajax и/или удалить их из этого массива маркеров.
Спасибо за быстрый ответ. На самом деле я хотел захватить остальные маркеры, чтобы пользователь удалил маркеры для данного пользователя, так что в следующий раз, когда он загрузит карту, он не сможет увидеть ранее удаленные маркеры. – Ashish
Зарегистрированы ли ваши пользователи, поэтому вы сохраняете эти маркеры на стороне сервера в отношении их профиля? Или использовать хранилище на стороне клиента, такое как cookie или [Window.localStorage] (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage)? – duncan
Я хочу сохранить их на стороне @server. И я должен разрешить пользователю рисовать один за другим многоугольник и удалять маркеры в затененной области многоугольника. Предполагаете ли вы, что вместо удаления их с клиентской стороны отправьте нарисованные координаты многоугольника на сегмент и пометьте их как удаленные для этого пользователя и отправьте остальные маркеры. Не будет ли потребитель слишком тратить трафик клиент-сервер? – Ashish