Karte zentrieren
Micha89
- programmiertechnik
Hallo,
ich binde eine GoogleMap Karte wie folgt ein:
<script type="text/javascript">
//<![CDATA[
var map;
function load()
{
if (GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("googlemape"));
geocoder = new GClientGeocoder();
point = new GLatLng(50.203169,10.138674);
//Die Karte wird bei diesem Punkt zentriert
map.setCenter(point, 5);
<?php
while($row = mysql_fetch_object($ergebnis1))
{
?>
showAddress('<?php print $row->strasse; ?>, <?php print $row->plz; ?> <?php print $row->ort; ?>');
<?php
}
?>
}
}
function showAddress(address)
{
if (geocoder)
{
geocoder.getLatLng(
address
,function(point)
{
if (!point)
{
console.log(address + " not found");
}
else
{
map.setCenter(point, 5);
var marker = new GMarker(point);
map.addOverlay(marker);
// marker.openInfoWindowHtml(address);
}
}
);
}
}
window.addEvent('domready', load);
window.addEvent('unload', GUnload);
//]]>
</script>
<div style="width: 235px; height: 327px; overflow: hidden;">
<div id="googlemape" style="width: 235px; height: 327px;"></div>
</div>
das ganze sieht dann so aus:
sollte aber so aussehen:
ich hoffe jemand hat eine Idee, wie ich das hinbekomme.
Hallo Micha89,
du ermittelst aus "lat" und "lon" die größten und kleinsten Werte latmin, latmax, lonmin und lonmax. Mit diesen Werten kannst du die Karte dann entsprechend zentrieren und zoomen.
~~~javascript
zoom = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(latmin,lonmin),new GLatLng(latmax,lonmax))); // sw, ne
map.setCenter(new GLatLng((latmax+latmin)/2,(lonmax+lonmin)/2), zoom);
Gruß, Jürgen
Hallo Jürgen,
hab es jetzt mal so gemacht:
<script type="text/javascript">
//<![CDATA[
var map;
function load()
{
if (GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("googlemape"));
geocoder = new GClientGeocoder();
point = new GLatLng(50.203169,10.138674);
//Die Karte wird bei diesem Punkt zentriert
map.setCenter(point, 5);
zoom = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(latmin,lonmin),new GLatLng(latmax,lonmax))); // sw, ne
map.setCenter(new GLatLng((latmax+latmin)/2,(lonmax+lonmin)/2), zoom);
<?php
while($row = mysql_fetch_object($ergebnis1))
{
?>
showAddress('<?php print $row->strasse; ?>, <?php print $row->plz; ?> <?php print $row->ort; ?>');
<?php
}
?>
}
}
function showAddress(address)
{
if (geocoder)
{
geocoder.getLatLng(
address
,function(point)
{
if (!point)
{
console.log(address + " not found");
}
else
{
map.setCenter(point, 5);
var marker = new GMarker(point);
map.addOverlay(marker);
// marker.openInfoWindowHtml(address);
}
}
);
}
}
window.addEvent('domready', load);
window.addEvent('unload', GUnload);
//]]>
</script>
nun habe ich zwar schön die Karte in der Mitte, aber meine Pointer sind weg :-( was habe ich denn falsch gemcht?
Hallo Micha89,
die Min- und Max-Werte fallen nicht vom Himmel, die musst du schon aus den Koordinaten der Adresspunkte ermitteln.
<script type="text/javascript">
//<![CDATA[var map;
function load()
{
if (GBrowserIsCompatible())
{
map = new GMap2(document.getElementById("googlemape"));
geocoder = new GClientGeocoder();
point = new GLatLng(50.203169,10.138674);//Die Karte wird bei diesem Punkt zentriert
map.setCenter(point, 5);
warum rätst du die Mitte?
zoom = map.getBoundsZoomLevel(new GLatLngBounds(new GLatLng(latmin,lonmin),new GLatLng(latmax,lonmax))); // sw, ne
map.setCenter(new GLatLng((latmax+latmin)/2,(lonmax+lonmin)/2), zoom);
wo wurden die Min- und Max-Werte ermittelt?
<?php
while($row = mysql_fetch_object($ergebnis1))
{
?>
showAddress('<?php print $row->strasse; ?>, <?php print $row->plz; ?> <?php print $row->ort; ?>');
<?php
}
?>
ich blicke jetzt durch den PHP-Javascript-Mischmasch nicht richtig durch, aber ich glaube, hier kann getBounds und setCenter hin.
}
}function showAddress(address)
{
if (geocoder)
{
geocoder.getLatLng(
address
,function(point)
{
if (!point)
{
console.log(address + " not found");
}
else
{
map.setCenter(point, 5);
warum wird um jeden Punkt zentriert?
var marker = new GMarker(point);
map.addOverlay(marker);
// marker.openInfoWindowHtml(address);
hier kennst du die Koordinaten: Point! Lese hier den lat und lon-Wert aus und ermittle die Max- und Min-Werte. (point.lat und point.lng)
}
}
);
}
}
window.addEvent('domready', load);
window.addEvent('unload', GUnload);
//]]>
</script>
>
> nun habe ich zwar schön die Karte in der Mitte, aber meine Pointer sind weg :-( was habe ich denn falsch gemcht?
u.A: keinen Blick in die Fehlerkonsole des Browsers geworfen und meinen Codeschnippsel eingebaut, ohne zu verstehen, was da passiert. Auch solltest du mal einen Blick in die [Doku](http://code.google.com/intl/de/apis/maps/documentation/reference.html) werfen.
Gruß, Jürgen
Hallo,
danke dir, hab es hinbekommen.
Gruß,
Micha