地理编码的波斯参数在波斯语系统区域设置中不起作用

时间:2018-05-06 09:18:16

标签: r locale geocode setlocale

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

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,当我将语言环境返回到英语时,它可以正常工作。

1 个答案:

答案 0 :(得分:3)

我已经建立了一个全球性的地理编码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