我在我的應用程序中有一個谷歌地圖組件,允許用戶繪製多邊形,線條和標記。現在我想實現一個按鈕,允許用戶導出他/她在地圖中繪製的東西的kml文件。谷歌地圖api v3導出當前地圖的kml文件
任何建議最好的方法來做到這一點。
您的意見和貢獻表示高度讚賞
我在我的應用程序中有一個谷歌地圖組件,允許用戶繪製多邊形,線條和標記。現在我想實現一個按鈕,允許用戶導出他/她在地圖中繪製的東西的kml文件。谷歌地圖api v3導出當前地圖的kml文件
任何建議最好的方法來做到這一點。
您的意見和貢獻表示高度讚賞
我就總結一下我的想法,爲用戶繪製存儲的座標,然後點擊「輸出KML」按鈕時,格式保存的座標數據,並將其放置在一個textarea被複制(除非有辦法提示下載?)。
下面是如何保存數據,當用戶完成繪圖元素:(我不知道檢測編輯的好辦法)
首先,添加事件偵聽器每個繪圖類型(線,多邊形,標記)在完成時觸發。您需要爲每種類型分別設置一個事件偵聽器。這裏有一個用於多義線,每個偵聽器將返回剛剛完成的繪圖元素的類型。
google.maps.event.addDomListener(drawingManager, 'polylinecomplete', function(line) {
path = line.getPath();
document.getElementById("action").value += "#polyline\n";
for(var i = 0; i < path.length; i++) {
document.getElementById("action").value += path.getAt(i) + "\n";
}
});
我將所述座標直到一個共享textarea的,但應代替進入陣列變量的數組,與多邊形一個變量,一個用於折線和一個用於標記。
從這些內部變量讀取時,將Google Maps LatLngs轉換爲KML格式long,lat,altitude。你將不得不對每個元素的名稱和描述進行創意。
最後,請求KML時,遍歷標記,線和麪變量是否使用了描繪管理/庫或定製控件生成KML格式的元素,如Point-coordinates, LineString, and Polygon-outerBoundaryIs
在[Google Maps API v3羣組中的此線程](https://groups.google.com/group/google-maps-js-api- v3/browse_frm/thread/bf3f0785def955a5/5f7cf2abf95439a6),「您在多邊形的路徑上附加了一個set_at偵聽器,例如:''google.maps.event.addListener(polygon.getPath(),'set_at',function(index){/ *在這裏添加代碼* /});' – geocodezip
? –
我正在使用圖形管理器庫 – Omran
我的計劃只適用於用戶的圖紙不可編輯的情況,如果是這種情況,我可以寫一個提綱。如果您允許編輯,我無法幫助您,我會將答案留空,以便其他人可以回答。 –