我想提醒其他功能中的curlat变量,以便我可以在谷歌地图中使用它 特征。但我无法让它发挥作用。
var getLocation = {
init: function () {
var curlat = "";
function onSuccess(position) {
curLat = position.coords.latitude;
};
function onError(error) {
alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
}
var map = {
init: function () {
alert(curLat); // alert the cordinate here
//Google maps API initialisation
var element = document.getElementById("map");
//Define the properties of the OSM map to be displayed
var map = new google.maps.Map(element, {
center: new google.maps.LatLng(57, 21),
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true,
mapTypeControl: false,
streetViewControl: false
});
//Define OSM map type pointing at the OpenStreetMap tile server
map.mapTypes.set("OSM", new google.maps.ImageMapType({
getTileUrl: function (coord, zoom) {
return "http://tile.openstreetmap.org/" + zoom + "/" + coord.x + "/" + coord.y + ".png";
},
tileSize: new google.maps.Size(256, 256),
name: "OpenStreetMap",
maxZoom: 18
}));
}
}
答案 0 :(得分:1)
首先,javascript区分大小写,因此curlat
应为curLat
。
其次,将变量置于函数之外:
var curLat = "" ;
var getLocation = { ...
另外,正如其他人正确指出的那样。您应该延迟map
的初始化,直到设置curLat
为止。也许你可以从.map.init
处理程序中调用success
。