<Grid x:Name="LayoutRoot"> <Grid.Resources> <esri:SimpleFillSymbol x:Key="RedFillSymbol" Fill="#66FF0000" BorderBrush="Red" BorderThickness="2" /> <esri:Editor x:Key="MyEditor" Map="{Binding ElementName=MyMap}" EditCompleted="Editor_EditCompleted"/> </Grid.Resources> <esri:Map x:Name="MyMap" WrapAround="True" Background="White"> <esri:ArcGISTiledMapServiceLayer ID="PhysicalTiledLayer" Url="http://services.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer"/> <esri:GraphicsLayer ID="MyGraphicsLayer" MouseLeftButtonDown="GraphicsLayer_MouseLeftButtonDown" /> </esri:Map> <StackPanel VerticalAlignment="Top" HorizontalAlignment="Center"> <Button Content="Add" DataContext="{StaticResource MyEditor}" Command="{Binding Add}" CommandParameter="{StaticResource RedFillSymbol}"/> <Button Content="Zoom" Click="Button_Click"/> <CheckBox x:Name="NormalizeGeometry" Content="Normalize" IsChecked="False"/> </StackPanel> </Grid>
private void Button_Click(object sender, RoutedEventArgs e) { var l = MyMap.Layers["MyGraphicsLayer"] as GraphicsLayer; MyMap.ZoomTo(l.FullExtent); } private void Editor_EditCompleted(object sender, Editor.EditEventArgs e) { if (e.Action == Editor.EditAction.Add) { foreach (var edit in e.Edits) edit.Graphic.Attributes["OriginalGeometry"] = edit.Graphic.Geometry; } } private void GraphicsLayer_MouseLeftButtonDown(object sender, GraphicMouseButtonEventArgs e) { var originalGeometry = e.Graphic.Attributes["OriginalGeometry"] as Polygon; if (NormalizeGeometry.IsChecked.HasValue && NormalizeGeometry.IsChecked.Value) e.Graphic.Geometry = Geometry.NormalizeCentralMeridian(originalGeometry); else e.Graphic.Geometry = originalGeometry; }
サインインしたメンバーは投稿、更新のフォローなどができます。初めてですか?無料アカウントを登録してください。
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.