-
Q:
Locatie aanwijzen mbv google maps
Ik heb een scriptje gemaakt waarmee gebruikers van mijn CMS hun locatie aan kunnen wijzen op een google map. Als er nog geen locatie bekend is klikt de gebruiker op de kaart waarna een marker verschijnt. Dit werkt allemaal prima. Het probleem ontstaat wanneer men de marker naar de precieze plek wil slepen. Na opslaan worden namelijk alleen de gegevens verstuurd van de eerste locatie van de marker en niet de locatie waar de marker naartoe gesleept is.
Ik gebruik hiervoor het volgende script:
[code:1:277fdcd8cb]
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
var point = new GLatLng(52.469397, 5.509644);
var marker;
map.addControl(new GMapTypeControl());
map.addControl(new GLargeMapControl()); // Groot zoom/beweeg control
map.addControl(new GMapTypeControl()); // Control voor wisselen van kaarttype
map.setCenter(point, 7);
map.enableScrollWheelZoom();GEvent.addListener(map, ‘click’, function(overlay, point) {
if (point) {
map.clearOverlays();
map.panTo(point);
marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);
document.getElementById("long").value=point.y;
document.getElementById("lat").value=point.x;
document.getElementById("submit").type=’submit’;
}
});
GEvent.addListener(marker, ‘dragstart’, function(overlay, point) {
if (point) {
map.clearOverlays();
map.panTo(point);
marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);
document.getElementById("long").value=point.y;
document.getElementById("lat").value=point.x;
document.getElementById("submit").type=’submit’;
}
});
GEvent.addListener(marker, "dragend", function(marker) {
point = marker.getLatLng();
document.getElementById("long").value=point.y;
document.getElementById("lat").value=point.x;
document.getElementById("submit").type=’submit’;
});
}
}
</script> [/code:1:277fdcd8cb]
Ik hoop dat jullie zien wat ik verkeerd doe..Ik heb de code ooit ergens opgeduikeld en zelf wat wijzigingen aangebracht.. Geen idee waarom de functie van de dragend naamloos is.. Ik ben absoluut geen javascript expert vandaar dat ik mijn vraag hierover hier plaats.
Het enige wat ik weet is dat na een klik op de kaart de juiste coordinaten worden opgeslagen. Als de marker daarna versleept wordt worden alleen de coordinaten van de eerste klik opgeslagen.
”iJoost”Maar ken je de functie alert() al wel?
Want dat (en de Error console uit Firefox) is in feite alles wat je nodig hebt om uit te vinden wat er precies mis gaat. En bovendien nog wat JavaScript te leren ook…
:sealed:
Zegt me allemaal niks.. De reden waardoor ik weet wat er mis gaat is doordat ik kan zien welke coördinaten naar de database worden geschreven en dat zijn alleen de coordinaten van ‘click’heb je al de api documentatie van google gelezen? Meestal staan alle functies uitgelegd, en met voorbeelden erbij.http://code.google.com/apis/maps/documentation/examples/index.html
Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.