Javascript 将以制表符分隔的文件中的值传递给Google Maps对象

Javascript 将以制表符分隔的文件中的值传递给Google Maps对象,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我试图通过printInfo函数将纬度和经度值传递给Google地图的对象。我正在加载一个以制表符分隔的文件,我可以毫无问题地从中获取值,但我一直在研究如何将其传递给initMap函数以将其传递给中心对象。我应该使用回调函数来传递值吗?如果是这样的话,我不知道该怎么做。我尝试创建一个全局变量,但似乎不起作用 function initMap() { var mapDiv = document.getElementById('map'); var mapProp = {

我试图通过printInfo函数将纬度和经度值传递给Google地图的对象。我正在加载一个以制表符分隔的文件,我可以毫无问题地从中获取值,但我一直在研究如何将其传递给initMap函数以将其传递给中心对象。我应该使用回调函数来传递值吗?如果是这样的话,我不知道该怎么做。我尝试创建一个全局变量,但似乎不起作用

function initMap() {
    var mapDiv = document.getElementById('map');
    var mapProp =  {
      center: {lat: 44.540, lng: -78.546},
      zoom: 8
    };
    var map = new google.maps.Map(mapDiv,mapProp);
  }
  google.maps.event.addDomListener(window,'load',initMap);


//Load in tab delimited file
d3.text("ix_cities.tmpl", function(text){

    printInfo(text);
 });


//print out the info in the console
//I'm trying to pass the Lat/Long values to the google map API
function printInfo(text) {
   var info = d3.tsv.parseRows(text);
    console.log(info);

    var infoLen = info.length;

    console.log("Cities file Length: " + infoLen);

    for(var i = 0; i < infoLen; i++ ){

        console.log("Title: " + info[i][0]);
        console.log("Street Address: " + info[i][1]);
        console.log("City & ZIP: " + info[i][2]);
        console.log("Phone Number: " + info[i][3]);
        console.log("Lat: "  + info[i][4]);
        console.log("Long: " + info[i][5]);
        console.log("URL: " + info[i][6]);
    } 



}
函数initMap(){
var mapDiv=document.getElementById('map');
var mapProp={
中心:{lat:44.540,lng:-78.546},
缩放:8
};
var map=newgoogle.maps.map(mapDiv,mapProp);
}
google.maps.event.addDomListener(窗口,'load',initMap);
//加载以制表符分隔的文件
d3.文本(“ix_cities.tmpl”,函数(文本){
打印信息(文本);
});
//在控制台中打印信息
//我正在尝试将Lat/Long值传递给GoogleMapAPI
函数printInfo(文本){
var info=d3.tsv.parseRows(文本);
控制台日志(信息);
var infoLen=info.length;
log(“城市文件长度:+infoLen”);
对于(var i=0;i
全局变量不正确。使用名称空间

(function(myMaps) {    
    var map;
    google.maps.event.addDomListener(window, 'load', initMap);
    myMaps.initMap = function() {
        var mapDiv = document.getElementById('map');
        var mapProp = {
            center: { lat: 44.540, lng: -78.546 },
            zoom: 8
        };
        map = new google.maps.Map(mapDiv, mapProp);
    }
    myMaps.center = function(lat, lng) {
        map.setCenter(new google.maps.LatLng(lat, lng));
    }
}(window.myMaps = window.myMaps || {}));
现在从js中的任何其他地方调用
myMaps.center
。通过
纬度
<代码>经度
,地图将以该位置为中心。您甚至可以通过删除
adddomstener
并在读取csv后调用
initMap
来延迟映射初始化。将
lat/lng
参数添加到
initMap


一些打字错误。正在工作。

您想对这些值做什么?我想将它们传递到这里var mapProp={center:{lat:VAL1 lng:VAL2},zoom:8};这似乎不起作用,我确实将事件侦听器移出了名称空间,然后加载了映射,但是当我调用myMaps.center并将Lat/Long传递给它时,映射不会改变以反映坐标。当我尝试调用myMaps.center时,它在控制台中说setCenter未定义,这很奇怪。奇怪。你能试试潘托吗
map.panTo(新的google.maps.LatLng(lat,lng))
它还说这是未定义的:/噢,太棒了!这确实可以改变lat/long,但我调用它的函数似乎不起作用。它是用于加载文件的回调函数。我必须弄清楚原因,但它确实设置在该函数之外。谢谢你的帮助!