兰保明

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
View Code
<esri:Map x:Name="MyMap" WrapAround="True" MouseMove="MyMap_MouseMove">
<esri:ArcGISTiledMapServiceLayer ID="MyLayer"
Url
="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"/>
</esri:Map>

<Grid Width="355" Height="65" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,15,15,0" >
<Rectangle Stroke="Gray" RadiusX="10" RadiusY="10" Fill="#77919191" Margin="0,0,0,6" >
<Rectangle.Effect>
<DropShadowEffect/>
</Rectangle.Effect>
</Rectangle>
<Rectangle Fill="#FFFFFFFF" Stroke="DarkGray" RadiusX="5" RadiusY="5" Margin="10,10,10,15" />
<StackPanel Canvas.Left="20" Canvas.Top="14" Margin="20,14,10,0">
<TextBlock x:Name="ScreenCoordsTextBlock"
HorizontalAlignment
="Left" VerticalAlignment="Center" Text="Screen Coords: " TextWrapping="Wrap" FontWeight="Bold" />
<TextBlock x:Name="MapCoordsTextBlock"
HorizontalAlignment
="Left" VerticalAlignment="Center" Text="Map Coords: " TextWrapping="Wrap" FontWeight="Bold" />
</StackPanel>
</Grid>


private void MyMap_MouseMove(object sender, System.Windows.Input.MouseEventArgs args)
{
if (MyMap.Extent != null)
{
System.Windows.Point screenPoint
= args.GetPosition(MyMap);
ScreenCoordsTextBlock.Text
= string.Format("Screen Coords: X = {0}, Y = {1}",
screenPoint.X, screenPoint.Y);

ESRI.ArcGIS.Client.Geometry.MapPoint mapPoint
= MyMap.ScreenToMap(screenPoint);
if (MyMap.WrapAroundIsActive)
mapPoint
= ESRI.ArcGIS.Client.Geometry.Geometry.NormalizeCentralMeridian(mapPoint) as ESRI.ArcGIS.Client.Geometry.MapPoint;
MapCoordsTextBlock.Text
= string.Format("Map Coords: X = {0}, Y = {1}",
Math.Round(mapPoint.X,
4), Math.Round(mapPoint.Y, 4));
}
}

posted on 2011-07-27 09:13  兰保明  阅读(926)  评论(0编辑  收藏  举报