2014-07-15 28 views
1

在我的JavaScript應用程序中,我試圖編輯存儲在數據庫中的路徑。爲了達到這個目的,我創建了一個google.maps.Polyline,其中數組爲google.maps.LatLng。對於每個LatLng我添加存儲在數據庫中僅僅作爲行ID:谷歌地圖:在拖動多段線時使用LatLng保留其他信息

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能夠更新數據庫中的行?

+0

你可以在數組中使用它的索引嗎? – Liath

+0

一旦添加了一些點,索引與ID不同步,這可能不是最好的方法:/ –

回答

1

當一個點被拖動時set_at - 路徑的事件觸發。在set_at -event的回調接收2個參數:

  1. 更新項目的路徑索引
  2. 基於這些參數的更新

之前的上一個項目很容易設置新項目的ID屬性的上一個項目的id屬性:

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

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