Google地图:在拖动折线时保留LatLng的其他信息

时间:2014-07-15 11:29:34

标签: javascript google-maps

在我的JavaScript应用程序中,我正在尝试编辑存储在数据库中的路径。为实现这一目标,我创建了一个google.maps.Polyline数组google.maps.LatLng。对于每个LatLng,我将数据库中存储的行ID添加为:

var latLng = new google.maps.LatLng(item.latitude, item.longitude);
latLng.id = id;
coords.push(latLng);

结果与此类似:

http://www.geocodezip.com/v3_GoogleEx_polyline-simple_editingEvents.html

这是有效的,我可以访问id。但是,一旦拖动了该点,就会创建新的LatLng并删除旧的{ - 因此原始ID将丢失。如何保持每个点的id能够更新数据库中的行?

1 个答案:

答案 0 :(得分:1)

当拖动一个点时,路径的set_at - 事件将被触发。 set_at - 事件的回调接收2个参数:

  1. 路径中更新项目的索引
  2. 更新前的上一个项目
  3. 根据这些参数,可以很容易地将新项的id-property设置为前一项的id-property:

        google.maps.event.addListener(flightPath.getPath(),"set_at",function(i,o){          
           this.getAt(i).id = o.id;
        });
    

    演示:http://jsfiddle.net/doktormolle/QLBt4/