hallo @ll,
ich hänge schon wieder an GoogleMaps fest.
Ich füge über einen geocoder ein Marker auf der Map ein. Z.B München,
nun will ich es schaffen, dass wenn dieser Marker verschoben/gedragged wird die neuen Lat/Lon werte ein ein Formularfeld übergeben werden.
Nachdem die Map geladen ist, wird die Funktion showLocation() aufgerufen, um den Marker an entsprechender Stelle einzuzeichnen.
DasEvent wird zwar gefeuert, aber ich weiss jetzt nicht, wie ich die neuen LatLng Werte auslesen (bzw. wenn nötig davor neusetzen) kann.'*grübel* Wichtiger part hervorgehoben.
Vielen Dank für Hilfe im Voraus..
lg,
hugo
ich hänge schon wieder an GoogleMaps fest.
Ich füge über einen geocoder ein Marker auf der Map ein. Z.B München,
nun will ich es schaffen, dass wenn dieser Marker verschoben/gedragged wird die neuen Lat/Lon werte ein ein Formularfeld übergeben werden.
Nachdem die Map geladen ist, wird die Funktion showLocation() aufgerufen, um den Marker an entsprechender Stelle einzuzeichnen.
DasEvent wird zwar gefeuert, aber ich weiss jetzt nicht, wie ich die neuen LatLng Werte auslesen (bzw. wenn nötig davor neusetzen) kann.'*grübel* Wichtiger part hervorgehoben.
Code:
<script type="text/javascript">
//<![CDATA[
var map;
var geocoder;
// red marker icon
var icon = new GIcon();
icon.image = "http://labs.google.com/ridefinder/images/mm_20_blue.png";
icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
//icon.infoWindowAnchor = new GPoint(5, 1);
var marker=[];
var point=[];
var line=null;
var n=0;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(48.143411,11.580276), 13);
//map.setZoom(13);
map.mapControl = new GMapTypeControl();
//map.addControl(new GMapTypeControl(1));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.setMapType(G_HYBRID_MAP);
geocoder = new GClientGeocoder();
}
}
// addAddressToMap() is called when the geocoder returns an
// answer. It adds a marker to the map with an open info window
// showing the nicely formatted version of the address and the country code.
function addAddressToMap(response) {
map.clearOverlays();
if (!response || response.Status.code != 200) {
alert("Sorry, we were unable to geocode that address");
load();
} else {
place = response.Placemark[0];
point[n] = new GLatLng(place.Point.coordinates[1],
place.Point.coordinates[0]);
GUnload();
map = new GMap2(document.getElementById("map"));
start =new GLatLng(place.Point.coordinates[1],
place.Point.coordinates[0]);
map.setCenter(start, 13);
map.addControl(new GMapTypeControl(1));
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
marker[n] = new GMarker(point[n], {icon:icon, draggable: true});
//marker[n].disableDragging();
map.addOverlay(marker[n]);
GEvent.addListener(marker[0],"dragend",function(){
//alert("dragend 0 bei addadress gefeuert");
//alert(marker[0].coordinates[1];);
point[0] = new GLatLng(marker[0].getPoint);
document.forms[1].lon.value=point[0].coordinates[1];
document.forms[1].lat.value=point[0].coordinates[0];
//draw()
});
//alert(n);
n++;
document.forms[1].lon.value=place.Point.coordinates[1];
document.forms[1].lat.value=place.Point.coordinates[0];
}
}
// showLocation() is called when you click on the Search button
// in the form. It geocodes the address entered into the form
// and adds a marker to the map at that location.
function showLocation() {
marker=[];
point=[];
line=null;
n=0;
var address = document.forms[0].q.value;
geocoder.getLocations(address, addAddressToMap);
}
// findLocation() is used to enter the sample addresses into the form.
function findLocation(address) {
document.forms[0].q.value = address;
showLocation();
}
//]]>
</script>
Vielen Dank für Hilfe im Voraus..
lg,
hugo
Zuletzt bearbeitet: