Google maps geocoder vraag.
Gfive op 23 januari 2012 #
Hallo,
Onderstaande code werkt.
Voer een adres is en na het klikken krijg je mooi de longitude en latitude te zien.
Mijn probleem:
De longitude en latitude moeten uiteindelijk toegevoegd worden aan mijn database.
Er zit nog een formulier aan vast en alle data zou dan verzonden moeten worden.
Alleen dit werkt niet.
Als ik "return false" weg haal uit de form regel kan ik wel submitten alleen krijg ik dan niet de longitude en latitude.
Wat moet ik veranderen zodat als ik op submit klik de longitude en latitude mooi geladen worden en dat daarna het formulier verzonden wordt.
Groeten,
Martijn
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Longitude en Latitude / van Adres</title></p><p> <script src="http://maps.google.com/maps?file=api&v=2&key=JE EIGEN KEY" type="text/javascript" charset="utf-8"></p><p> </script>
<script type="text/javascript">
//<![CDATA[</p><p> function load() {
if (GBrowserIsCompatible()) {
geocoder = new GClientGeocoder();
}
}</p><p> function showAddress(geolocation) {
if (geocoder) {
geocoder.getLatLng(
geolocation,
function(point) {
if (!point) {
alert(geolocation + " not found");
} else {
document.geoform.longitude.value = point.x;
document.geoform.latitude.value = point.y;
}
}
);
}
} </p><p> //]]>
</script>
</head>
<body onload="load()"></p><p><form action="#" name="geoform" id="geoform" onsubmit="showAddress(this.geolocation.value); return false">
<input name="geolocation" value="" size="50" /></p><p>Decimal Longitude:
<input name="longitude" type="text" id="longitude" value="" /></p><p>Decimal Latitude:
<input name="latitude" type="text" id="latitude" value="" /></p><p><input type="submit" value="Longitude/latitude codes" />
</form></p><p></body></p><p></html>
PS: Na submitten zag ik dat er vreemde < p > codes verschijnen. Deze horen er niet thuis.
(opmaak is simpel gehouden voor test doeleinden en heeft geen < p > .
W0utR op 24 januari 2012 #
Met .submit() kan je een form verzenden via javascript (http://www.javascript-coder.com/javascript-form/javascript-form-submit.phtml)
Het ophalen van die longitude en latitude duurt wss een paar seconden, waardoor je dus even moet wachten.
Dus vanaf je die hebt, kan je gewoon de .submit() gebruiken.
Jakko Westerbeke op 24 januari 2012 #
Gfive - op 23 januari 2012longitude en latitude
Lengtegraad en breedtegraad
Gfive op 24 januari 2012 #
@W0utR
In dit geval zou er dan 2 keer geklikt moeten worden. 1 keer voor ophalen longitude en latitude en 1 keer met .submit()? Aangezien een rechtstreekse .submit() niet werkt. (net even getest)
Maar nu het volgende.
De adres gegevens heb ik al, deze kan ik vevolgens in een hidden field stoppen. (dit kan ik met het CMS doen) vervolgens longitude en latitude oproepen zodra de pagina laad. Maar hoe doe ik dit.
Ik heb immers al een body onload.
@Jakko Westerbeke
Ik weet het
W0utR op 24 januari 2012 #
Nee nee, de submit gebeurd via javascript:
if (!point) {
alert(geolocation + " not found");
} else {
document.geoform.longitude.value = point.x;
document.geoform.latitude.value = point.y;
// submit form
}
Je moet dus wachten tot je de locatie hebt alvorens je alles kan verzenden
Gfive op 24 januari 2012 #
@W0utR
Opgelost.
<body onload="load();showAddress(document.getElementById('geolocation').value);">
Dan kan ik de onSubmit uit de form tag halen en daarna gewoon op submit klikken
Advertentie
Je kunt alleen reageren met een gratis OMT account.
Log in of registreer.
Inloggen
Over dit topic
Gestart op 23 januari 2012 door Gfive
Laatste reactie door Gfive