如何修改 Javascript 中数组的内容

How to modify content of an array in Javascript

我正在使用 Google 地图 API 在地图上创建一些区域。我将地理数据存储在数据库中,然后通过 Ajax 获取它。

问题是 API 想要数据作为对象,例如:

var myHome = { "lat" : "44.767778" , "long" : "-93.2775" };

所以我需要在数组中放入 {"lat" : 和 "long : ... };

我该怎么做?


这是我在你的帮助下所做的。我没有任何错误,但地图上没有显示任何内容。我使用了来自 API 的百慕大三角的例子,就像一个模型:https://developers.google.com/maps/documentation/javascript/examples/polygon-autoclose

    $.get(
    "getZones.php", //Get geodata from database
    function(data) {
      locZone = data;
      var reg=new RegExp("[/]+", "g"); //Separate points of the zone
      var tableau=locZone.split(reg);
      for (var i=0; i<tableau.length; i++) {
          points = new google.maps.LatLng(tableau[i]);
          coords.push(points);//Put the coordinates in a tab
        }
      var zone = new google.maps.Polygon({
        paths: coords, //Use the tab like in the example from API
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 3,
        fillColor: '#FF0000',
        fillOpacity: 0.35
      });
      zone.setMap(map);
    }
  );

没关系,我只是重写了循环:

for (var i=0; i<tableau.length; i++) {
      var b=tableau[i].split(","); //Separate lat & lng
      points=new google.maps.LatLng(parseFloat(b[0]), parseFloat(b[1])); //Convert data into float type
      coords.push(points); 
    }

可能最简单的方法(没有看到您的任何示例代码)是将您通过 ajax 获得的值放入一个新变量中。假设您获得的对象称为 geoData。 geoData 应该有 2 个值 lat 和 long 或者你怎么称呼它们。

最简单的方法是:

var myHome = {
    "lat": geoData.lat,
    "long": geoData.long
}

就是这样,希望对您有所帮助。

也可以直接通过google映射创建LatLng对象api:

var latlng = new google.maps.LatLng(44.767778, -93.2775);

那个 returns 您需要使用地图的对象。