解決iD上傳的衝突(已解決)

最後編輯:2016-05-20 建立:2014-07-13 歷史紀錄

 

REX Thttps://www.facebook.com/mcdlee/posts/10204308597859719

@劉婕昕 和 黃裕翔 發現從 iD 的頁面 source 可以呈現正在編輯的 ‪#‎OSM‬ 圖資,也許可以藉此保留.osm,減輕編輯衝突的損失。

 

    YELLOWSO以Chrome為例

YELLOWSO取得iD編輯內容

當iD因衝突而無法上傳編輯內容的時候,可以透過右鍵選單的檢閱元素功能,在Resources分類底下Local Storage中的osm項目中,找到以「id_網址」為名的Key項目之Value內容。

 

格式轉換

將之轉換為符合xml格式之「.osm」檔案(參考:http://wiki.openstreetmap.org/wiki/JOSM_file_format),如此便可以透過JOSM解決iD上傳問題。

 

 

REX TJavascript library

iD Editor 有個 API 叫做 connection.osmChangeJXON(changeset_id, changes) 可以生成 osmChange XML 檔案。

 

原始上傳程式碼,理論上會存成一組 changeset, 如果知道 changeset id,可以直接下載。

    yellowsoar如果有衝突就不會上傳,不會上傳應該就不會有changset,那應該就抓不到changset id了?@@
  • connection.putChangeset = function(changes, comment, imageryUsed, callback) {
  • oauth.xhr({
  • method: 'PUT',
  • path: '/api/0.6/changeset/create',
  • options: { header: { 'Content-Type': 'text/xml' } },
  • content: JXON.stringify(connection.changesetJXON(connection.changesetTags(comment, imageryUsed)))
  • }, function(err, changeset_id) {
  • if (err) return callback(err);
  • oauth.xhr({
  • method: 'POST',
  • path: '/api/0.6/changeset/' + changeset_id + '/upload',
  • options: { header: { 'Content-Type': 'text/xml' } },
  • content: JXON.stringify(connection.osmChangeJXON(changeset_id, changes))
  • }, function(err) {
  • if (err) return callback(err);
  • oauth.xhr({
  • method: 'PUT',
  • path: '/api/0.6/changeset/' + changeset_id + '/close'
  • }, function(err) {
  • callback(err, changeset_id);
  • });
  • });
  • });
  • };

    SUPAPLEX結案

SUPAPLEXiD在某個版本(待查),加入編輯衝突的處理機制