@@ -223,7 +223,7 @@ bool QgsGPXProvider::getNextFeature(QgsFeature* feature,
223
223
char * geo = new char [21 ];
224
224
std::memset (geo, 0 , 21 );
225
225
geo[0 ] = endian ();
226
- geo[1 ] = 1 ;
226
+ geo[geo[ 0 ] == NDR ? 1 : 4 ] = QGis::WKBPoint ;
227
227
std::memcpy (geo+5 , &wpt->lon , sizeof (double ));
228
228
std::memcpy (geo+13 , &wpt->lat , sizeof (double ));
229
229
feature->setGeometryAndOwnership ((unsigned char *)geo, sizeof (wkbPoint));
@@ -288,7 +288,7 @@ bool QgsGPXProvider::getNextFeature(QgsFeature* feature,
288
288
char * geo = new char [9 + 16 * nPoints];
289
289
std::memset (geo, 0 , 9 + 16 * nPoints);
290
290
geo[0 ] = endian ();
291
- geo[1 ] = 2 ;
291
+ geo[geo[ 0 ] == NDR ? 1 : 4 ] = QGis::WKBLineString ;
292
292
std::memcpy (geo + 5 , &nPoints, 4 );
293
293
for (int i = 0 ; i < rte->points .size (); ++i) {
294
294
std::memcpy (geo + 9 + 16 * i, &rte->points [i].lon , sizeof (double ));
@@ -347,7 +347,7 @@ bool QgsGPXProvider::getNextFeature(QgsFeature* feature,
347
347
char * geo = new char [9 + 16 * nPoints];
348
348
std::memset (geo, 0 , 9 + 16 * nPoints);
349
349
geo[0 ] = endian ();
350
- geo[1 ] = 2 ;
350
+ geo[geo[ 0 ] == NDR ? 1 : 4 ] = QGis::WKBLineString ;
351
351
std::memcpy (geo + 5 , &nPoints, 4 );
352
352
for (int i = 0 ; i < nPoints; ++i) {
353
353
std::memcpy (geo + 9 + 16 * i, &trk->segments [0 ].points [i].lon , sizeof (double ));
@@ -574,7 +574,7 @@ bool QgsGPXProvider::addFeature(QgsFeature* f) {
574
574
const std::vector<QgsFeatureAttribute>& attrs (f->attributeMap ());
575
575
576
576
// is it a waypoint?
577
- if (mFeatureType == WaypointType && geo != NULL && geo[1 ] == 1 ) {
577
+ if (mFeatureType == WaypointType && geo != NULL && geo[geo[ 0 ] == NDR ? 1 : 4 ] == QGis::WKBPoint ) {
578
578
579
579
// add geometry
580
580
Waypoint wpt;
@@ -600,7 +600,7 @@ bool QgsGPXProvider::addFeature(QgsFeature* f) {
600
600
}
601
601
602
602
// is it a route?
603
- if (mFeatureType == RouteType && geo != NULL && geo[1 ] == 2 ) {
603
+ if (mFeatureType == RouteType && geo != NULL && geo[geo[ 0 ] == NDR ? 1 : 4 ] == QGis::WKBLineString ) {
604
604
605
605
Route rte;
606
606
@@ -643,7 +643,7 @@ bool QgsGPXProvider::addFeature(QgsFeature* f) {
643
643
}
644
644
645
645
// is it a track?
646
- if (mFeatureType == TrackType && geo != NULL && geo[1 ] == 2 ) {
646
+ if (mFeatureType == TrackType && geo != NULL && geo[geo[ 0 ] == NDR ? 1 : 4 ] == QGis::WKBLineString ) {
647
647
648
648
Track trk;
649
649
TrackSegment trkseg;
0 commit comments