如何在Javascript中修改数组的内容

时间:2015-09-14 07:54:10

标签: javascript arrays google-maps-api-3 syntax

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

问题是API希望将数据作为对象,如:

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

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

我怎么能这样做?

以下是我的帮助。我没有错误,但地图上没有任何内容。我使用API​​中的BermudaTriangle示例,如模型: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); 
    }

2 个答案:

答案 0 :(得分:2)

可能最简单的方法(没有看到你的任何示例代码)是将你通过ajax获得的值放在一个新变量中。让我们说你得到的对象叫做geoData。 geoData应该有2个值lat和long,或者你调用它们。

最简单的方法是:

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

那就是它,希望这会有所帮助。

答案 1 :(得分:1)

您还可以直接通过google maps api创建LatLng对象:

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

返回您需要使用地图的对象。