将.js文件中的变量传递给Google Maps API v3 html

Arrigonfr

我正在尝试在Google地图中显示标记,但目前还无法正常工作。我正在使用node.js并表达。所以这是我的代码

首先是javascript函数,该函数从文件中读取一组位置,然后转换整个脚本

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:myCoords};
  return myCoords;
}

然后在HTML文件中的功能

function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(10.191, -68.192),
        zoom: 7,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"),mapOptions);
    var markers=readMonActual(); //<- this returns as undefined
    var marker = new Array(); 

    for(i=0; i< markers.length; i++ ) {
        var position = new google.maps.LatLng(parseFloat(markers[i][1]), parseFloat(markers[i][2]));
                new google.maps.Marker({
                position: position,
                map: map,
                title: String(markers[i][0])
                });
    }
}
google.maps.event.addDomListener(window, 'load', initialize);

加载了地图,加载了.js脚本,但是它仍然不显示标记,因为包含数组的变量变回空白(即使readMonActual函数的console.log()向我显示了具有位置的数组)

安迪

这是由同步文件进程引起的。initialize尝试使用尚未返回的数据。我将下面的功能简化了一些,以节省一些空间。简而言之,将一个回调函数传递给该函数readMonActual,一旦文件处理完成,该函数将返回标记。

function initialize() {
  // rest of codecode
  // pass in a callback to readMonActual
  readMonActual(function (markers) {
    for(i=0; i< markers.length; i++ ) {
      // do loop
    }
  });
}

var readMonActual = function (callback) {
  var coordsArray=fs.readFileSync("grd2google.txt", "utf8");
  var coordsArray=coordsArray.substring(1,coordsArray.length-1);
  var myCoords=[];
  // the rest of the code
  // return the markers via the callback
  callback(myCoords);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Google Maps API v3中将类添加到标记

来自分类Dev

Angular 2将DOM插入由Google Maps V3 API创建的InfoWindow元素

来自分类Dev

Google Maps API v3 travelMode作为变量

来自分类Dev

多个图块问题Google Maps API v3 JS

来自分类Dev

Google Maps API v3唯一标记JS

来自分类Dev

Google Maps JS api v3延迟拖拽标记

来自分类Dev

在Google Maps API v3中绘制多个圆圈

来自分类Dev

Google Maps Javascript API V3中的旋转标记

来自分类Dev

延迟在Google Maps API V3中添加图层

来自分类Dev

Google Maps Javascript API V3中的旋转标记

来自分类Dev

Google Maps V3:将标记上的拖动事件传递给地图

来自分类Dev

Google Maps v3 infoWindow HTML的addDomListener按钮

来自分类Dev

Google Maps API V3错误:RefererDeniedMapError

来自分类Dev

使地图在Google Maps API v3上运行的问题

来自分类Dev

带有Rhomobile的Google Maps Javascript V3 API

来自分类Dev

Google Maps API v3多边形关闭

来自分类Dev

Close all info windows google maps API V3?

来自分类Dev

Google Maps API v3 Firefox问题

来自分类Dev

Google Maps API v3隐藏“滑雪道”

来自分类Dev

刷新Google Maps API V3图层

来自分类Dev

Google Maps API v3按州计算里程

来自分类Dev

单击Google Maps API v3从Marker绘制折线

来自分类Dev

动画化不同的标记API V3 Google Maps

来自分类Dev

Google Maps API v3 DrawingManager预定义折线

来自分类Dev

Google Maps API v3隐藏“滑雪道”

来自分类Dev

标记位置未获取-Google Maps API v3

来自分类Dev

标记拖动事件Google Maps API V3

来自分类Dev

Google Maps API V3 IF else语句

来自分类Dev

Google Maps JavaScript API v3 /数据层/ MarkerClusterer