【问题标题】:google.maps.geometry.spherical.computeOffset error (a.lat is not a function)google.maps.geometry.spherical.computeOffset 错误(a.lat 不是函数)
【发布时间】:2018-06-25 21:37:25
【问题描述】:

我想要一个特定距离附近的 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 值的对象发送LatLng 对象,它们是数字。 3000 是以米为单位的距离,0 是航向(即从北方顺时针方向为 0 度)。

我想要从我的点到向北 3000 米的 latlng 值。我的主要目标是通过重复此操作来围绕一个点绘制一个圆形多边形以获得一个点数组。

【问题讨论】:

  • 运行此代码后,我什么也没得到。因为你的代码不完整。请提供Minimal, Complete, and Verifiable example。那就是说你为什么不创建一个圈子呢?
  • @MrUpsidown 我已经创建了一个圈子。我想在按钮单击时在该圆圈上创建一个多边形。感谢您的评论,但我认为我找到了答案。我需要使用 var myLatLng = new google.maps.LatLng(location.lat, location.lng) 转换 latlng。谢谢。

标签: google-maps-api-3 latitude-longitude


【解决方案1】:

相关问题:

根据the documentationcomputeOffset 方法将google.maps.LatLng 作为参数:

computeOffset(from, distance, heading[, radius])
参数:
来自:LatLng
距离:数字
标题:数字
半径(可选):数字
返回值:LatLng
返回从指定航向中的原点移动一段距离所产生的 La​​tLng(以从北顺时针方向的度数表示)。

您提供了一个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)
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2013-01-04
    • 1970-01-01
    • 2017-05-09
    • 2021-09-14
    相关资源
    最近更新 更多