我正在使用Nominatim反向地理编码服务从纬度和经度获取地址。然后,将结果存储在Mysql数据库中。 编码如下:
http://jsfiddle.net/GWL7A/171/
返回的地址是本地语言,例如中文。 并且存储的数据不可读为:
"麒麟山新æ‘, æƒ æ¥åŽ¿, 广东, ä¸åŽäººæ°‘共和国/China"
谢谢。
答案 0 :(得分:1)
object in question尚未在OSM中国际化,所以nominatim只能给你原来的名字(中文)。 如果你真的需要“英文”/拉丁文字的名称,你可能需要自己做转录。我想有人可以在那里找到一些han - pinyin转录库......
btw:确保在将字符串添加到数据库时使用正确的字符集。 OSM正在使用utf-8。
答案 1 :(得分:0)
您可以在API末尾使用&accept-language = es; q = 0.8,de; q = 0.4,en; q = 0.2 :
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=33.6321882&lon=72.8587481&accept-language=es;q=0.8,de;q=0.4,en;q=0.2
请给您以英文返回的结果地址。
上面的URL给出结果:
{“ place_id”:138192283,“许可证”:“数据©OpenStreetMap投稿人, ODbL 1.0。 https://osm.org/copyright“,” osm_type“:” way“,” osm_id“:263218431,” lat“:” 33.6328352161182“,” lon“:” 72.8584455708076“,” place_rank“:26,” category“:”高速公路“ ,“类型”:“住宅”,“重要性”:0.1,“地址类型”:“道路”,“名称”:空,“显示名称”:“ E 18,F-17,Dhok Minda,伊斯兰堡, 巴基斯坦”,“地址”:{“邻居”:“ E 18“,”郊区“:” F-17“,”乡村“:” Dok Minda“,” state“:”伊斯兰堡“,” country“:”巴基斯坦“,” country_code“:” pk“},” boundingbox“:[” 33.6324874“,” 33.6342918“,” 72.8577017“,” 72.8614997“]}
不使用&accept-language = es; q = 0.8,de; q = 0.4,en; q = 0.2 :
JSON响应即将在URDU中出现:
{“ place_id”:138192283,“许可证”:“数据©OpenStreetMap投稿人, ODbL 1.0。 https://osm.org/copyright“,” osm_type“:” way“,” osm_id“:263218431,” lat“:” 33.6328352161182“,” lon“:” 72.8584455708076“,” place_rank“:26,” category“:”高速公路“ ,“类型”:“住宅”,“重要性”:0.1,“地址类型”:“道路”,“名称”:空,“显示名称”:“ E 18,F-17,Dhok Minda,وفاقیدارالحکومتاسلامآباد, 巴基斯坦”,“地址”:{“邻居”:“ E 18“,”郊区“:” F-17“,”村庄“:” Dhok Minda“,”州“:”وفاقیدارالحکومت اسلام آباد“,”国家“:”巴基斯坦“,”国家代码“:” pk“},” boundingbox“:[” 33.6324874“,” 33.6342918“,” 72.8577017“,” 72.8614997“]}
URL:
https://nominatim.openstreetmap.org/reverse?format=jsonv2&lat=33.6321882&lon=72.8587481