gpt4 book ai didi

javascript - 如果地理编码器返回 ZERO_RESULTS, map API v3 获取半径内最近的位置

转载 作者:行者123 更新时间:2023-12-03 04:24:32 25 4
gpt4 key购买 nike

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

这是我当前的代码:

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);
}
});
});

谢谢!

最佳答案

地理编码似乎在您所在的区域不起作用,即使使用附近的其他坐标也是如此。您可以检查状态并使用其他方式找到最近的地点。

if (status == google.maps.GeocoderStatus.OK) {

// Success

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

// Try something else
}

例如,一个解决方案是 Roads API 。使用您的示例坐标,它可以工作。

https://roads.googleapis.com/v1/nearestRoads?points=42.6462539,21.178498299999998&key=your_api_key

您必须在 Google 开发者控制台中启用 API 并提供您自己的 key 。

以上查询返回:

{
"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

geocoder.geocode({
'placeId': 'ChIJwzaWjcieVBMR-DmaAxrqIs8'
}, function (results, status) {

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

您也可以尝试使用 nearby search ,取决于您的目标。附近搜索接受半径参数。

关于javascript - 如果地理编码器返回 ZERO_RESULTS, map API v3 获取半径内最近的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43792675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com