我在此网址找到了此代码: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]);
但不起作用..
你有什么想法吗?(抱歉我的英文...)
答案 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])});
}