首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果地理编码器返回v3,则映射API v3在半径内最接近位置。

如果地理编码器返回v3,则映射API v3在半径内最接近位置。
EN

Stack Overflow用户
提问于 2017-05-04 20:57:49
回答 1查看 426关注 0票数 0

我正在尝试使用Geolocation APIGoogle Maps Geocoder获取格式化的用户地址。一切都很好,但并不是每个地方都有。例如,纬度为42.6462539 21.17849829999999842.6462539 21.178498299999998返回ZERO_RESULTS.如果你查看地图,这些坐标周围的区域有足够的数据,所以是否有可能得到一个大致的地址,比如在给定半径内的最近的道路或地方,例如250米。

以下是我的当前代码:

代码语言:javascript
运行
复制
if (!navigator.geolocation) alert('Geolocation is not supported by this browser.');

navigator.geolocation.getCurrentPosition(function(position) {
    var latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

    geocoder.geocode({latLng: latlng}, function(results, status) {
        if (status === 'OK') {
            console.log('Geocoding successful.', results);
        } else {
            console.log('Geocoding failed...', status);
        }
    });
});

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-04 23:31:33

地理编码似乎不工作在您的地区,即使与其他附近的坐标。您可以检查状态并使用另一种方法查找最近的位置。

代码语言:javascript
运行
复制
if (status == google.maps.GeocoderStatus.OK) {

    // Success

} else if (status == google.maps.GeocoderStatus.ZERO_RESULTS) {

    // Try something else
}

例如,一个解决方案是道路API。用你的例子坐标,它是有效的。

代码语言:javascript
运行
复制
https://roads.googleapis.com/v1/nearestRoads?points=42.6462539,21.178498299999998&key=your_api_key

您必须在控制台中启用API,并提供自己的密钥。

上面的查询返回:

代码语言:javascript
运行
复制
{
  "snappedPoints": [
    {
      "location": {
        "latitude": 42.646445887532415,
        "longitude": 21.178424485523163
      },
      "originalIndex": 0,
      "placeId": "ChIJwzaWjcieVBMR-DmaAxrqIs8"
    },
    {
      "location": {
        "latitude": 42.646445887532415,
        "longitude": 21.178424485523163
      },
      "originalIndex": 0,
      "placeId": "ChIJwzaWjcieVBMR-TmaAxrqIs8"
    }
  ]
}

然后使用返回的placeId

代码语言:javascript
运行
复制
geocoder.geocode({
  'placeId': 'ChIJwzaWjcieVBMR-DmaAxrqIs8'
  }, function (results, status) {

    // Returns "Muharrem Fejza, Prishtinë"
});

您也可以尝试使用附近搜索,这取决于您的目标是什么。附近的搜索接受一个radius参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43792675

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档