Har hittat följande sida som visar koordinater från en adress. Har försökt att göra en funktion av detta skript som enbart returnerar X & Y med en adress som input men det vill sig inte. Någon wiz där ute som kan få till det?
funReturnCoordFromAddress sker inte direkt, det kan ta ett tag innan du få en response:
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Google Maps Example</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var map, geocoder;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(60.472024, 8.468946);
var myOptions = {
zoom: 4,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
function findLocation() {
var searchText = document.getElementById("target").value;
var re = funReturnCoordFromAddress(searchText, successFind);
}
function successFind(location) {
var l = location.geometry.location;
map.setCenter(l);
var marker = new google.maps.Marker({
map: map,
position: l
});
document.getElementById("x").value = l.b;
document.getElementById("y").value = l.c;
}
function funReturnCoordFromAddress(address, fn) {
if (geocoder) {
geocoder.geocode(
{'address': address}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
fn(results[0]);
}else{
alert("Geocode was not successful for the following reason: " + status);
}
});
}
}
</script>
<body onload="initialize();">
<div id="map_canvas" style="width: 320px; height: 480px;"></div>
<input id="target" type="textbox" value="">
<input type="text" id="x" />
<input type="text" id="y" />
<input type="button" value="Encode" onclick="findLocation()">
</body>
hoppas du förstå mer av denna kod, tagit bort mycket och skapat en funktion som man ta med i funReturnCoordFromAddress som man vill köra OM det bli en matchning av kartan.
Anledningen till att jag skull vilja ha en funktion som returnerade koordinaterna är att kunna få kartan mer dynamisk. Jag vill tex att default zoom och position ska vara på ett specifikt land beroende på parametrar från en databas.
var map, geocoder;
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng( [B][I]funReturnCoordFromAddress(<%=Russia%>) [/I][/B]);
var myOptions = {
zoom: 4,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
Att behöva känna till alla koordinater statiskt känns bakvänt.
function initialize() {
geocoder = new google.maps.Geocoder();
var myOptions = {
zoom: 4,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
funReturnCoordFromAddress("Stockholm, Sweden", center); //change Stockholm, Sweden to whatever you want to center by default.
}
Och infoga koden för funktionen center:
function center(location) {
map.setCenter(location.geometry.location);
}
Så länge du inte sparar ner kordinaterna i en databas eller liknande så måste du hitta kordinaterna, så det kan bli lite fördröjning där.