我昨天刚开始使用Google Maps API,并试图设置我的地图的行车路线.我的问题是:当我调用函数加载时,
// [...]
gdir = new GDirections(map, directionsPanel);
// [...]
gdir.load("from: " + fromAddress + " to: " + toAddress);
它返回一个标记不可拖动的地图.所以,我需要让它们可拖动才能重新计算方向,但我无法获得标记对象.
有人知道我该怎么办?
最佳答案 您需要在GDirections对象上为addoverlay事件添加处理程序:
GEvent.addListener(gdir, "addoverlay", onGDirectionsAddOverlay);
当你的onGDirectionsAddOverlay处理程序被调用时,你可以遍历新的标记并用可拖动的副本替换它们:
for (var i = 0; i <= gdir.getNumRoutes(); i++)
{
var originalMarker = gdir.getMarker(i);
latLngs[i] = originalMarker.getLatLng();
icons[i] = originalMarker.getIcon();
newMarkers[i] = new GMarker(latLngs[i], { icon: icons[i], draggable: true, title: 'Kan flyttes' });
map.addOverlay(newMarkers[i]);
// add stuff to your newMarkers[i] drag end event...
// ...
//Bind 'click' event to original markers 'click' event
copyClick(newMarkers[i], originalMarker);
// Now we can remove the original marker safely
map.removeOverlay(originalMarker);
}