我有一个firebase数据库,我可以在其中检索纬度和经度值并将其包装为var coords。
function getCoords() {
var place_data= firebase.database().ref("/place/name");
place_data.once('value').then(function(snapshot) {
var longitude = snapshot.child("Event_long").val();
var latitude = snapshot.child("Event_lat").val();
var coords = new google.maps.LatLng(latitude, longitude);
alert(coords); //i get (43.6672568, -79.4000838) as alert//
});
}
这是谷歌地图初始化。
function initializeMap() {
var iconBase = {url:'/images/wing.pin.png'};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: coords,
mapTypeId: 'satellite'
});
marker = new google.maps.Marker({
icon: iconBase,
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
position: coords
});
marker.addListener('click', toggleBounce);
}
我只需要函数initializeMap来读取var' coords'。我已经尝试过使用& coords'作为globalvariable,试图在其他函数中包含getCoords函数。他们似乎没有阅读。有效的方法吗?
答案 0 :(得分:0)
必须调用函数。
修改你的函数以将lat / long返回给调用者...
function getCoords() {
var place_data= firebase.database().ref("/place/name");
place_data.once('value').then(function(snapshot) {
var longitude = snapshot.child("Event_long").val();
var latitude = snapshot.child("Event_lat").val();
return new google.maps.LatLng(latitude, longitude); //modified this line
});
}
在这里称呼它......
function initializeMap() {
var iconBase = {url:'/images/wing.pin.png'};
var coords = getCoords(); // called here
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 15,
center: coords,
mapTypeId: 'satellite'
});
marker = new google.maps.Marker({
icon: iconBase,
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
position: coords
});
marker.addListener('click', toggleBounce);
}
答案 1 :(得分:0)
我能够通过将纬度和经度作为参数传递给initializeMap函数得到我想要的东西,如下所示:
function getCoords() {
var plae_data= firebase.database().ref("/place/name");
place_data.once('value').then(function(snapshot) {
var longitude = snapshot.child("Event_long").val();
var latitude = snapshot.child("Event_lat").val();
var coords = new google.maps.LatLng(latitude, longitude);
initializeMap(latitude, longitude);
});
}
//Load Map in Summary Tab//
function initializeMap(latitude,longitude) {
var iconBase = {url:'/images/wing.pin.png'};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 17,
center: new google.maps.LatLng(latitude, longitude),
mapTypeId: 'roadmap'
});
marker = new google.maps.Marker({
icon: iconBase,
map: map,
draggable: true,
animation: google.maps.Animation.DROP,
position: new google.maps.LatLng(latitude, longitude)
});
marker.addListener('click', toggleBounce);
}