Google Maps Polyline: рассчитать конечную точку от исходной точки - PullRequest
2 голосов
/ 25 февраля 2011

Я хочу нарисовать полилинию с помощью Google Maps.
Я прочитал API и провел некоторое исследование, но у меня все еще остается фундаментальный вопрос.

Информация:

lat: 63.43243500
lon: 10.37045667
angle: 230 degrees (0 = north)

Как сделать ломаную длиной 60 метров, исходящую из исходного широты и долготы с углом 230 градусов?

1 Ответ

5 голосов
/ 25 февраля 2011

Вам необходимо вычислить конечную точку линии в (широта, долгота).Это можно сделать с помощью функции calculateOffset в пространстве имен google.maps.geometry.spherical .У него есть три обязательных параметра: начальная точка широты / долготы, расстояние для перемещения и угол курса.

Вот пример для вашей ситуации:

var startLL = new google.maps.LatLng(63.43243500,10.37045667);
var endLL = new google.maps.geometry.spherical.computeOffset(startLL, 60, 230);

С Пример полилинии , вы можете создать полилинию из этих точек следующим образом:

var coordinates = [startLL, endLL];
var path = new google.maps.Polyline({
  path: coordinates,
  strokeColor: "#FF0000",
  strokeOpacity: 1.0,
  strokeWeight: 2
});

Обновление: Также необходимо убедиться, что вы включили библиотеку geometry, который не включен по умолчанию.Следуя инструкциям здесь , вам нужно изменить запрос на загрузку:

http://maps.google.com/maps/api/js?libraries=geometry&sensor=false
...