2016-01-22 80 views
2

我是新來的JavaScript,但想讀從GPX軌道心臟率與延長3的OpenLayers的OpenLayers 3 readExtensions GPX

Sample GPX track point

拖放交互接受對GPX格式的構造。我可以通過傳遞ol.format.GPX構造函數來讀取基本信息(lat,lon,ele,time),但我無法弄清楚如何使用'readExtensions'選項傳遞構造函數。

根據openlayers文檔(http://openlayers.org/en/v3.1.1/apidoc/ol.format.GPX.html),它應該是一個回調函數,但是當我運行我的代碼時,出現錯誤:TypeError:d [g]不是構造函數。

var dragAndDropInteraction = new ol.interaction.DragAndDrop({ 
    formatConstructors: [ 
    //ol.format.GPX(extFeature), 
    new ol.format.GPX({ 
     readExtensions: function(x) { 
      return x; 
     } 
     }), 
    ol.format.GeoJSON, 
    ol.format.IGC, 
    ol.format.KML, 
    ol.format.TopoJSON 
    ] 
}); 

我該如何格式化構造函數,以便獲得擴展以及標準功能?

回答

2

您可以創建自定義格式從ol.format.GPX繼承和構造函數傳遞給拖&下降互動:

var CustomFormat = function() { 
    ol.format.GPX.call(this, { 
    // custom options 
    }); 
}; 
ol.inherits(CustomFormat, ol.format.GPX); 

var dragAndDropInteraction = new ol.interaction.DragAndDrop({ 
    formatConstructors: [ 
    CustomFormat, 
    ... 
    ] 
}); 

http://jsfiddle.net/6zmprrj7/