我有一个Firebase数据库,我可以在其中检索纬度和经度值并将其包装为var坐标。
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);
}
我只需要函数初始化映射来读取变量"坐标"。 我尝试将"坐标"作为全局变量,尝试将getCoords函数包含在其他函数中。他们似乎不读书。有什么有效的方法可以做到这一点吗?
必须调用函数。
修改函数以将经度/经度返回给调用方...
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);
}
通过在初始化映射函数中将纬度和经度作为参数传递,我能够得到我想要的东西,如下所示:
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);
}