Autor Zpráva
vecerapl
Profil
Ahoj,
nevím proč, ale google API nefunguje asi jak má. Poradí mě někdo, kde dělám chybu?

Do $misto přes cyklování posílám¨zhruba 200 adres a potřebuji pro mě vytvořit GPS souřadnici. Bohužel u většiny adres to GPS vůbec nepřiřadí. Když ale adresu vložím do google maps, tak v pohodě to místo najde, ale GPS to přes jejich API nepřidelí. Nevíte proč?

Klatovská 18, Plzeň (0|0)
Hotel Palace Club, Okružní 16, Špindlerův Mlýn 54351 (0|0)
Malletova 1141, Praha 9 (50.1011002|14.4838663)
Velká Pláň 141, Pec pod Sněžkou 542 21 (0|0)
atd.

Můj script pro generování GPS:
$misto = urlencode(utf8_encode($misto));
$gps_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$misto."&sensor=false";

  $ch = curl_init();
  $timeout = 15; // set to zero for no timeout
  curl_setopt($ch, CURLOPT_URL, $gps_url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $gps_curl = curl_exec($ch);
  curl_close($ch);

$xml_gps = simplexml_load_string($gps_curl);
$gps_x = $xml_gps->result->geometry->location->lat;
$gps_y = $xml_gps->result->geometry->location->lng;
__construct
Profil
vecerapl:
Vyhoď to zbytočné utf8_encode(), zmeň simplexml_load_string() na simplexml_load_file() a bude to fungovať.
vecerapl
Profil
Bez toho to právě nebude fungovat vůbec :) Jinak otestoval jsem to a nevygenerovalo to ani jedno GPS.

Abych to upřesnil, XML zpracovávám přes CURL. Script jsem doplnil.
__construct
Profil
vecerapl:
V akom kódovaní máš uložený ten skript? Mne toto funguje:
<pre>
<?php
$misto = "Lipno 5, Líšťany";
$misto = urlencode($misto);
$gps_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$misto."&sensor=false";
 
$xml_gps = simplexml_load_file($gps_url);
$gps_x = $xml_gps->result->geometry->location->lat;
$gps_y = $xml_gps->result->geometry->location->lng;

echo $gps_x.PHP_EOL;
echo $gps_y.PHP_EOL;
Edit: Zbytočne tam pcháš cURL. Nefunguje Ti to preto, že simplexml_load_string() strkáš ako parameter $gps_url namiesto $gps_curl.
vecerapl
Profil
Beru zpět. Script funguje a vše jsem udělal jak jsi mě napsal.

ALE ... né všechny adresy to bere. Například nevezme to:

Vodičkova 36, Praha 1
Dlouhá 24, Praha 1
Na Florenci 19, Praha 1
Nitrianska 24, Piešťany

Jinak nyní to již ukazuje více GPS.

PS: Aby to nebylo cyklováním, protože když si to město zadam samotné, tak to GPS vygeneruje. Když to použiji do cyklování s 200 adresami, tak to některé GPS prostě nevygeneruje.
__construct
Profil
vecerapl:
Ten tvůj PHP script mě nefunguje vůbec
Niečo robíš zle — ten skript funguje bez akých koľvek dodatočných nastavení:
<pre>
<?php
$misto = "Hotel Palace Club, Okružní 16, Špindlerův Mlýn 54351";
$misto = urlencode($misto);
$gps_url = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$misto."&sensor=false";
 
$xml_gps = simplexml_load_file($gps_url);
$gps_x = $xml_gps->result->geometry->location->lat;
$gps_y = $xml_gps->result->geometry->location->lng;

echo $gps_x.PHP_EOL;
echo $gps_y.PHP_EOL;
echo "<hr>";
var_export($xml_gps);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0