Beispiel #1
0
        private PoI CreatePoI(Point pos, TrackPoiType trackPoiType)
        {
            var layer = Poi.Layer;
            if (!string.IsNullOrEmpty(layer))
            {
                var index = layer.IndexOf("_", StringComparison.InvariantCultureIgnoreCase);
                if (index > 0) layer = layer.Substring(0, index);
            }
            var poi = new PoI
            {
                Id        = Guid.NewGuid(),
                Name      = trackPoiType.Humanize(), 
                Service   = Model.Service,
                ContentId = trackPoiType.ToString(),
                UserId    = Poi.Id.ToString(),
                Layer     = layer,
                Style     = new PoIStyle
                {
                    DrawingMode       = DrawingModes.Point,
                    FillColor         = Colors.Gold,
                    StrokeColor       = Colors.Black,
                    CallOutFillColor  = Colors.White,
                    CallOutForeground = Colors.Black,
                    StrokeOpacity     = 1,
                    StrokeWidth       = 2,
                    InnerTextLabel    = "InnerText",
                    TitleMode         = TitleModes.Bottom,
                    TapMode           = TapMode.CallOutPopup,
                    InnerTextColor    = Colors.Black, 
                    CanEdit           = false
                },
                Position              = new Position(pos.X, pos.Y),
                MetaInfo              = new MetaInfoCollection
                {
                    new MetaInfo { IsEditable = false, Label = "Name", Title = "Name", Type = MetaTypes.text, VisibleInCallOut = true }
                }
            };

            switch (trackPoiType)
            {
                case TrackPoiType.Start:
                    poi.Labels["InnerText"] = "α";
                    break;
                case TrackPoiType.End:
                    poi.Labels["InnerText"] = "Ω";
                    break;
                case TrackPoiType.WayPoint:
                    poi.Labels["InnerText"] = "*";
                    break;
            }

            Execute.OnUIThread(() =>
            {
                poi.TriggerUpdated();
                Model.Service.PoIs.Add(poi);
            });

            return poi;
        }
Beispiel #2
0
        private PoI CreateSegment(IEnumerable<Point> positions)
        {
            var layer = Poi.Layer;
            if (!string.IsNullOrEmpty(layer))
            {
                var index = layer.IndexOf("_", StringComparison.InvariantCultureIgnoreCase);
                if (index > 0) layer = layer.Substring(0, index);
            }
            var poi = new PoI
            {
                Id        = Guid.NewGuid(),
                //Name      = trackPoiType.Humanize(),
                Service   = Model.Service,
                //ContentId = trackPoiType.ToString(),
                UserId    = Poi.Id.ToString(),
                Layer     = layer,
                Style     = new PoIStyle
                {
                    DrawingMode       = DrawingModes.Polyline,
                    StrokeColor       = Colors.Blue,
                    CallOutFillColor  = Colors.White,
                    CallOutForeground = Colors.Black,
                    StrokeOpacity     = 1,
                    StrokeWidth       = 4,
                    TitleMode         = TitleModes.Bottom,
                    TapMode           = TapMode.CallOutPopup,
                    CanEdit           = false
                },
                MetaInfo              = new MetaInfoCollection()
                {
                    new MetaInfo { IsEditable = false, Label = "Name", Title = "Name", Type = MetaTypes.text, VisibleInCallOut = true }
                }
            };
            foreach (var p in positions) poi.Points.Add(p);
            
            Execute.OnUIThread(() =>
            {
                poi.TriggerUpdated();
                Model.Service.PoIs.Add(poi);
            });

            return poi;
        }