node.js - Nominatim 为同一请求检索不同的数据

标签 node.js openstreetmap geocoding nominatim

我正在使用 Nominatim API 获取项目的一些本地街道的边界框和多边形点。

我发现的一个问题是,当我在网络浏览器上请求 URL 时,例如:

Rua de Santa Maria

它检索此边界框:

["32.6474594","32.64779","-16.8998967","-16.8993021"]
["32.6469257","32.6470059","-16.8981943","-16.8974107"]
["32.6478793","32.6478838","-16.9007069","-16.9005973"]
["32.6478902","32.647988","-16.9014895","-16.9007494"]

但是当我使用 Node.js 应用程序的请求使用相同的 URL 时:

var request = require('request');

var url = encodeURI("http://nominatim.openstreetmap.org/search?" + 
    "q=Rua de Santa Maria,Madeira&format=json&polygon=1&addressdetails=1");

request({url: url, json: true}, function (err, res, json){
    console.log(json);
});

它检索:

["32.6470059","32.647067","-16.8984633","-16.8981943"]
["32.6469257","32.6470059","-16.8981943","-16.8974107"]
["32.6480316","32.6480782","-16.9021559","-16.901742"]
["32.6478793","32.6478838","-16.9007069","-16.9005973"]

略有不同。检索到的多边形点也不同。有人知道为什么会发生这种情况吗?

最佳答案

请求很可能不相同。您的浏览器在其请求 header 中发送附加信息,例如首选语言。这些附加信息似乎会影响搜索结果。

关于node.js - Nominatim 为同一请求检索不同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45685720/

相关文章:

node.js - 如何在自动驾驶仪中添加监听或超时功能?

node.js - 无法读取未定义的属性 'code',解码 Firebase ID token 失败

javascript - 如何通过管道将文件传输到 eager.io

python - 绘制 OpenStreetMap 关系不会生成连续线

node.js - Angular 和 Node.JS Express 如何在同一个端口运行?

android - 从 Android 应用程序以编程方式下载/缓存 osmdroid map

python - 如何使用OSM和python查找两个坐标之间的路径和距离?

google-maps - 谷歌地图 - 如何从地址获取建筑物的多边形坐标?

coordinates - 如何在不使用 Google 的地理编码服务的情况下获取地址的纬度和经度

javascript - 刷新浏览器时出现错误 "can' 发送后设置 header ”