Hallo allerseits,
die eingebaute GoogleApi läuft eigentlich ganz gut. Doch manchmal werden keine Adressen gefunden. Gebe ich den String genauso aber auf der maps.google.de ein, dann wird die Adrese gefunden.
Die Funktion
geocoder.getLatLng bekommt von mir einen Adress-String (z.B. "Zum Fischacker 5, 58898 Eslohe") und sollte die Koordinaten (var point) zurück geben. Dies klappt in einigen Fällen aber nicht.
Nun fehlt mir der Ansatz. Sucht Google normalerweise die nächstmögliche Koordinate? Wenn ja, wie starte ich diesen Aufruf? Oder muss ich den String bearbeiten?
Aber wie gesagt, oft klappts auch.
Hier mal die wichtigste Funktion aus meinem js:
Code:
function showAddress(inf) {
var adr=inf['str']+', '+inf['plz']+' '+inf['ort'];
//var adr=inf['adress_encoded'];
var adr_show=inf['str']+', '+inf['plz']+' '+inf['ort'];
if(inf['logo']!="leer"){
var imglogo=new Image;
/*imglogo.src="images/"+inf['logo'];*/
imglogo.src=inf['logo'];
}
var info="";
info+='<div id="inWin" class="infoWindow" style="width: '+inf['infowin_x']+'px; height: 100px">';
info+="<div class='left' style='white-space:nowrap; width: 100px'><b>"+inf['company']+"</b><br />";
if(inf['denotation']!="leer"){info+=inf['denotation']+"<br />";}
info+=inf['str']+"<br />";
info+=inf['plz']+" "+inf['ort']+"<br />";
if(inf['tel']!="leer"){info+="Tel: "+inf['tel']+"<br />";}
if(inf['fax']!="leer"){info+="Fax: "+inf['fax']+"<br />";}
if(inf['email']!="leer"){
m=inf['email'];
mail="mailto:"+inf['email'];
info+='<a href="'+mail+'">'+m+'</a><br />';
}
if(inf['website']!="leer"){
u=inf['website'];
url="http://"+u;
info+='<a href="'+url+'" target="_blank">'+u+'</a>';
}
info+="</div>";
if(inf['logo']!="leer"){
i=inf['logo'];
var img='<div class="right"><div style="height: 20px; width="'+inf['logo_x']+'px"> </div><img name="logobild" src='+imglogo.src+' width="'+inf['logo_x']+'px" height="'+inf['logo_y']+'px" onerror="this.style.display=\'none\'" /></div>';
info+=img;
}
info+='</div>';
var anfahrt="<div>"+googleRoute(adr);+"</div>";
var infoTabs = [ //tab width = 90 px ä : ä : ä : E4 : 228 : ä(utf-8)
new GInfoWindowTab(" Händler ", info),
new GInfoWindowTab(" Anfahrt ", anfahrt)
];
geocoder.getLatLng(
adr,
function(point) {
if (!point) {
var not=adr_show+" in GoogleMaps leider nicht gefunden";
//document.getElementById("mapD").style.display="none";
alert(not);
} else {
map.setCenter(point, 12, G_HYBRID_MAP);
var marker = new GMarker(point, icon);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowTabsHtml(infoTabs);
});
map.addOverlay(marker);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
marker.openInfoWindowTabsHtml(infoTabs);
if(inf['logo']!="leer"){
var lang=inWinSize(imglogo, inf['lang']);
document.getElementById('inWin').style.width=lang+"px";
}
}
}
);
}