2013-05-19 4 views
-1

Я ссылаюсь на некоторые местоположения на Картах Google (загружая данные JSON с использованием AJAX), а затем я храню эти точки в массиве, а затем связываю некоторые маркеры друг с другом и сохраняю полилинии в массиве как Что ж.Получить LatLng с учетом точки

Теперь я пытаюсь отфильтровать некоторые маркеры (учитывая их имя), я извлекаю соответствующий маркер (или точку) из предыдущего списка, и я выполняю цикл над всеми полилиниями, чтобы получить те, которые имеют последнюю точку как начало или конец. Проблема в том, что я получаю от полилинии только координаты начала и конца, используя эту функцию polyline.getPath().getAt(indiceLoop);, и мне нужно сравнить это с координатой точки.

Итак, есть ли способ получить координаты LatLng с учетом уже созданной точки?

Большое спасибо!

+1

Вы имеете в виду получить координаты маркеров данных ссылку на него ([google.maps.Marker.getPosition] (https://developers.google.com/maps/documentation/JavaScript/ссылка # Marker))? Как сохраняется «уже созданная точка»? – geocodezip

+0

точки сохраняются в массиве, пока я создаю маркеры и вставляю их в карту (в каждом цикле) я попробую ваше предложение и вернусь через минуту :) – Anas

+0

фактически функция: polyline.getPath() .getAt (indiceLoop); возвращается что-то вроде этого (5.60518980026245, -0.16678600013256073) тогда как marker.getPosition() возвращает объект !! Как я могу проверить, соответствует ли точка началу или концу полилинии? – Anas

ответ

1

Предположим, что google.maps.Marker («маркер») и google.maps.Polyline («полилиния»). Не испытано.

if (google.maps.geometry.spherical.computeDistanceBetween(marker.getPosition(),polyline.getPath().getAt(0)) < 0.1) { 
    // marker is at start of polyline 
    alert("marker at start"); 
} else if (google.maps.geometry.spherical.computeDistanceBetween(marker.getPosition(),polyline.getPath().getAt(polyline.getPath().getLength()-1)) < 0.1) { 
    // marker is at end of polyline 
    alert("marker at end"); 
} 
+0

Я проголосовал за ваш ответ и принял его, потому что изначально мне нужно было получить координаты точки, и вы предложили функцию getPosition() – Anas

0

Я на самом деле в конечном итоге с помощью marker.getPosition(). Equals (line.getpath(). GetAt()) и то же самое для конца строки, и она работала отлично !!

Спасибо за ваше предложение :)

Смежные вопросы