Javascript 将以制表符分隔的文件中的值传递给Google Maps对象
我试图通过printInfo函数将纬度和经度值传递给Google地图的对象。我正在加载一个以制表符分隔的文件,我可以毫无问题地从中获取值,但我一直在研究如何将其传递给initMap函数以将其传递给中心对象。我应该使用回调函数来传递值吗?如果是这样的话,我不知道该怎么做。我尝试创建一个全局变量,但似乎不起作用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 = {
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,但我调用它的函数似乎不起作用。它是用于加载文件的回调函数。我必须弄清楚原因,但它确实设置在该函数之外。谢谢你的帮助!