Openlayers 使用Nagm的简单反向地理编码

Openlayers 使用Nagm的简单反向地理编码,openlayers,openstreetmap,reverse-geocoding,nominatim,Openlayers,Openstreetmap,Reverse Geocoding,Nominatim,我正在使用OpenLayers+OpenStreetMaps开发一个在线地图应用程序 我需要帮助在javascript(或php)中实现一个简单的反向地理编码函数,该函数接收纬度和经度并返回地址 如果可能的话,我想和提名一起工作。我不想使用Google、Bing或CloudMade或其他专有解决方案 这将返回一个合理的响应,我使用simple_html_dom.php来分解结果,但这是一个丑陋的解决方案 <?php include('simple_html_dom.php'); $ur

我正在使用OpenLayers+OpenStreetMaps开发一个在线地图应用程序

我需要帮助在javascript(或php)中实现一个简单的反向地理编码函数,该函数接收纬度和经度并返回地址

如果可能的话,我想和提名一起工作。我不想使用Google、Bing或CloudMade或其他专有解决方案

这将返回一个合理的响应,我使用simple_html_dom.php来分解结果,但这是一个丑陋的解决方案

<?php

include('simple_html_dom.php');

$url = "http://nominatim.openstreetmap.org/reverse?format=xml&lat=-23.56320001&lon=-46.66140002&zoom=27&addressdetails=1";
$html = file_get_html($url);
foreach ($html->find('road') as $element ) {
    echo $element;
}

?>  

您可以请求JSON格式的namitm,并传递回调名称,这样响应将是:
callback(JSON)

看看文件:

这里有一个简单的使用示例:

我已经运行了4年了。虽然它执行得很好,我也推荐它(即使已经批准为正确答案),但很明显,答案是不完整的

根据查询的实现方式,您可能会遇到服务器问题,甚至可能导致拒绝服务

请注意,如果您按照他的回答使用社区提名服务器,最佳做法是:

  • 缓存具有确定的误差范围和/或
  • 运行(可公开获取,但 大量下载)

  • 我的第一枚“真正的”金徽章。对我来说,10K+视图反映了不可否认的相关性。是的,运行自己的实例是个好主意。。。但它是巨大的。:-)
    $url = "http://nominatim.openstreetmap.org/reverse?email=myemail@myserver.com&format=xml&lat=-23.56320001&lon=-46.66140002&zoom=27&addressdetails=1";