gpt4 book ai didi

openlayers - 使用 Nominatim 进行简单的反向地理编码

转载 作者:行者123 更新时间:2023-12-04 17:54:20 25 4
gpt4 key购买 nike

我正在使用 OpenLayers + OpenStreetMaps 开发在线 map 应用程序。

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

如果可能,我想与 Nominatim 合作。我不想使用 Google、Bing 或 CloudMade 或其他专有解决方案。

link返回一个合理的响应,我使用 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;
}

?>

任何更优雅的解决方案的建议?

注意:截至 2015 年 10 月,请求必须包含 valid email以便“为您的应用程序提供足够的身份证明”。

如果没有电子邮件,返回码将不是 xml 或 json 格式,而是 error 509 "Bandwidth Exceeded" ,尝试使用 html_dom 库进行抓取。
$url = "http://nominatim.openstreetmap.org/reverse?email=myemail@myserver.com&format=xml&lat=-23.56320001&lon=-46.66140002&zoom=27&addressdetails=1";

最佳答案

您可以以 JSON 格式请求 nominatim,并传递一个回调名称,这样响应将是:callback(json) .

查看文档:http://wiki.openstreetmap.org/wiki/Nominatim

这是一个最小的使用示例:http://jsfiddle.net/GWL7A/14/

关于openlayers - 使用 Nominatim 进行简单的反向地理编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com