首页 > 解决方案 > 地理编码的波斯参数在波斯系统语言环境中不起作用

问题描述

我有一份德黑兰市一些地区的列表,这些地区以波斯语保存在 CSV 文件中。我的第一个目标是找到这些地区。为了正确加载它们,我应该将系统的语言环境设置为“波斯语”

Sys.setlocale(locale = "persian")

但是,我发现当我尝试将它们用作库中的函数的参数时geocode()ggmap它不起作用!

>geocode(c[1])
Information from URL : http://maps.googleapis.com/maps/api/geocode/json? 
address=%C2%CC%E6%CF%C7%E4%ED%E5&sensor=false
lon lat
1  NA  NA
Warning messages:
1: In readLines(connect, warn = FALSE) :
  cannot open URL 'http://maps.googleapis.com/maps/api/geocode/json? 
address=%C2%CC%E6%CF%C7%E4%ED%E5&sensor=false': HTTP status was '400 Bad 
Request'
2: In geocode(c[1]) :   geocoding failed for "آجودانيه".
  if accompanied by 500 Internal Server Error with using dsk, try google.

c是我的波斯地区向量。

另一方面,当我将系统区域设置更改为英语并在 geocode() 中以波斯语键入区域时,它可以正常工作。

>geocode("آجودانیه")
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=%D8%A2%D8%AC%D9%88%D8%AF%D8%A7%D9%86%DB%8C%D9%87&sensor=false


      lon      lat
1 51.4861 35.80742

我怎样才能找到这些地区 lat-lon?

总而言之,当系统语言环境为波斯语时,我收到 NA,当我将语言环境返回为英语时,它可以正常工作。

标签: rlocalegeocodesetlocale

解决方案


我已经构建了一个全球地理编码 api,我很高兴地注意到它在您的情况下以任何一种方式工作:

https://geocode.xyz/%D8%A2%D8%AC%D9%88%D8%AF%D8%A7%D9%86%D9%8A%D9%87

- Iran x,y z: 35.79860,51.47870  
- Ajwdnyh, IR Iran » Confidence Score: 0.90

http://geocode.xyz/%D8%A2%D8%AC%D9%88%D8%AF%D8%A7%D9%86%DB%8C%D9%87

- 
- آجودانیه, IR Iran » Confidence Score: 0.90

或者,如果您更喜欢 XML 输出:http ://geocode.xyz/%D8%A2%D8%AC%D9%88%D8%AF%D8%A7%D9%86%DB%8C%D9%87?geoit= xml

<geodata>
<latt>35.79860</latt>
<longt>51.47870</longt>
<elevation/>
<standard>
<addresst/>
<postal/>
<prov>IR</prov>
<city>ajwdnyh</city>
<countryname>Iran</countryname>
<confidence>0.90</confidence>
</standard>
<alt></alt>
</geodata>

..和json:http ://geocode.xyz/%D8%A2%D8%AC%D9%88%D8%AF%D8%A7%D9%86%DB%8C%D9%87?geoit=json

{   
  "standard" : { 
    "addresst" : {},
    "city" : "ajwdnyh",
    "prov" : "IR",
    "countryname" : "Iran",
    "postal" : {},
     "confidence" : "0.90"   
  },   
  "longt" : "51.47870",   
  "alt" : {},   
  "elevation" : {},   
  "latt" : "35.79860"
}

PS。您也可以在此处上传 CSV 文件以进行批量地理编码:https ://geocode.xyz/batch


推荐阅读