私は手短にしようと思います。さらに情報が必要な場合は、お伝えします。このコードを使用して、Google マップから情報を取得しています。
<?php
function getData($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0); //Change this to a 1 to return headers
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$url = 'http://maps.google.com/maps/geo?output=xml&q=' . urlencode($startPlace);
$url = 'http://maps.google.com/maps/api/geocode/json?sensor=false&gl=IT&address=' . urlencode($startPlace);
$xml = simplexml_load_string($this->getData($this->url)) or die("Error loading xml data");
$points = $xml->Response->Placemark->Point->coordinates;
$provincia = $xml->Response->Placemark->AddressDetails->Country->AdministrativeArea->SubAdministrativeArea->SubAdministrativeAreaName;
$regione =$xml->Response->Placemark->AddressDetails->Country->AdministrativeArea->AdministrativeAreaName;
echo $regione."<br>";
preg_match_all("/-*[0-9.]*(?=,)/", $points[0], $matches);
$longitude = $matches[0][0];
$latitude = $matches[0][2];
このコードは、イタリアの場所に関する情報を取得するために使用され、3 日前まではすべて正常に機能していましたが、今朝、コードによって $regione が返されるのを確認しました ($xml->Response->Placemark->AddressDetails->Country-> AdministrativeArea->AdministrativeAreaName;) には英語名がありました。見つかった場所がロンバルディアの小さな町 (「ロンバルディア」は行政区域の名前) であるとしましょう。Google マップによって返された行政区域の名前は、「ロンバルディア」ではなく「ロンバルディア」になりました。
このデータはローカル データベースで行政区域の他の場所を検索するために使用され、データベースで使用されている名前は明らかにイタリアの名前であるため、アプリケーションはもう機能しません。
どんなアドバイスにも感謝します