1

我正在使用反向地理编码 mapbox webservice 从纬度/经度坐标获取地址。

使用 ajax'callback 函数通过 mapbox( http://api.tiles.mapbox.com/v3/mykey/geocode/{mylong},{mylat}.json) 获取 json 数据可以正常工作。

对 openstreetmaps nominatim ( http://nominatim.openstreetmap.org/reverse?format=json&lat={mylat}&lon={mylong}) 使用相同的方法,虽然我可以访问此 URL,但使用相同的方法 (ajax+callback+json) 总是返回一个 JavaScript 错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'localhost' 不允许访问。

为什么 json 数据在 mapbox 中可以很好地传递,但在 nominatim 中却没有?我相信它不能是 Apache 标头中的 Access-Control-Allow-Origin 参数。如果 mapbox 工作正常,则 nominatim 也应该工作。

为什么我要打扰 nominatim 这是因为它有更多的参考坐标。

我将不胜感激任何帮助。

提前致谢,

米格尔

4

2 回答 2

1

如果 mapbox 工作正常,则 nominatim 也应该工作。

我不确定这个假设来自哪里:Mapbox 使用与 nominatim 完全不同的地理编码器(carmen),以及不同的服务器、CDN 和其他一切。您看到的是 Nominatim 不支持 CORS,而 Mapbox 支持。如果要为此使用 Nominatim,则需要使用 JSONP。

于 2014-06-14T15:02:01.847 回答
0

对于地图框:

MapBox 的响应标头是 Access-Control-Allow-Origin: *

而 nominatim.openstreetmap.org 可能不会这样做,所以你会看到“Origin 'localhost' is not allowed access”

于 2015-02-09T03:36:51.157 回答