将 LatLng 变量从另一个函数传递给 google 映射初始化
passing LatLng variable from another function to google maps initialize
我有一个 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//
});
}
这是google地图初始化。
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' 作为全局变量,试图将 getCoords 函数包含在其他函数中。他们只是似乎不读书。有什么有效的方法吗?
必须调用函数。
将您的函数修改为 return 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);
}
我能够通过将纬度和经度作为参数传递给 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);
}
我有一个 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//
});
}
这是google地图初始化。
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' 作为全局变量,试图将 getCoords 函数包含在其他函数中。他们只是似乎不读书。有什么有效的方法吗?
必须调用函数。
将您的函数修改为 return 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);
}
我能够通过将纬度和经度作为参数传递给 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);
}