我正在尝试传递一个将数组带到google maps api v3的函数。 这是我的代码:
function buscarCoords(callback){
var result = result;
connection.query('SELECT * FROM monitoreo_actual', function(err, result){
if(err){
console.log(err);
}
callback({result:result});
});
}
function initialize() {
//var location = new google.maps.LatLng(10.191, -68.191);
var mapOptions = {
center: new google.maps.LatLng(10.191, -68.191),
zoom: 8,
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
marker = new google.maps.Marker({
position: buscarCoords(function(resultsObject){
new google.maps.LatLng(ConvertFromGrdToGoogle(resultsObject.result).LtLn);
}),
map: map
});
}
在此代码中,ConvertFromGrdToGoogle是一个函数,正如它所说,将数据转换为谷歌将接受的格式。它起作用并返回这样的坐标:
[ '10.1850, -68.334',
'10.1850, 68.334',
'10.1853, -68.334',
'10.1853, -68.334' ]
现在的问题是,即使地图加载它也不会显示标记。
答案 0 :(得分:0)
您需要在从数据库获取数据时创建标记,此代码应该适合您,您可以看到正在处理http://jsfiddle.net/victorv977/vX3Lc/:
function initialize() {
//var location = new google.maps.LatLng(10.191, -68.191);
var mapOptions = {
center: new google.maps.LatLng(10.191, -68.191),
zoom: 8
};
var map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions);
buscarCoords(function(resultsObject) {
var coordsArray = ConvertFromGrdToGoogle(resultsObject.result);
for (var i = 0; i < coordsArray.length; i++) {
var coords = coordsArray[i].split(", ");
new google.maps.Marker({
position: new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1])),
map: map
});
};
});
}
function buscarCoords(callback) {
var result = result;
connection.query('SELECT * FROM monitoreo_actual', function(err, result){
if(err){
console.log(err);
}
callback({result:result});
});
}