2016-01-22 3 views
2

Я новичок в Javascript, но я пытаюсь прочитать расширение сердечного ритма с дорожки GPX с OpenLayers 3.OpenLayers 3 readExtensions GPX

Sample GPX track point

лобовое сопротивление и падение взаимодействия принимает конструктор для формата GPX , Я могу прочитать основную информацию (lat, lon, ele, time), передав конструктор ol.format.GPX, но я не могу понять, как передать конструктор с параметром «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/

Смежные вопросы