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

标签 r locale geocode setlocale

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

Sys.setlocale(locale = "波斯语")

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

>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

如何找到这些地区的经纬度?

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

最佳答案

我已经构建了一个全局地理编码 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

关于r - 地理编码的波斯语参数在波斯语系统区域设置中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50198125/

相关文章:

javascript - 在 JavaScript 中反转 Date.toLocaleString 转换的 native 方法?

api - 从 5 位邮政编码中获取 9 位邮政编码,编程,api

php - 地理编码半径在行中产生多个值

google-maps-api-3 - JSON 响应中的 Google Geocode API "REQUEST_DENIED"- 反向地理编码操作

python - 文本挖掘和 NLP : from R to Python

r - 如何在逗号分隔值数量不等的多列上进行 pivot_longer

r - 隐藏包中未记录的函数 - 使用 .function_name?

r - ggplot2 plus 运算符是如何定义的?

bash -/bin/bash printf 不适用于 C 以外的其他 LANG

regex - 语言环境何时会影响 R 的正则表达式?