Ik ben bezig met het bouwen van een website die gebruik maakt van de Google Maps API.
Ik heb nu het volgende probleem: ik heb in een functie een globale variabele gedefinieerd waarvan de waarde elders in het script opvraagbaar zou moeten zijn.
Het gaat om de volgende code:
Zoals je kunt zien wordt in de functie getLocation(pos) een tweetal variabelen lat en lon (groene deel) aangemaakt.
Het rare is nu dat deze variabele in de voorlaatste <input type="submit"... /> (het blauwe deel van de code) op de juiste manier wordt afgevangen (lees: de juiste waarde krijgt), maar is dat in het rode gedeelte niet het geval. In dat gedeelte wordt er geen waarde aan de variabelen lat en lon toegekend.
Kies ik er voor om deze variabelen buiten de functies vooraf een waarde toe kennen, dan wordt deze waarde aan de rode lat en lon toegekend.
Waar het nu om gaat is dat ik niet begrijp waarom het ene deel javascript de in de functie (groene gedeelte) wel goed overneemt, maar dat dat voor het andere niet geldt.
Ik hoop dat ik een beetje duidelijk ben. Zo niet, dan verneem ik dat wel.
Ik heb nu het volgende probleem: ik heb in een functie een globale variabele gedefinieerd waarvan de waarde elders in het script opvraagbaar zou moeten zijn.
Het gaat om de volgende code:
Code:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<title>Waar ben ik hier?</title>
<script src="http://maps.google.com/maps?file=api&v=2&sensor=true&key=AIzaSyBAD19kit0JkDqjjcqcpSxuhcs1jxH03vI" type="text/javascript"></script>
<script type="text/javascript">
function initialize()
{
// Get the current position with W3C Geolocation API
navigator.geolocation.getCurrentPosition(getLocation);
// Pass the latitude and longitude to Google Maps
function getLocation(pos)
{
var position = new GLatLng(pos.coords.latitude,pos.coords.longitude);
[COLOR="seagreen"] lat = pos.coords.latitude;
lon = pos.coords.longitude;[/COLOR]
document.getElementById("lati").innerHTML = lat; //latitude value is defining in label element where id is lati
document.getElementById("longi").innerHTML = lon;
}
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div style="height:320px;width:280px;margin:auto;">
<p><center><b>Jouw geschatte locatie:</b></p>
[COLOR="red"][B]<script type="text/javascript">
document.write("<img src='http://maps.google.com/maps/api/staticmap?maptype=hybrid&format=jpg&markers=size:medium|"+lat+","+lon+"&size=298x250&zoom=16&sensor=true' />");
</script>[/B][/COLOR]
<center>
<b>Lat: <label id="lati"></label> - Lon: <label id="longi"></label></b><br /><br />
[COLOR="blue"]<input type="submit" onclick="window.location='vervolg.php?lat='+lat+'&lon='+lon;" value="Locatie opslaan"/>[/COLOR]
<p></p>
<input type="submit" onclick="window.location='test.php';" value="Locatie opnieuw opvragen"/>
</center>
</body>
</html>
Zoals je kunt zien wordt in de functie getLocation(pos) een tweetal variabelen lat en lon (groene deel) aangemaakt.
Het rare is nu dat deze variabele in de voorlaatste <input type="submit"... /> (het blauwe deel van de code) op de juiste manier wordt afgevangen (lees: de juiste waarde krijgt), maar is dat in het rode gedeelte niet het geval. In dat gedeelte wordt er geen waarde aan de variabelen lat en lon toegekend.
Kies ik er voor om deze variabelen buiten de functies vooraf een waarde toe kennen, dan wordt deze waarde aan de rode lat en lon toegekend.
Waar het nu om gaat is dat ik niet begrijp waarom het ene deel javascript de in de functie (groene gedeelte) wel goed overneemt, maar dat dat voor het andere niet geldt.
Ik hoop dat ik een beetje duidelijk ben. Zo niet, dan verneem ik dat wel.
