【发布时间】:2014-03-05 07:14:28
【问题描述】:
这是我的代码...
首先我检查数据库...
function buscarCoords(callback){
var result = result;
connection.query('SELECT * FROM monitoreo_actual', function(err, result){
if(err){
console.log(err);
}
callback({result:result});
});
}
然后我有一个回调函数,它基本上调用另一个函数,它将数据转换为谷歌地图 latLng 格式(我知道的函数太多,我稍后会修复)
database.buscarCoords(function(resultsObject){
convert.ConvertFromGrdToGoogle(resultsObject.result);
});
在转换函数中,我调用另一个函数,将数组保存到 txt 文件中
function ConvertFromGrdToGoogle(grd){
........
files.saveMonActual(JSON.stringify(arrCoords));
}
这是保存到文件的函数
var saveMonActual = function(grd){
fs.writeFile("grd2google.txt", grd, 'UTF-8', function(err) {
if(err) {
console.log(err);
} else {
console.log("=> grd2google.txt actualizado con las coordenadas convertidas a Google");
}
});
}
输出示例
"'2','10.1850','-68.334','4','10.1850','68.334','3','10.1853','-68.334','5','10.1853','-68.334'"
最后但并非最不重要的是,我有一个功能可以读取数据并将其从不必要的引号和单引号中删除。
var readMonActual = function(){
var coordsArray=fs.readFileSync("grd2google.txt", "utf8");
var coordsArray=coordsArray.substring(1,coordsArray.length-1);
var myCoords=[];
data=coordsArray.split(',');
for (var i=0;i<data.length;i+=3){
myCoords.push([
Number(String(data[i]).replace(/\'/g, "")),
Number(String(data[i+1]).replace(/\'/g, "")),
Number(String(data[i+2]).replace(/\'/g, ""))
]);
}
return myCoords;
}
这将是该函数的 console.log
[ [ 2, 10.185, -68.334 ],
[ 4, 10.185, 68.334 ],
[ 3, 10.1853, -68.334 ],
[ 5, 10.1853, -68.334 ] ]
所以我从谷歌地图 html 文件标签中的 initialize() 调用该函数
function initialize() {
var mapOptions = {
center: new google.maps.LatLng(10.191, -68.191),
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);
var markers = readMonActual().myCoords;
for(i=0; i<markers.length; i++ ) {
var position = new google.maps.LatLng(Number(markers[i][1]), Number(markers[i][2]));
//bounds.extend(position);
marker = new google.maps.Marker({
position: position,
map: map,
title: String(markers[i][0])
});
}
}
google.maps.event.addDomListener(window, 'load', initialize);
这是我尝试显示地图标记的众多方法之一,但它们仍然不会显示。一些帮助将不胜感激
【问题讨论】:
标签: javascript node.js google-maps google-maps-api-3 google-maps-markers