Google地图 - 使用MVC对象填充地图

时间:2014-06-18 18:56:30

标签: javascript google-maps-api-3

我在此网址找到了此代码:http://gmaps-samples-v3.googlecode.com/svn/trunk/poly/poly_edit.html

目标很简单:用标记绘制形状。 标记可以添加,拖动,删除。

在我的情况下,我有多个坐标,我想在MVC对象中注入它们以在页面加载时绘制形状。

在代码中,我们有这个功能:

function addPoint(event) {
    path.insertAt(path.length, event.latLng);
    var marker = new google.maps.Marker({
        position: event.latLng,
        map: map,
        draggable: true
    });
    markers.push(marker);
    marker.setTitle("#" + path.length);

    google.maps.event.addListener(marker, 'click', function() {
        marker.setMap(null);
        for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
        markers.splice(i, 1);
        path.removeAt(i);
    });

    google.maps.event.addListener(marker, 'dragend', function() {
        for (var i = 0, I = markers.length; i < I && markers[i] != marker; ++i);
        path.setAt(i, marker.getPosition());
    });
}

我有一个坐标列表,如下所示:

var locations = ['48.87304938, 2.77083992','48.87153217, 2.77080774','48.86765779, 2.77210593']

我想象部分代码是这样的:

addPoint(locations[0]);
addPoint(locations[1]);

但不起作用..

你有什么想法吗?

(抱歉我的英文...)

1 个答案:

答案 0 :(得分:1)

addPoint期望将latLng - 属性设置为google.maps.LatLng()的对象作为参数,但是您提供了一个字符串。

可能的方法:

var locations = ['48.87304938, 2.77083992',
                 '48.87153217, 2.77080774',
                 '48.86765779, 2.77210593'];

//iterate over the items
for(var i=0;i<locations.length;++i){
  //split the item to separate latitude and longitude
  var point=locations[i].split(',');
  //call the function
  addPoint({latLng:new google.maps.LatLng(point[0],point[1])});

}