====== Source Code WpfDesktopEditionSample CombiningOverlays 101011.zip ======
====App.xaml.cs====
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
namespace CombiningOverlays
{
///
/// Interaction logic for App.xaml
///
public partial class App : Application
{
}
}
====TestWindow.xaml.cs====
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using ThinkGeo.MapSuite.Core;
using ThinkGeo.MapSuite.WpfDesktopEdition;
namespace CombiningOverlays
{
///
/// Interaction logic for TestWindow.xaml
///
public partial class TestWindow : Window
{
public TestWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
//Sets the correct map unit and the extent of the map.
wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
wpfMap1.CurrentExtent = new RectangleShape(-131.22, 55.05, -54.03, 16.91);
//Adds the WorldMapKit as a background.
WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay();
wpfMap1.Overlays.Add(worldMapKitOverlay);
//Adds the Shapefile MajorCities as a ShapeFileFeatureLayer between zoom levels 01 and 04.
ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(@"..\..\Data\MajorCities.shp");
shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Turquoise, 8, GeoColor.StandardColors.Black);
shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level04;
//Adds the ShapeFileFeatureLayer to an LayerOverlay.
LayerOverlay layerOverlay = new LayerOverlay();
layerOverlay.Layers.Add(shapeFileFeatureLayer);
wpfMap1.Overlays.Add(layerOverlay);
//Uses FeatureSourceMakerOverlay between zoom levels 04 and 20.
FeatureSourceMarkerOverlay markerOverlay = new FeatureSourceMarkerOverlay();
//Takes the ShapeFileFeatureSource of the ShapeFileFeatureLayer as a FeatureSource of the MarkerOverlay.
ShapeFileFeatureSource shapeFileFeatureSource = (ShapeFileFeatureSource)shapeFileFeatureLayer.FeatureSource;
markerOverlay.FeatureSource = shapeFileFeatureSource;
//Here we take advantage of the many properties of MarkerOverlay such as ImageSource and Tooltip.
markerOverlay.ZoomLevelSet.ZoomLevel04.DefaultPointMarkerStyle.ImageSource = new BitmapImage(new Uri("/Resources/AQUA.png", UriKind.RelativeOrAbsolute));
markerOverlay.ZoomLevelSet.ZoomLevel04.DefaultPointMarkerStyle.Width = 20;
markerOverlay.ZoomLevelSet.ZoomLevel04.DefaultPointMarkerStyle.Height = 34;
markerOverlay.ZoomLevelSet.ZoomLevel04.DefaultPointMarkerStyle.YOffset = -17;
markerOverlay.ZoomLevelSet.ZoomLevel04.DefaultPointMarkerStyle.ToolTip = "This is [#AREANAME#].";
markerOverlay.ZoomLevelSet.ZoomLevel04.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20;
wpfMap1.Overlays.Add("MarkerOverlay", markerOverlay);
wpfMap1.Refresh();
}
private void wpfMap1_MouseMove(object sender, MouseEventArgs e)
{
//Gets the PointShape in world coordinates from screen coordinates.
Point point = e.MouseDevice.GetPosition(null);
ScreenPointF screenPointF = new ScreenPointF((float)point.X, (float)point.Y);
PointShape pointShape = ExtentHelper.ToWorldCoordinate(wpfMap1.CurrentExtent, screenPointF, (float)wpfMap1.Width, (float)wpfMap1.Height);
textBox1.Text = "X: " + Math.Round(pointShape.X) +
" Y: " + Math.Round(pointShape.Y);
}
}
}