将纬度和经度值转换为地名并显示?

Posted

技术标签:

【中文标题】将纬度和经度值转换为地名并显示?【英文标题】:Convert Latitude and Longitude values to a place name and display it? 【发布时间】:2020-08-04 11:42:54 【问题描述】:

有没有办法将纬度和经度值转换为地名,然后能够在 html 页面上显示该地名?

if ('geolocation' in navigator) 
  let watchID = navigator.geolocation.watchPosition(position => 
    let latitude = position.coords.latitude;
    let longitude = position.coords.longitude;
    console.log(latitude, longitude);
  , error => 
    console.log(error.code);
  , 
    enableHighAccuracy: true
  );
  console.log(watchID);
 else 
  console.log("Not Supported");

代码可以返回经纬度并显示出来,如果可能的话我想获取具体的地方显示在页面上还是记录在表格中?

【问题讨论】:

将一组纬度/经度坐标转换为人类可读位置的实践名称称为反向地理编码。 Google Maps API 可以为您执行此操作,但请注意,免费版本的调用次数有限:developers.google.com/maps/documentation/javascript/examples/… wiki.openstreetmap.org/wiki/Nominatim 【参考方案1】:

基本上,你需要三样东西:

    带有坐标的地点列表。这有点超出了本网站的范围。

    距离函数。为此,您可以使用余弦规则或半正弦规则。

    比 O(n) 更好的最近邻算法。为此,您可以例如从 1 开始划分你的集合,为此谷歌“球体三角形镶嵌”,然后你可以优化你的最近邻算法。

【讨论】:

以上是关于将纬度和经度值转换为地名并显示?的主要内容,如果未能解决你的问题,请参考以下文章

GPS 将 16 位十六进制值转换为经度和纬度

将纬度和经度转换为 3D 空间中的点

如何将纬度和经度转换为莫顿码(z 阶曲线)

如何将 CLLocationCoordinate2D 纬度和经度转换为双倍?

如何使用 cartopy 将显示坐标转换为地理坐标(纬度、经度)?

在 iPhone 上将经度/纬度转换为 x/y