using System.Windows; using ThinkGeo.Core; using ThinkGeo.UI.Wpf; namespace TestThinkGeoRotate { /// /// Interaction logic for MainWindow.xaml /// public partial class MainWindow : Window { InMemoryFeatureLayer fl = new InMemoryFeatureLayer(); public MainWindow() { InitializeComponent(); } private void thinkGeoMap_Loaded(object sender, RoutedEventArgs e) { thinkGeoMap.MapUnit = GeographyUnit.Meter; // Add Background mapping LayerOverlay mastermapOverlay = new LayerOverlay(); mastermapOverlay.TileType = TileType.MultiTile; mastermapOverlay.TileBuffer = 1; mastermapOverlay.OpenAsync(); // MasterMapShapeFiles are in EPSG 27700 string fileloc = @"C:\Mapping\MasterMapShapeFiles\NZ\BoundaryLine"; string filepattern = System.IO.Path.Combine(fileloc, "*.shp"); string indexpattern = System.IO.Path.Combine(fileloc, "*.mid?"); MultipleShapeFileFeatureLayer layer = new MultipleShapeFileFeatureLayer(filepattern, indexpattern); layer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyle.CreateSimpleLineStyle(GeoColors.Black, 2, true); layer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; mastermapOverlay.Layers.Add(layer); thinkGeoMap.Overlays.Add(mastermapOverlay); // Add Target Overlay FeatureLayerWpfDrawingOverlay targetOverlay = new FeatureLayerWpfDrawingOverlay(); //LayerOverlay targetOverlay = new LayerOverlay(); // <-- Using a normal LayerOverlay works fine thinkGeoMap.Overlays.Add(targetOverlay); var path = @"C:\Configs\AppSymbols\target_marker.png"; var targetImage = new GeoImage(path); var targetPointStyle = new PointStyle(targetImage); ValueStyle vs = new ValueStyle(); vs.ColumnName = "MarkerType"; vs.ValueItems.Add(new ValueItem("Incident", targetPointStyle)); fl.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(vs); fl.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; targetOverlay.FeatureLayers.Add(fl); //targetOverlay.Layers.Add(fl); // <-- required if using a normal LayerOverlay // Add target PointShape ps = new PointShape(new Vertex(424102,567941)); // Coordinates in NorthEast UK (valid for EPSG 27700) Feature f = new Feature(ps); f.ColumnValues["MarkerType"] = "Incident"; fl.InternalFeatures.Add(f); layer.Open(); var bb = layer.GetBoundingBox(); thinkGeoMap.CurrentExtent = bb; } } }