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; }
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; }