Google Maps地理编码请求报错:无效latlng参数(新手求助)
解决Google Geocoding API的"Invalid 'latlng' parameter"错误
嘿,我来帮你搞定这个问题!你遇到的报错核心原因是传给Geocoding API的latlng参数格式不符合要求。
错误原因详解
Google Geocoding API明确要求latlng参数必须是逗号分隔的字符串格式(比如 "52.5200,13.4050"),但你现在传的是一个JavaScript对象 {lat: clicklat, lng: clicklng}——API无法识别这种对象格式,所以直接返回了INVALID_REQUEST错误。
修改后的代码
把latlng参数改成字符串拼接的形式就能解决问题,这里给你调整好的完整代码:
google.maps.event.addListener(map, 'click', function(event) { placeMarker(event.latLng); var clicklat = parseFloat(event.latLng.lat()); var clicklng = parseFloat(event.latLng.lng()); // 将纬度和经度拼接成API要求的字符串格式 var latlngStr = `${clicklat},${clicklng}`; console.log(latlngStr); axios.get('https://maps.googleapis.com/maps/api/geocode/json',{ params:{ latlng: latlngStr, language: 'de', key:'your_api_key' } }) .then(response => { // 处理返回的逆地理编码结果 console.log(response.data); }) .catch(error => { // 捕获其他可能的请求错误 console.error(error); }); });
额外小提示
- 记得确认你的API Key已经启用了Geocoding API权限,不然可能会触发权限相关的报错
- 可以先打印
latlngStr确认格式是否正确,正常应该是类似"37.7749,-122.4194"这样的字符串
内容的提问来源于stack exchange,提问作者Andrewstevens
相关产品推荐
相关产品推荐

