2017-08-15 54 views
1

我使用Nominatim API来获取项目的某些本地街道的边界框和多边形点。Nominatim为相同的请求检索不同的数据

我发现的一个问题是,当我在我的网页浏览器请求的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"] 

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

+1

原因很简单,有很多地方被命名为“Rua de Santa Maria,Madeira”或OSM中有冗余数据。在这种情况下,您必须手动选择一个,但不能依赖程序本身,并且可以应用更多条件来过滤掉所需的一个。 – tibetty

回答

1

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