персидские аргументы геокода не работают в локали персидской системы - PullRequest
0 голосов
/ 06 мая 2018

У меня есть список некоторых районов города Тегеран, которые сохранены на персидском языке в файле 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

как мне найти эти районы в латоне?

В качестве резюме, если языковой стандарт системы указан на персидском, я получаю NA, а когда возвращаю языковой стандарт на английский, он работает правильно.

1 Ответ

0 голосов
/ 06 мая 2018

Я построил 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

...