Nie wiem jakie dane mają być wyświetlane w tych okienkach.
Poniżej wersja, która będzie działać.
Tak swoją drogą to proponuję przejść do nowego API google Maps - Ty korzystasz z wersji 2. A najnowsza wersja to wersja nr 3.9
<html>
<head>
<script src='http://maps.google.com/maps?file=api&v=2&sensor=false&key=AIzaSyCAwKXBv0ztmmvTirMrOWrfvNyo-kf4ZOA' type='text/javascript'></script>
</head>
<body onload='mapaStart()' onunload='GUnload()'>
<div id="mapka" style="width: 600px; height: 600px; "></div>
<script type='text/javascript'>
<!--
var mapa;
var geo = new GClientGeocoder();
var tresc = 'Info Window lub inne dane HTML'
function mapaStart()
{
if(GBrowserIsCompatible())
{
mapa = new GMap2(document.getElementById("mapka"),{mapTypes: [G_NORMAL_MAP,G_HYBRID_MAP,G_SATELLITE_MAP]});
mapa.setCenter(new GLatLng(49.630, 20.699), 12);
// kontrolki mapy
mapa.addControl(new GLargeMapControl());
var typyMapy = mapa.getMapTypes();
typyMapy[0].getName = function() { return "Mapa";}
typyMapy[1].getName= function() { return "Hybryda";}
typyMapy[2].getName = function() { return "Satelita";}
mapa.addControl(new GMapTypeControl());
mapa.addControl(new GOverviewMapControl());
mapa.addControl(new GScaleControl());
}
}
function geokoduj(adres)
{
var html='';
geo.getLocations(adres, function(wyniki)
{
// sprawdzamy, czy geokodowanie powiodło się
if (wyniki.Status.code == G_GEO_SUCCESS)
{
// jest więcej niż 1 rezultat
if(wyniki.Placemark.length>1)
{
html+='<strong>Znalazłem kilka pasujących adresów:</strong><ul>';
// dla każdego z wyników...
for (var j=0; j<wyniki.Placemark.length; j++)
{
var punkt = wyniki.Placemark[j].Point.coordinates;
// dodajemy linki, umożliwiające dodanie markera
html += '<li><a href="#" onclick="document.getElementById(\'geoAdresy\').style.display=\'none\'; dodajMarker(new GLatLng('+parseFloat(punkt[1])+','+parseFloat(punkt[0])+')); mapa.setCenter(new GLatLng('+parseFloat(punkt[1])+','+parseFloat(punkt[0])+'),15); return false;">'+wyniki.Placemark[j].address+'</a>';
}
html +='</ul>';
// zmieniamy zawartość tagu geoAdresy i wyświetlamy go
document.getElementById('geoAdresy').innerHTML=html;
document.getElementById('geoAdresy').style.display='block';
}
else
{
// ukrywamy obiekt z wieloma wynikami wyszukiwania
document.getElementById('geoAdresy').style.display='none';
document.getElementById('geoAdresy').innerHTML = '';
var punkt = wyniki.Placemark[0].Point.coordinates;
// dodajemy bezpośrednio marker
var marker = new GMarker(new GLatLng(parseFloat(punkt[1]),parseFloat(punkt[0])))
mapa.addOverlay(marker);
GEvent.addListener(marker, 'click', function (latLng) {
mapa.openInfoWindowHtml(latLng, tresc)
})
mapa.setCenter(new GLatLng(parseFloat(punkt[1]),parseFloat(punkt[0])),14);
}
}
else
{
// ukrywamy pole wyboru wielu wyników
document.getElementById('geoAdresy').style.display='none';
document.getElementById('geoAdresy').innerHTML = '';
alert('Nie znalazłem podanego adresu!');
}
});
}
/**
* dod
*/
function dodajMarker(latLng) {
var marker = new GMarker(latLng)
mapa.addOverlay(marker)
GEvent.addListener(marker, 'click', function (latLng) {
mapa.openInfoWindowHtml(latLng, tresc)
})
}
</script>
<input id="input">
<div id="geoAdresy"></div>
<div id="click" onclick ="geokoduj(document.getElementById('input').value)">x</div>
</body>
</html>
Ten post edytował lukasz1985 15.10.2012, 12:06:59