OpenStreetMap地址转GPS坐标请求无返回,求正确调用格式
解决Nominatim地址转GPS无返回结果的问题
你没拿到返回结果,核心原因是没设置User-Agent请求头——Nominatim的服务器会拦截缺少身份标识的请求,这是API的硬性要求。另外可以优化地址参数来提升匹配成功率,以下是正确的请求格式:
curl -H "User-Agent: 你的应用名称/1.0 (你的联系邮箱)" "https://nominatim.openstreetmap.org/search?q=Via+Bruno+Buozzi+18,+Fucecchio,+Firenze,+Italy&format=json&countrycodes=it"
关键调整说明:
- 必须加
-H "User-Agent: ...":把里面的内容替换成你的应用名称和联系邮箱,服务器靠这个识别请求来源,不会把你当成恶意请求拦截。 - 优化地址与范围:把地址拆成清晰的分段(街道门牌号、城市、大区、国家),再加上
&countrycodes=it限定搜索意大利,缩小范围后匹配精度更高。 - 可选优化:如果只需要最匹配的一条结果,再加个
&limit=1参数,避免返回多条冗余数据。
测试这个请求,应该能拿到包含lat(纬度)和lon(经度)的JSON结果,实现地址转GPS坐标的需求。
内容的提问来源于stack exchange,提问作者eofficecom com
相关产品推荐
相关产品推荐

