|
|
|
@@ -23,7 +23,7 @@ import _ol_xml_ from '../xml.js';
|
|
|
|
* @param {olx.format.GPXOptions=} opt_options Options.
|
|
|
|
* @param {olx.format.GPXOptions=} opt_options Options.
|
|
|
|
* @api
|
|
|
|
* @api
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
var _ol_format_GPX_ = function(opt_options) {
|
|
|
|
var GPX = function(opt_options) {
|
|
|
|
|
|
|
|
|
|
|
|
var options = opt_options ? opt_options : {};
|
|
|
|
var options = opt_options ? opt_options : {};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -41,7 +41,7 @@ var _ol_format_GPX_ = function(opt_options) {
|
|
|
|
this.readExtensions_ = options.readExtensions;
|
|
|
|
this.readExtensions_ = options.readExtensions;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
inherits(_ol_format_GPX_, _ol_format_XMLFeature_);
|
|
|
|
inherits(GPX, _ol_format_XMLFeature_);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@@ -49,7 +49,7 @@ inherits(_ol_format_GPX_, _ol_format_XMLFeature_);
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
* @type {Array.<string>}
|
|
|
|
* @type {Array.<string>}
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_ = [
|
|
|
|
GPX.NAMESPACE_URIS_ = [
|
|
|
|
null,
|
|
|
|
null,
|
|
|
|
'http://www.topografix.com/GPX/1/0',
|
|
|
|
'http://www.topografix.com/GPX/1/0',
|
|
|
|
'http://www.topografix.com/GPX/1/1'
|
|
|
|
'http://www.topografix.com/GPX/1/1'
|
|
|
|
@@ -61,7 +61,7 @@ _ol_format_GPX_.NAMESPACE_URIS_ = [
|
|
|
|
* @type {string}
|
|
|
|
* @type {string}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.SCHEMA_LOCATION_ = 'http://www.topografix.com/GPX/1/1 ' +
|
|
|
|
GPX.SCHEMA_LOCATION_ = 'http://www.topografix.com/GPX/1/1 ' +
|
|
|
|
'http://www.topografix.com/GPX/1/1/gpx.xsd';
|
|
|
|
'http://www.topografix.com/GPX/1/1/gpx.xsd';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -73,7 +73,7 @@ _ol_format_GPX_.SCHEMA_LOCATION_ = 'http://www.topografix.com/GPX/1/1 ' +
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
* @return {Array.<number>} Flat coordinates.
|
|
|
|
* @return {Array.<number>} Flat coordinates.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.appendCoordinate_ = function(flatCoordinates, layoutOptions, node, values) {
|
|
|
|
GPX.appendCoordinate_ = function(flatCoordinates, layoutOptions, node, values) {
|
|
|
|
flatCoordinates.push(
|
|
|
|
flatCoordinates.push(
|
|
|
|
parseFloat(node.getAttribute('lon')),
|
|
|
|
parseFloat(node.getAttribute('lon')),
|
|
|
|
parseFloat(node.getAttribute('lat')));
|
|
|
|
parseFloat(node.getAttribute('lat')));
|
|
|
|
@@ -104,7 +104,7 @@ _ol_format_GPX_.appendCoordinate_ = function(flatCoordinates, layoutOptions, nod
|
|
|
|
* @param {Array.<number>=} ends Ends.
|
|
|
|
* @param {Array.<number>=} ends Ends.
|
|
|
|
* @return {ol.geom.GeometryLayout} Layout.
|
|
|
|
* @return {ol.geom.GeometryLayout} Layout.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.applyLayoutOptions_ = function(layoutOptions, flatCoordinates, ends) {
|
|
|
|
GPX.applyLayoutOptions_ = function(layoutOptions, flatCoordinates, ends) {
|
|
|
|
var layout = GeometryLayout.XY;
|
|
|
|
var layout = GeometryLayout.XY;
|
|
|
|
var stride = 2;
|
|
|
|
var stride = 2;
|
|
|
|
if (layoutOptions.hasZ && layoutOptions.hasM) {
|
|
|
|
if (layoutOptions.hasZ && layoutOptions.hasM) {
|
|
|
|
@@ -145,13 +145,13 @@ _ol_format_GPX_.applyLayoutOptions_ = function(layoutOptions, flatCoordinates, e
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.parseLink_ = function(node, objectStack) {
|
|
|
|
GPX.parseLink_ = function(node, objectStack) {
|
|
|
|
var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var href = node.getAttribute('href');
|
|
|
|
var href = node.getAttribute('href');
|
|
|
|
if (href !== null) {
|
|
|
|
if (href !== null) {
|
|
|
|
values['link'] = href;
|
|
|
|
values['link'] = href;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
_ol_xml_.parseNode(_ol_format_GPX_.LINK_PARSERS_, node, objectStack);
|
|
|
|
_ol_xml_.parseNode(GPX.LINK_PARSERS_, node, objectStack);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -160,7 +160,7 @@ _ol_format_GPX_.parseLink_ = function(node, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.parseExtensions_ = function(node, objectStack) {
|
|
|
|
GPX.parseExtensions_ = function(node, objectStack) {
|
|
|
|
var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
values['extensionsNode_'] = node;
|
|
|
|
values['extensionsNode_'] = node;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
@@ -171,16 +171,16 @@ _ol_format_GPX_.parseExtensions_ = function(node, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.parseRtePt_ = function(node, objectStack) {
|
|
|
|
GPX.parseRtePt_ = function(node, objectStack) {
|
|
|
|
var values = _ol_xml_.pushParseAndPop(
|
|
|
|
var values = _ol_xml_.pushParseAndPop(
|
|
|
|
{}, _ol_format_GPX_.RTEPT_PARSERS_, node, objectStack);
|
|
|
|
{}, GPX.RTEPT_PARSERS_, node, objectStack);
|
|
|
|
if (values) {
|
|
|
|
if (values) {
|
|
|
|
var rteValues = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var rteValues = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var flatCoordinates = /** @type {Array.<number>} */
|
|
|
|
var flatCoordinates = /** @type {Array.<number>} */
|
|
|
|
(rteValues['flatCoordinates']);
|
|
|
|
(rteValues['flatCoordinates']);
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */
|
|
|
|
(rteValues['layoutOptions']);
|
|
|
|
(rteValues['layoutOptions']);
|
|
|
|
_ol_format_GPX_.appendCoordinate_(flatCoordinates, layoutOptions, node, values);
|
|
|
|
GPX.appendCoordinate_(flatCoordinates, layoutOptions, node, values);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -190,16 +190,16 @@ _ol_format_GPX_.parseRtePt_ = function(node, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.parseTrkPt_ = function(node, objectStack) {
|
|
|
|
GPX.parseTrkPt_ = function(node, objectStack) {
|
|
|
|
var values = _ol_xml_.pushParseAndPop(
|
|
|
|
var values = _ol_xml_.pushParseAndPop(
|
|
|
|
{}, _ol_format_GPX_.TRKPT_PARSERS_, node, objectStack);
|
|
|
|
{}, GPX.TRKPT_PARSERS_, node, objectStack);
|
|
|
|
if (values) {
|
|
|
|
if (values) {
|
|
|
|
var trkValues = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var trkValues = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var flatCoordinates = /** @type {Array.<number>} */
|
|
|
|
var flatCoordinates = /** @type {Array.<number>} */
|
|
|
|
(trkValues['flatCoordinates']);
|
|
|
|
(trkValues['flatCoordinates']);
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */
|
|
|
|
(trkValues['layoutOptions']);
|
|
|
|
(trkValues['layoutOptions']);
|
|
|
|
_ol_format_GPX_.appendCoordinate_(flatCoordinates, layoutOptions, node, values);
|
|
|
|
GPX.appendCoordinate_(flatCoordinates, layoutOptions, node, values);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -209,9 +209,9 @@ _ol_format_GPX_.parseTrkPt_ = function(node, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.parseTrkSeg_ = function(node, objectStack) {
|
|
|
|
GPX.parseTrkSeg_ = function(node, objectStack) {
|
|
|
|
var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
var values = /** @type {Object} */ (objectStack[objectStack.length - 1]);
|
|
|
|
_ol_xml_.parseNode(_ol_format_GPX_.TRKSEG_PARSERS_, node, objectStack);
|
|
|
|
_ol_xml_.parseNode(GPX.TRKSEG_PARSERS_, node, objectStack);
|
|
|
|
var flatCoordinates = /** @type {Array.<number>} */
|
|
|
|
var flatCoordinates = /** @type {Array.<number>} */
|
|
|
|
(values['flatCoordinates']);
|
|
|
|
(values['flatCoordinates']);
|
|
|
|
var ends = /** @type {Array.<number>} */ (values['ends']);
|
|
|
|
var ends = /** @type {Array.<number>} */ (values['ends']);
|
|
|
|
@@ -225,12 +225,12 @@ _ol_format_GPX_.parseTrkSeg_ = function(node, objectStack) {
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
* @return {ol.Feature|undefined} Track.
|
|
|
|
* @return {ol.Feature|undefined} Track.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.readRte_ = function(node, objectStack) {
|
|
|
|
GPX.readRte_ = function(node, objectStack) {
|
|
|
|
var options = /** @type {olx.format.ReadOptions} */ (objectStack[0]);
|
|
|
|
var options = /** @type {olx.format.ReadOptions} */ (objectStack[0]);
|
|
|
|
var values = _ol_xml_.pushParseAndPop({
|
|
|
|
var values = _ol_xml_.pushParseAndPop({
|
|
|
|
'flatCoordinates': [],
|
|
|
|
'flatCoordinates': [],
|
|
|
|
'layoutOptions': {}
|
|
|
|
'layoutOptions': {}
|
|
|
|
}, _ol_format_GPX_.RTE_PARSERS_, node, objectStack);
|
|
|
|
}, GPX.RTE_PARSERS_, node, objectStack);
|
|
|
|
if (!values) {
|
|
|
|
if (!values) {
|
|
|
|
return undefined;
|
|
|
|
return undefined;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -239,7 +239,7 @@ _ol_format_GPX_.readRte_ = function(node, objectStack) {
|
|
|
|
delete values['flatCoordinates'];
|
|
|
|
delete values['flatCoordinates'];
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */ (values['layoutOptions']);
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */ (values['layoutOptions']);
|
|
|
|
delete values['layoutOptions'];
|
|
|
|
delete values['layoutOptions'];
|
|
|
|
var layout = _ol_format_GPX_.applyLayoutOptions_(layoutOptions, flatCoordinates);
|
|
|
|
var layout = GPX.applyLayoutOptions_(layoutOptions, flatCoordinates);
|
|
|
|
var geometry = new LineString(null);
|
|
|
|
var geometry = new LineString(null);
|
|
|
|
geometry.setFlatCoordinates(layout, flatCoordinates);
|
|
|
|
geometry.setFlatCoordinates(layout, flatCoordinates);
|
|
|
|
FeatureFormat.transformWithOptions(geometry, false, options);
|
|
|
|
FeatureFormat.transformWithOptions(geometry, false, options);
|
|
|
|
@@ -255,13 +255,13 @@ _ol_format_GPX_.readRte_ = function(node, objectStack) {
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
* @return {ol.Feature|undefined} Track.
|
|
|
|
* @return {ol.Feature|undefined} Track.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.readTrk_ = function(node, objectStack) {
|
|
|
|
GPX.readTrk_ = function(node, objectStack) {
|
|
|
|
var options = /** @type {olx.format.ReadOptions} */ (objectStack[0]);
|
|
|
|
var options = /** @type {olx.format.ReadOptions} */ (objectStack[0]);
|
|
|
|
var values = _ol_xml_.pushParseAndPop({
|
|
|
|
var values = _ol_xml_.pushParseAndPop({
|
|
|
|
'flatCoordinates': [],
|
|
|
|
'flatCoordinates': [],
|
|
|
|
'ends': [],
|
|
|
|
'ends': [],
|
|
|
|
'layoutOptions': {}
|
|
|
|
'layoutOptions': {}
|
|
|
|
}, _ol_format_GPX_.TRK_PARSERS_, node, objectStack);
|
|
|
|
}, GPX.TRK_PARSERS_, node, objectStack);
|
|
|
|
if (!values) {
|
|
|
|
if (!values) {
|
|
|
|
return undefined;
|
|
|
|
return undefined;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -272,7 +272,7 @@ _ol_format_GPX_.readTrk_ = function(node, objectStack) {
|
|
|
|
delete values['ends'];
|
|
|
|
delete values['ends'];
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */ (values['layoutOptions']);
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */ (values['layoutOptions']);
|
|
|
|
delete values['layoutOptions'];
|
|
|
|
delete values['layoutOptions'];
|
|
|
|
var layout = _ol_format_GPX_.applyLayoutOptions_(layoutOptions, flatCoordinates, ends);
|
|
|
|
var layout = GPX.applyLayoutOptions_(layoutOptions, flatCoordinates, ends);
|
|
|
|
var geometry = new MultiLineString(null);
|
|
|
|
var geometry = new MultiLineString(null);
|
|
|
|
geometry.setFlatCoordinates(layout, flatCoordinates, ends);
|
|
|
|
geometry.setFlatCoordinates(layout, flatCoordinates, ends);
|
|
|
|
FeatureFormat.transformWithOptions(geometry, false, options);
|
|
|
|
FeatureFormat.transformWithOptions(geometry, false, options);
|
|
|
|
@@ -288,16 +288,16 @@ _ol_format_GPX_.readTrk_ = function(node, objectStack) {
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
* @return {ol.Feature|undefined} Waypoint.
|
|
|
|
* @return {ol.Feature|undefined} Waypoint.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.readWpt_ = function(node, objectStack) {
|
|
|
|
GPX.readWpt_ = function(node, objectStack) {
|
|
|
|
var options = /** @type {olx.format.ReadOptions} */ (objectStack[0]);
|
|
|
|
var options = /** @type {olx.format.ReadOptions} */ (objectStack[0]);
|
|
|
|
var values = _ol_xml_.pushParseAndPop(
|
|
|
|
var values = _ol_xml_.pushParseAndPop(
|
|
|
|
{}, _ol_format_GPX_.WPT_PARSERS_, node, objectStack);
|
|
|
|
{}, GPX.WPT_PARSERS_, node, objectStack);
|
|
|
|
if (!values) {
|
|
|
|
if (!values) {
|
|
|
|
return undefined;
|
|
|
|
return undefined;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */ ({});
|
|
|
|
var layoutOptions = /** @type {ol.LayoutOptions} */ ({});
|
|
|
|
var coordinates = _ol_format_GPX_.appendCoordinate_([], layoutOptions, node, values);
|
|
|
|
var coordinates = GPX.appendCoordinate_([], layoutOptions, node, values);
|
|
|
|
var layout = _ol_format_GPX_.applyLayoutOptions_(layoutOptions, coordinates);
|
|
|
|
var layout = GPX.applyLayoutOptions_(layoutOptions, coordinates);
|
|
|
|
var geometry = new Point(coordinates, layout);
|
|
|
|
var geometry = new Point(coordinates, layout);
|
|
|
|
FeatureFormat.transformWithOptions(geometry, false, options);
|
|
|
|
FeatureFormat.transformWithOptions(geometry, false, options);
|
|
|
|
var feature = new _ol_Feature_(geometry);
|
|
|
|
var feature = new _ol_Feature_(geometry);
|
|
|
|
@@ -311,10 +311,10 @@ _ol_format_GPX_.readWpt_ = function(node, objectStack) {
|
|
|
|
* @type {Object.<string, function(Node, Array.<*>): (ol.Feature|undefined)>}
|
|
|
|
* @type {Object.<string, function(Node, Array.<*>): (ol.Feature|undefined)>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.FEATURE_READER_ = {
|
|
|
|
GPX.FEATURE_READER_ = {
|
|
|
|
'rte': _ol_format_GPX_.readRte_,
|
|
|
|
'rte': GPX.readRte_,
|
|
|
|
'trk': _ol_format_GPX_.readTrk_,
|
|
|
|
'trk': GPX.readTrk_,
|
|
|
|
'wpt': _ol_format_GPX_.readWpt_
|
|
|
|
'wpt': GPX.readWpt_
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -323,11 +323,11 @@ _ol_format_GPX_.FEATURE_READER_ = {
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.GPX_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.GPX_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'rte': _ol_xml_.makeArrayPusher(_ol_format_GPX_.readRte_),
|
|
|
|
'rte': _ol_xml_.makeArrayPusher(GPX.readRte_),
|
|
|
|
'trk': _ol_xml_.makeArrayPusher(_ol_format_GPX_.readTrk_),
|
|
|
|
'trk': _ol_xml_.makeArrayPusher(GPX.readTrk_),
|
|
|
|
'wpt': _ol_xml_.makeArrayPusher(_ol_format_GPX_.readWpt_)
|
|
|
|
'wpt': _ol_xml_.makeArrayPusher(GPX.readWpt_)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -336,8 +336,8 @@ _ol_format_GPX_.GPX_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.LINK_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.LINK_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'text':
|
|
|
|
'text':
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString, 'linkText'),
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString, 'linkText'),
|
|
|
|
'type':
|
|
|
|
'type':
|
|
|
|
@@ -350,18 +350,18 @@ _ol_format_GPX_.LINK_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.RTE_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.RTE_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'name': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'name': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'cmt': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'cmt': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'desc': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'desc': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'src': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'src': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'link': _ol_format_GPX_.parseLink_,
|
|
|
|
'link': GPX.parseLink_,
|
|
|
|
'number':
|
|
|
|
'number':
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readNonNegativeInteger),
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readNonNegativeInteger),
|
|
|
|
'extensions': _ol_format_GPX_.parseExtensions_,
|
|
|
|
'extensions': GPX.parseExtensions_,
|
|
|
|
'type': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'type': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'rtept': _ol_format_GPX_.parseRtePt_
|
|
|
|
'rtept': GPX.parseRtePt_
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -370,8 +370,8 @@ _ol_format_GPX_.RTE_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.RTEPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.RTEPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'ele': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'ele': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'time': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDateTime)
|
|
|
|
'time': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDateTime)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
@@ -382,18 +382,18 @@ _ol_format_GPX_.RTEPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRK_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.TRK_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'name': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'name': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'cmt': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'cmt': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'desc': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'desc': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'src': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'src': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'link': _ol_format_GPX_.parseLink_,
|
|
|
|
'link': GPX.parseLink_,
|
|
|
|
'number':
|
|
|
|
'number':
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readNonNegativeInteger),
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readNonNegativeInteger),
|
|
|
|
'type': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'type': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'extensions': _ol_format_GPX_.parseExtensions_,
|
|
|
|
'extensions': GPX.parseExtensions_,
|
|
|
|
'trkseg': _ol_format_GPX_.parseTrkSeg_
|
|
|
|
'trkseg': GPX.parseTrkSeg_
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -402,9 +402,9 @@ _ol_format_GPX_.TRK_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRKSEG_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.TRKSEG_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'trkpt': _ol_format_GPX_.parseTrkPt_
|
|
|
|
'trkpt': GPX.parseTrkPt_
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -413,8 +413,8 @@ _ol_format_GPX_.TRKSEG_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRKPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.TRKPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'ele': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'ele': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'time': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDateTime)
|
|
|
|
'time': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDateTime)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
@@ -425,8 +425,8 @@ _ol_format_GPX_.TRKPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlParser>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.WPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.WPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'ele': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'ele': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'time': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDateTime),
|
|
|
|
'time': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDateTime),
|
|
|
|
'magvar': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'magvar': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
@@ -435,7 +435,7 @@ _ol_format_GPX_.WPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
'cmt': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'cmt': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'desc': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'desc': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'src': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'src': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'link': _ol_format_GPX_.parseLink_,
|
|
|
|
'link': GPX.parseLink_,
|
|
|
|
'sym': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'sym': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'type': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'type': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'fix': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
'fix': _ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readString),
|
|
|
|
@@ -448,7 +448,7 @@ _ol_format_GPX_.WPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readDecimal),
|
|
|
|
'dgpsid':
|
|
|
|
'dgpsid':
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readNonNegativeInteger),
|
|
|
|
_ol_xml_.makeObjectPropertySetter(_ol_format_XSD_.readNonNegativeInteger),
|
|
|
|
'extensions': _ol_format_GPX_.parseExtensions_
|
|
|
|
'extensions': GPX.parseExtensions_
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -456,7 +456,7 @@ _ol_format_GPX_.WPT_PARSERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @param {Array.<ol.Feature>} features List of features.
|
|
|
|
* @param {Array.<ol.Feature>} features List of features.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.handleReadExtensions_ = function(features) {
|
|
|
|
GPX.prototype.handleReadExtensions_ = function(features) {
|
|
|
|
if (!features) {
|
|
|
|
if (!features) {
|
|
|
|
features = [];
|
|
|
|
features = [];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -482,17 +482,17 @@ _ol_format_GPX_.prototype.handleReadExtensions_ = function(features) {
|
|
|
|
* @return {ol.Feature} Feature.
|
|
|
|
* @return {ol.Feature} Feature.
|
|
|
|
* @api
|
|
|
|
* @api
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.readFeature;
|
|
|
|
GPX.prototype.readFeature;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @inheritDoc
|
|
|
|
* @inheritDoc
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.readFeatureFromNode = function(node, opt_options) {
|
|
|
|
GPX.prototype.readFeatureFromNode = function(node, opt_options) {
|
|
|
|
if (!_ol_array_.includes(_ol_format_GPX_.NAMESPACE_URIS_, node.namespaceURI)) {
|
|
|
|
if (!_ol_array_.includes(GPX.NAMESPACE_URIS_, node.namespaceURI)) {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var featureReader = _ol_format_GPX_.FEATURE_READER_[node.localName];
|
|
|
|
var featureReader = GPX.FEATURE_READER_[node.localName];
|
|
|
|
if (!featureReader) {
|
|
|
|
if (!featureReader) {
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@@ -516,19 +516,19 @@ _ol_format_GPX_.prototype.readFeatureFromNode = function(node, opt_options) {
|
|
|
|
* @return {Array.<ol.Feature>} Features.
|
|
|
|
* @return {Array.<ol.Feature>} Features.
|
|
|
|
* @api
|
|
|
|
* @api
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.readFeatures;
|
|
|
|
GPX.prototype.readFeatures;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @inheritDoc
|
|
|
|
* @inheritDoc
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.readFeaturesFromNode = function(node, opt_options) {
|
|
|
|
GPX.prototype.readFeaturesFromNode = function(node, opt_options) {
|
|
|
|
if (!_ol_array_.includes(_ol_format_GPX_.NAMESPACE_URIS_, node.namespaceURI)) {
|
|
|
|
if (!_ol_array_.includes(GPX.NAMESPACE_URIS_, node.namespaceURI)) {
|
|
|
|
return [];
|
|
|
|
return [];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (node.localName == 'gpx') {
|
|
|
|
if (node.localName == 'gpx') {
|
|
|
|
/** @type {Array.<ol.Feature>} */
|
|
|
|
/** @type {Array.<ol.Feature>} */
|
|
|
|
var features = _ol_xml_.pushParseAndPop([], _ol_format_GPX_.GPX_PARSERS_,
|
|
|
|
var features = _ol_xml_.pushParseAndPop([], GPX.GPX_PARSERS_,
|
|
|
|
node, [this.getReadOptions(node, opt_options)]);
|
|
|
|
node, [this.getReadOptions(node, opt_options)]);
|
|
|
|
if (features) {
|
|
|
|
if (features) {
|
|
|
|
this.handleReadExtensions_(features);
|
|
|
|
this.handleReadExtensions_(features);
|
|
|
|
@@ -549,7 +549,7 @@ _ol_format_GPX_.prototype.readFeaturesFromNode = function(node, opt_options) {
|
|
|
|
* @return {ol.proj.Projection} Projection.
|
|
|
|
* @return {ol.proj.Projection} Projection.
|
|
|
|
* @api
|
|
|
|
* @api
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.readProjection;
|
|
|
|
GPX.prototype.readProjection;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@@ -558,7 +558,7 @@ _ol_format_GPX_.prototype.readProjection;
|
|
|
|
* @param {Array.<*>} objectStack Node stack.
|
|
|
|
* @param {Array.<*>} objectStack Node stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.writeLink_ = function(node, value, objectStack) {
|
|
|
|
GPX.writeLink_ = function(node, value, objectStack) {
|
|
|
|
node.setAttribute('href', value);
|
|
|
|
node.setAttribute('href', value);
|
|
|
|
var context = objectStack[objectStack.length - 1];
|
|
|
|
var context = objectStack[objectStack.length - 1];
|
|
|
|
var properties = context['properties'];
|
|
|
|
var properties = context['properties'];
|
|
|
|
@@ -567,8 +567,8 @@ _ol_format_GPX_.writeLink_ = function(node, value, objectStack) {
|
|
|
|
properties['linkType']
|
|
|
|
properties['linkType']
|
|
|
|
];
|
|
|
|
];
|
|
|
|
_ol_xml_.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */ ({node: node}),
|
|
|
|
_ol_xml_.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */ ({node: node}),
|
|
|
|
_ol_format_GPX_.LINK_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
GPX.LINK_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
link, objectStack, _ol_format_GPX_.LINK_SEQUENCE_);
|
|
|
|
link, objectStack, GPX.LINK_SEQUENCE_);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -578,7 +578,7 @@ _ol_format_GPX_.writeLink_ = function(node, value, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.writeWptType_ = function(node, coordinate, objectStack) {
|
|
|
|
GPX.writeWptType_ = function(node, coordinate, objectStack) {
|
|
|
|
var context = objectStack[objectStack.length - 1];
|
|
|
|
var context = objectStack[objectStack.length - 1];
|
|
|
|
var parentNode = context.node;
|
|
|
|
var parentNode = context.node;
|
|
|
|
var namespaceURI = parentNode.namespaceURI;
|
|
|
|
var namespaceURI = parentNode.namespaceURI;
|
|
|
|
@@ -607,12 +607,12 @@ _ol_format_GPX_.writeWptType_ = function(node, coordinate, objectStack) {
|
|
|
|
// pass
|
|
|
|
// pass
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var orderedKeys = (node.nodeName == 'rtept') ?
|
|
|
|
var orderedKeys = (node.nodeName == 'rtept') ?
|
|
|
|
_ol_format_GPX_.RTEPT_TYPE_SEQUENCE_[namespaceURI] :
|
|
|
|
GPX.RTEPT_TYPE_SEQUENCE_[namespaceURI] :
|
|
|
|
_ol_format_GPX_.WPT_TYPE_SEQUENCE_[namespaceURI];
|
|
|
|
GPX.WPT_TYPE_SEQUENCE_[namespaceURI];
|
|
|
|
var values = _ol_xml_.makeSequence(properties, orderedKeys);
|
|
|
|
var values = _ol_xml_.makeSequence(properties, orderedKeys);
|
|
|
|
_ol_xml_.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */
|
|
|
|
_ol_xml_.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */
|
|
|
|
({node: node, 'properties': properties}),
|
|
|
|
({node: node, 'properties': properties}),
|
|
|
|
_ol_format_GPX_.WPT_TYPE_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
GPX.WPT_TYPE_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
values, objectStack, orderedKeys);
|
|
|
|
values, objectStack, orderedKeys);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -623,7 +623,7 @@ _ol_format_GPX_.writeWptType_ = function(node, coordinate, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.writeRte_ = function(node, feature, objectStack) {
|
|
|
|
GPX.writeRte_ = function(node, feature, objectStack) {
|
|
|
|
var options = /** @type {olx.format.WriteOptions} */ (objectStack[0]);
|
|
|
|
var options = /** @type {olx.format.WriteOptions} */ (objectStack[0]);
|
|
|
|
var properties = feature.getProperties();
|
|
|
|
var properties = feature.getProperties();
|
|
|
|
var context = {node: node, 'properties': properties};
|
|
|
|
var context = {node: node, 'properties': properties};
|
|
|
|
@@ -635,10 +635,10 @@ _ol_format_GPX_.writeRte_ = function(node, feature, objectStack) {
|
|
|
|
properties['rtept'] = geometry.getCoordinates();
|
|
|
|
properties['rtept'] = geometry.getCoordinates();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var parentNode = objectStack[objectStack.length - 1].node;
|
|
|
|
var parentNode = objectStack[objectStack.length - 1].node;
|
|
|
|
var orderedKeys = _ol_format_GPX_.RTE_SEQUENCE_[parentNode.namespaceURI];
|
|
|
|
var orderedKeys = GPX.RTE_SEQUENCE_[parentNode.namespaceURI];
|
|
|
|
var values = _ol_xml_.makeSequence(properties, orderedKeys);
|
|
|
|
var values = _ol_xml_.makeSequence(properties, orderedKeys);
|
|
|
|
_ol_xml_.pushSerializeAndPop(context,
|
|
|
|
_ol_xml_.pushSerializeAndPop(context,
|
|
|
|
_ol_format_GPX_.RTE_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
GPX.RTE_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
values, objectStack, orderedKeys);
|
|
|
|
values, objectStack, orderedKeys);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -649,7 +649,7 @@ _ol_format_GPX_.writeRte_ = function(node, feature, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.writeTrk_ = function(node, feature, objectStack) {
|
|
|
|
GPX.writeTrk_ = function(node, feature, objectStack) {
|
|
|
|
var options = /** @type {olx.format.WriteOptions} */ (objectStack[0]);
|
|
|
|
var options = /** @type {olx.format.WriteOptions} */ (objectStack[0]);
|
|
|
|
var properties = feature.getProperties();
|
|
|
|
var properties = feature.getProperties();
|
|
|
|
/** @type {ol.XmlNodeStackItem} */
|
|
|
|
/** @type {ol.XmlNodeStackItem} */
|
|
|
|
@@ -661,10 +661,10 @@ _ol_format_GPX_.writeTrk_ = function(node, feature, objectStack) {
|
|
|
|
properties['trkseg'] = geometry.getLineStrings();
|
|
|
|
properties['trkseg'] = geometry.getLineStrings();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
var parentNode = objectStack[objectStack.length - 1].node;
|
|
|
|
var parentNode = objectStack[objectStack.length - 1].node;
|
|
|
|
var orderedKeys = _ol_format_GPX_.TRK_SEQUENCE_[parentNode.namespaceURI];
|
|
|
|
var orderedKeys = GPX.TRK_SEQUENCE_[parentNode.namespaceURI];
|
|
|
|
var values = _ol_xml_.makeSequence(properties, orderedKeys);
|
|
|
|
var values = _ol_xml_.makeSequence(properties, orderedKeys);
|
|
|
|
_ol_xml_.pushSerializeAndPop(context,
|
|
|
|
_ol_xml_.pushSerializeAndPop(context,
|
|
|
|
_ol_format_GPX_.TRK_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
GPX.TRK_SERIALIZERS_, _ol_xml_.OBJECT_PROPERTY_NODE_FACTORY,
|
|
|
|
values, objectStack, orderedKeys);
|
|
|
|
values, objectStack, orderedKeys);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -675,12 +675,12 @@ _ol_format_GPX_.writeTrk_ = function(node, feature, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.writeTrkSeg_ = function(node, lineString, objectStack) {
|
|
|
|
GPX.writeTrkSeg_ = function(node, lineString, objectStack) {
|
|
|
|
/** @type {ol.XmlNodeStackItem} */
|
|
|
|
/** @type {ol.XmlNodeStackItem} */
|
|
|
|
var context = {node: node, 'geometryLayout': lineString.getLayout(),
|
|
|
|
var context = {node: node, 'geometryLayout': lineString.getLayout(),
|
|
|
|
'properties': {}};
|
|
|
|
'properties': {}};
|
|
|
|
_ol_xml_.pushSerializeAndPop(context,
|
|
|
|
_ol_xml_.pushSerializeAndPop(context,
|
|
|
|
_ol_format_GPX_.TRKSEG_SERIALIZERS_, _ol_format_GPX_.TRKSEG_NODE_FACTORY_,
|
|
|
|
GPX.TRKSEG_SERIALIZERS_, GPX.TRKSEG_NODE_FACTORY_,
|
|
|
|
lineString.getCoordinates(), objectStack);
|
|
|
|
lineString.getCoordinates(), objectStack);
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -691,7 +691,7 @@ _ol_format_GPX_.writeTrkSeg_ = function(node, lineString, objectStack) {
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @param {Array.<*>} objectStack Object stack.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.writeWpt_ = function(node, feature, objectStack) {
|
|
|
|
GPX.writeWpt_ = function(node, feature, objectStack) {
|
|
|
|
var options = /** @type {olx.format.WriteOptions} */ (objectStack[0]);
|
|
|
|
var options = /** @type {olx.format.WriteOptions} */ (objectStack[0]);
|
|
|
|
var context = objectStack[objectStack.length - 1];
|
|
|
|
var context = objectStack[objectStack.length - 1];
|
|
|
|
context['properties'] = feature.getProperties();
|
|
|
|
context['properties'] = feature.getProperties();
|
|
|
|
@@ -700,7 +700,7 @@ _ol_format_GPX_.writeWpt_ = function(node, feature, objectStack) {
|
|
|
|
geometry = /** @type {ol.geom.Point} */
|
|
|
|
geometry = /** @type {ol.geom.Point} */
|
|
|
|
(FeatureFormat.transformWithOptions(geometry, true, options));
|
|
|
|
(FeatureFormat.transformWithOptions(geometry, true, options));
|
|
|
|
context['geometryLayout'] = geometry.getLayout();
|
|
|
|
context['geometryLayout'] = geometry.getLayout();
|
|
|
|
_ol_format_GPX_.writeWptType_(node, geometry.getCoordinates(), objectStack);
|
|
|
|
GPX.writeWptType_(node, geometry.getCoordinates(), objectStack);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
@@ -710,15 +710,15 @@ _ol_format_GPX_.writeWpt_ = function(node, feature, objectStack) {
|
|
|
|
* @type {Array.<string>}
|
|
|
|
* @type {Array.<string>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.LINK_SEQUENCE_ = ['text', 'type'];
|
|
|
|
GPX.LINK_SEQUENCE_ = ['text', 'type'];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.LINK_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.LINK_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'text': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'text': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode)
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
@@ -729,8 +729,8 @@ _ol_format_GPX_.LINK_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.RTE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.RTE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, [
|
|
|
|
GPX.NAMESPACE_URIS_, [
|
|
|
|
'name', 'cmt', 'desc', 'src', 'link', 'number', 'type', 'rtept'
|
|
|
|
'name', 'cmt', 'desc', 'src', 'link', 'number', 'type', 'rtept'
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
@@ -740,18 +740,18 @@ _ol_format_GPX_.RTE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.RTE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.RTE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'name': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'name': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'cmt': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'cmt': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'desc': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'desc': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'src': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'src': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'link': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeLink_),
|
|
|
|
'link': _ol_xml_.makeChildAppender(GPX.writeLink_),
|
|
|
|
'number': _ol_xml_.makeChildAppender(
|
|
|
|
'number': _ol_xml_.makeChildAppender(
|
|
|
|
_ol_format_XSD_.writeNonNegativeIntegerTextNode),
|
|
|
|
_ol_format_XSD_.writeNonNegativeIntegerTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'rtept': _ol_xml_.makeArraySerializer(_ol_xml_.makeChildAppender(
|
|
|
|
'rtept': _ol_xml_.makeArraySerializer(_ol_xml_.makeChildAppender(
|
|
|
|
_ol_format_GPX_.writeWptType_))
|
|
|
|
GPX.writeWptType_))
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -760,8 +760,8 @@ _ol_format_GPX_.RTE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.RTEPT_TYPE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.RTEPT_TYPE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, [
|
|
|
|
GPX.NAMESPACE_URIS_, [
|
|
|
|
'ele', 'time'
|
|
|
|
'ele', 'time'
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
@@ -771,8 +771,8 @@ _ol_format_GPX_.RTEPT_TYPE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRK_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.TRK_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, [
|
|
|
|
GPX.NAMESPACE_URIS_, [
|
|
|
|
'name', 'cmt', 'desc', 'src', 'link', 'number', 'type', 'trkseg'
|
|
|
|
'name', 'cmt', 'desc', 'src', 'link', 'number', 'type', 'trkseg'
|
|
|
|
]);
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
|
|
@@ -782,18 +782,18 @@ _ol_format_GPX_.TRK_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRK_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.TRK_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'name': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'name': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'cmt': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'cmt': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'desc': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'desc': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'src': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'src': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'link': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeLink_),
|
|
|
|
'link': _ol_xml_.makeChildAppender(GPX.writeLink_),
|
|
|
|
'number': _ol_xml_.makeChildAppender(
|
|
|
|
'number': _ol_xml_.makeChildAppender(
|
|
|
|
_ol_format_XSD_.writeNonNegativeIntegerTextNode),
|
|
|
|
_ol_format_XSD_.writeNonNegativeIntegerTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'trkseg': _ol_xml_.makeArraySerializer(_ol_xml_.makeChildAppender(
|
|
|
|
'trkseg': _ol_xml_.makeArraySerializer(_ol_xml_.makeChildAppender(
|
|
|
|
_ol_format_GPX_.writeTrkSeg_))
|
|
|
|
GPX.writeTrkSeg_))
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -802,7 +802,7 @@ _ol_format_GPX_.TRK_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {function(*, Array.<*>, string=): (Node|undefined)}
|
|
|
|
* @type {function(*, Array.<*>, string=): (Node|undefined)}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRKSEG_NODE_FACTORY_ = _ol_xml_.makeSimpleNodeFactory('trkpt');
|
|
|
|
GPX.TRKSEG_NODE_FACTORY_ = _ol_xml_.makeSimpleNodeFactory('trkpt');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@@ -810,9 +810,9 @@ _ol_format_GPX_.TRKSEG_NODE_FACTORY_ = _ol_xml_.makeSimpleNodeFactory('trkpt');
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.TRKSEG_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.TRKSEG_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'trkpt': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeWptType_)
|
|
|
|
'trkpt': _ol_xml_.makeChildAppender(GPX.writeWptType_)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -821,8 +821,8 @@ _ol_format_GPX_.TRKSEG_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @type {Object.<string, Array.<string>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.WPT_TYPE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.WPT_TYPE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, [
|
|
|
|
GPX.NAMESPACE_URIS_, [
|
|
|
|
'ele', 'time', 'magvar', 'geoidheight', 'name', 'cmt', 'desc', 'src',
|
|
|
|
'ele', 'time', 'magvar', 'geoidheight', 'name', 'cmt', 'desc', 'src',
|
|
|
|
'link', 'sym', 'type', 'fix', 'sat', 'hdop', 'vdop', 'pdop',
|
|
|
|
'link', 'sym', 'type', 'fix', 'sat', 'hdop', 'vdop', 'pdop',
|
|
|
|
'ageofdgpsdata', 'dgpsid'
|
|
|
|
'ageofdgpsdata', 'dgpsid'
|
|
|
|
@@ -833,8 +833,8 @@ _ol_format_GPX_.WPT_TYPE_SEQUENCE_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.WPT_TYPE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.WPT_TYPE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'ele': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeDecimalTextNode),
|
|
|
|
'ele': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeDecimalTextNode),
|
|
|
|
'time': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeDateTimeTextNode),
|
|
|
|
'time': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeDateTimeTextNode),
|
|
|
|
'magvar': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeDecimalTextNode),
|
|
|
|
'magvar': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeDecimalTextNode),
|
|
|
|
@@ -844,7 +844,7 @@ _ol_format_GPX_.WPT_TYPE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
'cmt': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'cmt': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'desc': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'desc': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'src': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'src': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'link': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeLink_),
|
|
|
|
'link': _ol_xml_.makeChildAppender(GPX.writeLink_),
|
|
|
|
'sym': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'sym': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'type': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'fix': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
'fix': _ol_xml_.makeChildAppender(_ol_format_XSD_.writeStringTextNode),
|
|
|
|
@@ -865,7 +865,7 @@ _ol_format_GPX_.WPT_TYPE_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @type {Object.<string, string>}
|
|
|
|
* @type {Object.<string, string>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.GEOMETRY_TYPE_TO_NODENAME_ = {
|
|
|
|
GPX.GEOMETRY_TYPE_TO_NODENAME_ = {
|
|
|
|
'Point': 'wpt',
|
|
|
|
'Point': 'wpt',
|
|
|
|
'LineString': 'rte',
|
|
|
|
'LineString': 'rte',
|
|
|
|
'MultiLineString': 'trk'
|
|
|
|
'MultiLineString': 'trk'
|
|
|
|
@@ -880,10 +880,10 @@ _ol_format_GPX_.GEOMETRY_TYPE_TO_NODENAME_ = {
|
|
|
|
* @return {Node|undefined} Node.
|
|
|
|
* @return {Node|undefined} Node.
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.GPX_NODE_FACTORY_ = function(value, objectStack, opt_nodeName) {
|
|
|
|
GPX.GPX_NODE_FACTORY_ = function(value, objectStack, opt_nodeName) {
|
|
|
|
var geometry = /** @type {ol.Feature} */ (value).getGeometry();
|
|
|
|
var geometry = /** @type {ol.Feature} */ (value).getGeometry();
|
|
|
|
if (geometry) {
|
|
|
|
if (geometry) {
|
|
|
|
var nodeName = _ol_format_GPX_.GEOMETRY_TYPE_TO_NODENAME_[geometry.getType()];
|
|
|
|
var nodeName = GPX.GEOMETRY_TYPE_TO_NODENAME_[geometry.getType()];
|
|
|
|
if (nodeName) {
|
|
|
|
if (nodeName) {
|
|
|
|
var parentNode = objectStack[objectStack.length - 1].node;
|
|
|
|
var parentNode = objectStack[objectStack.length - 1].node;
|
|
|
|
return _ol_xml_.createElementNS(parentNode.namespaceURI, nodeName);
|
|
|
|
return _ol_xml_.createElementNS(parentNode.namespaceURI, nodeName);
|
|
|
|
@@ -897,11 +897,11 @@ _ol_format_GPX_.GPX_NODE_FACTORY_ = function(value, objectStack, opt_nodeName) {
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @type {Object.<string, Object.<string, ol.XmlSerializer>>}
|
|
|
|
* @private
|
|
|
|
* @private
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.GPX_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
GPX.GPX_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
_ol_format_GPX_.NAMESPACE_URIS_, {
|
|
|
|
GPX.NAMESPACE_URIS_, {
|
|
|
|
'rte': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeRte_),
|
|
|
|
'rte': _ol_xml_.makeChildAppender(GPX.writeRte_),
|
|
|
|
'trk': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeTrk_),
|
|
|
|
'trk': _ol_xml_.makeChildAppender(GPX.writeTrk_),
|
|
|
|
'wpt': _ol_xml_.makeChildAppender(_ol_format_GPX_.writeWpt_)
|
|
|
|
'wpt': _ol_xml_.makeChildAppender(GPX.writeWpt_)
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -916,7 +916,7 @@ _ol_format_GPX_.GPX_SERIALIZERS_ = _ol_xml_.makeStructureNS(
|
|
|
|
* @return {string} Result.
|
|
|
|
* @return {string} Result.
|
|
|
|
* @api
|
|
|
|
* @api
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.writeFeatures;
|
|
|
|
GPX.prototype.writeFeatures;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@@ -930,7 +930,7 @@ _ol_format_GPX_.prototype.writeFeatures;
|
|
|
|
* @override
|
|
|
|
* @override
|
|
|
|
* @api
|
|
|
|
* @api
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
_ol_format_GPX_.prototype.writeFeaturesNode = function(features, opt_options) {
|
|
|
|
GPX.prototype.writeFeaturesNode = function(features, opt_options) {
|
|
|
|
opt_options = this.adaptOptions(opt_options);
|
|
|
|
opt_options = this.adaptOptions(opt_options);
|
|
|
|
//FIXME Serialize metadata
|
|
|
|
//FIXME Serialize metadata
|
|
|
|
var gpx = _ol_xml_.createElementNS('http://www.topografix.com/GPX/1/1', 'gpx');
|
|
|
|
var gpx = _ol_xml_.createElementNS('http://www.topografix.com/GPX/1/1', 'gpx');
|
|
|
|
@@ -938,13 +938,13 @@ _ol_format_GPX_.prototype.writeFeaturesNode = function(features, opt_options) {
|
|
|
|
var xmlSchemaInstanceUri = 'http://www.w3.org/2001/XMLSchema-instance';
|
|
|
|
var xmlSchemaInstanceUri = 'http://www.w3.org/2001/XMLSchema-instance';
|
|
|
|
_ol_xml_.setAttributeNS(gpx, xmlnsUri, 'xmlns:xsi', xmlSchemaInstanceUri);
|
|
|
|
_ol_xml_.setAttributeNS(gpx, xmlnsUri, 'xmlns:xsi', xmlSchemaInstanceUri);
|
|
|
|
_ol_xml_.setAttributeNS(gpx, xmlSchemaInstanceUri, 'xsi:schemaLocation',
|
|
|
|
_ol_xml_.setAttributeNS(gpx, xmlSchemaInstanceUri, 'xsi:schemaLocation',
|
|
|
|
_ol_format_GPX_.SCHEMA_LOCATION_);
|
|
|
|
GPX.SCHEMA_LOCATION_);
|
|
|
|
gpx.setAttribute('version', '1.1');
|
|
|
|
gpx.setAttribute('version', '1.1');
|
|
|
|
gpx.setAttribute('creator', 'OpenLayers');
|
|
|
|
gpx.setAttribute('creator', 'OpenLayers');
|
|
|
|
|
|
|
|
|
|
|
|
_ol_xml_.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */
|
|
|
|
_ol_xml_.pushSerializeAndPop(/** @type {ol.XmlNodeStackItem} */
|
|
|
|
({node: gpx}), _ol_format_GPX_.GPX_SERIALIZERS_,
|
|
|
|
({node: gpx}), GPX.GPX_SERIALIZERS_,
|
|
|
|
_ol_format_GPX_.GPX_NODE_FACTORY_, features, [opt_options]);
|
|
|
|
GPX.GPX_NODE_FACTORY_, features, [opt_options]);
|
|
|
|
return gpx;
|
|
|
|
return gpx;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
export default _ol_format_GPX_;
|
|
|
|
export default GPX;
|
|
|
|
|