Ошибка google.maps.geometry.spherical.computeOffset (a.lat не является функцией) - PullRequest
0 голосов
/ 25 июня 2018

Я хотел значение latlng около определенного расстояния. Я просмотрел документацию по Google Maps API v3.

Посмотрите на мой код:

generateCirclepolygon(){
  for (let location of this.pointsLocation) {
    let LatLng:any = {
      lat: parseFloat(location.lat),
      lng: parseFloat(location.lng)
    };
    let newpoints = [];
    var polypoint = google.maps.geometry.spherical.computeOffset(LatLng , 3000 , 0)
    console.log(polypoint , 'point');
  }
}

После запуска этого кода я получаю ERROR TypeError: a.lat is not a function.

Я отправляю объект LatLng тому, который имеет значения lat и lng, и они являются числами. 3000 - это расстояние в метрах, а 0 - курс (т. Е. 0 градусов по часовой стрелке с севера).

Я хочу значение широты от моей точки до 3000 метров к северу. Моя главная цель - нарисовать круговой многоугольник вокруг точки, повторяя это, чтобы получить массив точек.

1 Ответ

0 голосов
/ 25 июня 2018

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

По документации , метод computeOffset принимает в качестве аргумента google.maps.LatLng :

computeOffset (от, расстояние, курс [, радиус])
Параметры:
от: LatLng
расстояние: число
заголовок: число
радиус (необязательно): число
Возвращаемое значение: LatLng
Возвращает значение LatLng, возникающее в результате перемещения расстояния от начала координат в указанном заголовке (выражается в градусах по часовой стрелке от севера).

Вы предоставляете LatLngLiteral (который не имеет метода .lat, он имеет свойство .lat.

let LatLng:any = {
  lat: parseFloat(location.lat),
  lng: parseFloat(location.lng)
};

должно быть:

let LatLng:any = new google.maps.LatLng(
  parseFloat(location.lat),
  parseFloat(location.lng)
);
...