2016-02-03 2 views
-1

Я объясняю свою проблему в нижнем изображении (извините, что я говорю по-английски не очень хорошо).API Карт Google - найдите подходящее место между двумя точками?

Я использую Google Maps Directions API для расчета направлений между начальной точкой и пунктом назначения, и между ними есть место (вы видите на карте). Как я могу узнать, что место находится на маршруте?

enter image description here

ответ

1

Единственный способ, которым я могу думать (и я использовал этот метод), таким образом:

Когда вы делаете запрос направления, вы получите объект DirectionsResult. Если вы свернете в этот результат, вы сможете получить широты и долготы. Если вы используете API JavaScript, например:

// Every step is about 22 LatLngs per mile; we'll try one LatLng per 3 
// miles or so: 
    var specRoute = directionResult.routes[0].legs[0].steps[i]; 
    for (var j = 0; j < specRoute.path.length; j = j + 171) { 
     var lattotal = latarr.push(specRoute.path[j].lat()); 
     var lngtotal = lngarr.push(specRoute.path[j].lng()); 
    } 

В этом примере я форматирование массивов лат и LNGS быть по сравнению с многим другими латами и LNGS в PHP файл в другом месте. Похоже, вам нужно только проверить один latlng, чтобы он был проще.

То, что я сделал после этого (и что вы могли бы сделать), - это определить, насколько близко к пути ваша точка должна быть, и написать некоторую логику для проверки. Вы можете сделать это с помощью прямых чисел широты и долготы или преобразовать их в другое измерение расстояния (мили, метры и т. Д.).

Существует негативный аспект в том, что вам придется иметь дело со сходящимися линиями долготы, дальше на север вы идете (в северном полушарии). Я использовал регрессионный подход, но, вероятно, лучший способ.

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

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