Google maps кодировка при запросе данных для Geocoder

php Google Maps api geocoder

Получил ключ для использования Google Maps Api, создал небольшой скрипт для проверки

<?php
header("Content-type: text/html; charset=utf-8", true);

$baseurl = "http://maps.google.com/maps/geo?";

$data = array(
"key" => "ABQIAAAAXtfznX55yUp8rVnANEVa_xRWsqZZSgk44r2nsNFPS4lnvFtdkxRuC14fkFYt5s-k39eCsTDv-EBmoA",
"&output" => "xml",
"&q" => urlencode("Россия, москва,улица новый арбат, 1")
);

foreach ($data as $key => $value) {
$query_str .= $key . "=" . $value;
}

$ch = curl_init($baseurl . $query_str);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
curl_close($ch);
print($result);

?>

Приходит такой ответ, с каким то странным name
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Response>
<name> , , , 1</name>
<Status><code>200</code><request>geocode</request></Status>
<Placemark id="p1">
<address>Russia, gorod Moskva, gorod Moskva, </address>
<AddressDetails Accuracy="6" xmlns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
<Country>
<CountryNameCode>RU</CountryNameCode>
<AdministrativeArea>
<AdministrativeAreaName>gorod Moskva</AdministrativeAreaName>
<Locality><LocalityName>gorod Moskva</LocalityName>
<Thoroughfare><ThoroughfareName> </ThoroughfareName></Thoroughfare>
</Locality></AdministrativeArea></Country>
</AddressDetails>
<Point><coordinates>37.599028,55.752678,0</coordinates></Point></Placemark></Response></kml>

В общем огрызок приходит, просто показывает Москву. Если скопировать то, что формируется в скрипте (см. урл ниже) и вставить в браузер, приходит нормальный ответ с полными данными (улица итд)

http://maps.google.com/maps/geo?key=ABQIAAAAXtfznX55yUp8rVnANEVa_xRWsqZZSgk44r2nsNFPS4lnvFtdkxRuC14fkFYt5s-k39eCsTDv-EBmoA&output=xml&q=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F%2C+%D0%BC%D0%BE%D1%81%D0%BA%D0%B2%D0%B0%2C+%D1%83%D0%BB%D0%B8%D1%86%D0%B0+%D0%BD%D0%BE%D0%B2%D1%8B%D0%B9+%D0%B0%D1%80%D0%B1%D0%B0%D1%82%2C+1

В чем может быть проблема? я уже пробовал адрес в utf переводить, тогда вообще ничего не приходит :-(
Ответы:
нашел решение в группах обсуждения
для Curl ответ приходит в кодировке Latin, но если сменить user-agent тогда ответ приходит в utf-8


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.