0

因此,這裏是我的代碼...谷歌地圖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}); 
     }); 
} 

然後我有一個基本調用另一個函數,將一個回調函數將數據轉換成谷歌地圖的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; 
} 

這將是谷歌的該功能

[ [ 2, 10.185, -68.334 ], 
    [ 4, 10.185, 68.334 ], 
    [ 3, 10.1853, -68.334 ], 
    [ 5, 10.1853, -68.334 ] ] 

因此,我調用的初始化(即功能)的映射的console.log HTML文件的標籤

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); 

這是我試圖顯示地圖標記的許多方法之一,但他們仍然不會顯示。一些幫助,將不勝感激

回答

0

的主要問題是調用

var markers = readMonActual().myCoords; 

應該

var markers = readMonActual(); 

您正在返回從功能的陣列。

而且數組的定義for循環的前丟失:

var marker = []; 

檢查example at jsBin。功能readMonActual()被更改爲僅返回正確的結果。我無法測試數據庫部分。

+0

它仍然不起作用。我以爲我沒有得到的位置,所以我試圖創建一個div來打印位置,但該div甚至不會出現。並警報不會帶來任何東西.. – arrigonfr

+0

我現在看到。問題是我沒有正確導入.js文件,而且我正在嘗試,但調試器仍然說它無法找到該文件。 看到,我使用節點的快速框架。並在我的項目目錄中,我有,其中,這些文件夾: -views(這是框架的一部分)。 -custom_modules(我創建的)。 我必須將位於custom_modules文件夾中的js文件加載到視圖中的.html文件中。但這不起作用。 arrigonfr

+0

基本上我需要從'project/views/map.html'中調用'project/custom_modules/files.js' – arrigonfr