![Michał M.](https://static.goldenline.pl/user_hidden_basic.jpg)
Michał
M.
Dyrektor Centrum
Sprzedaży e-Zdrowie,
Comarch SA
Temat: Problemy z Google Maps API V3
Zapoznaję się właśnie z API Google Maps (V3) i natknąłem się na taką dziwną sprawę, czy może jest to jakaś awaria u nich, czy też ja mam taki problem - otóż geocoder zwraca mi kod pocztowy dla dowolnej ulicy z Gdańska 80-001, co jest absolutną nieprawdą:Przykłady: Gdańsk, Grunwaldzka 471 lub Gdańsk, Wały Piastowskie 1 - to są kody odpowiednio: 80-471 i 80-255, a nie 80-001. Co ciekawe - standardowe Google Maps też podaje takie kody przy wyszukiwaniu. Czemu tak jest?
Druga sprawa - sposób wyciągnięcia tej informacji (dot. kodu pocztowego) jest dość skomplikowany, bo muszę stosować następujący kod:
for(var i=0; i < wyniki.length; i++){
for(var j=0;j < wyniki[i].address_components.length; j++){
for(var k=0; k < wyniki[i].address_components[j].types.length; k++){
if(wyniki[i].address_components[j].types[k] == "postal_code"){
kod_pocztowy = wyniki[i].address_components[j].long_name;
alert(wyniki[i].address_components[j].long_name);
}
}
}
(znalazłem ten kod na jakimś forum) - nie rozumiem dlaczego alert wyskakuje 3 razy (pierwszy raz jest 80-001 [patrz problem 1], drugi 80 i trzeci też 80.
Problem trzeci: dlaczego jeżeli damy do geokodowania adres budynku, który nie istnieje w ich bazie to geocoder nie wskazuje konkretnego budynku tylko ulicę i nie zwraca w result[0].formatted_address numeru budynku, tylko ulica, kod pocztowy, miasto a co najdziwniejsze gocoder zwraca google.maps.GeocoderStatus.OK, chociaż de facto nie znajduje tego budynku.
Ewidentnie ta mapa jest dość dziwnie aktualizowana, bo budynki te powstały dużo wcześniej niż autostrada A1, a jednak ona jest na mapie a budynku nie ma.Dodatkowo zastanawia mnie, czemu w tablicy address_components nie ma numeru budynku - w ogóle nie da się go sensownie wyciągnąć z wyników geokodowania po adresie - tylko cięcie stringu, a to nie zawsze jest dobra droga.
Będę wdzięczny za pomoc.Michał Mular edytował(a) ten post dnia 12.09.11 o godzinie 02:13