/// <summary> /// create features on layer based on gpxFile object /// </summary> /// <param name="gpxFile"></param> /// <param name="oLayerGPXPolylines"></param> /// <param name="oLayerGPXSymbols"></param> public static void makeMapLayersFromGPX(GPXFile gpxFile, LayerVectors oLayerGPXPolylines, LayerVectors oLayerGPXSymbols) { oLayerGPXSymbols.FeaturesClear(); oLayerGPXPolylines.FeaturesClear(); // fill layers with data if (gpxFile != null) { for (int iTrk = 0; iTrk < gpxFile.trks.Count; iTrk++) { GPXTrk trk = gpxFile.trks[iTrk]; for (int iSeg = 0; iSeg < trk.trkSeg.Count; iSeg++) { GPXTrkSeg seg = trk.trkSeg[iSeg]; List<DPoint> oPoints1 = new List<DPoint>(); for (int iWpt = 0; iWpt < seg.wpts.Count; iWpt++) { GpxWpt wpt = seg.wpts[iWpt]; DPoint oPoint = new DPoint(wpt.lon, wpt.lat); oPoint.Selected = wpt.selected; oPoints1.Add(oPoint); // add gpx point Feature oSymbol = FeatureFactory.CreateSymbol(wpt.lon, wpt.lat, (uint)0xFF00FF00); oSymbol.Tag = oPoint; oLayerGPXSymbols.FeaturesAdd(oSymbol); // link point to symbol and symbol to point oPoint.Tag = oSymbol; // fill data oSymbol.setField("lat", wpt.lat); oSymbol.setField("lon", wpt.lon); oSymbol.setField("ele", wpt.ele); oSymbol.setField("time", wpt.time); } if (oPoints1.Count > 0) { PolylineFeature oPolyline1 = FeatureFactory.CreatePolyline(oPoints1, new Style(Color.Green)); oLayerGPXPolylines.FeaturesAdd(oPolyline1); } } } } }