2016-02-17 27 views
0

我有使用ESRI Maps控件的WPF应用程序。这是我的XAML和C#代码。问题是它显示我在地图上的针点,但它显示我在一个错误的地方,即某处非洲。我认为它将握持和经度作为0,0即中心。任何人都可以帮助我解决地图问题,指向正确的位置。Esri Arcgis地图无法显示正确的Pin Points WPF

<Border CornerRadius="10" BorderThickness="10" Background="LightBlue"> 
            <!--ESRI--> 
            <esri:Map Name="DashboardMap" Width="550" Height="300" BorderThickness="3" WrapAround="True" IsLogoVisible="False" Loaded="DashboardMap_Loaded" Margin="5,5,0,0"> 


            </esri:Map> 
           </Border> 

这是我的CS代码。

private void DashboardMap_Loaded(object sender, RoutedEventArgs e) 
      { 

       Layer Arlayer = new ArcGISTiledMapServiceLayer 
       { 
        ID = "StreetLayer", 
        Url = "http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer" 
       }; 
       DashboardMap.Layers.Add(Arlayer); 

    } 

       GraphicsLayer layer; 

      MapPoint point = new MapPoint(37.428433999999996, -122.0723816); 
        point.SpatialReference = new SpatialReference(102100); 
        //point.SpatialReference = new SpatialReference(4326); 
        //point.SpatialReference = DashboardMap.SpatialReference; 
        layer = new GraphicsLayer(); 
        layer.Visible = true; 

        ESRI.ArcGIS.Client.Symbols.SimpleMarkerSymbol symbol = new ESRI.ArcGIS.Client.Symbols.SimpleMarkerSymbol(); 
        symbol.Color = new System.Windows.Media.SolidColorBrush(Colors.Red); 
        symbol.Style = ESRI.ArcGIS.Client.Symbols.SimpleMarkerSymbol.SimpleMarkerStyle.Circle; 
        symbol.Size = 15; 
        Graphic graphic = new Graphic(); 
        graphic.Symbol = symbol; 
        graphic.Geometry = point; 
        graphic.SetZIndex(1); 
        layer.Graphics.Add(graphic); 
        DashboardMap.Layers.Add(layer); 
       } 
} 
+0

如何EPSG:4326?我猜EPSG中的坐标:102100是以米为单位,而不是度数。 – Clemens

+0

是的,当我使用4326它标志着丹麦。但仍然属于美国加利福尼亚的经纬度。 – nikhil

+0

MapPoint构造函数需要参数x和y,因此首先是经度然后是纬度。 – Clemens

回答

0

MapPoint以该顺序获取参数x和y,所以首先是经度,然后是纬度。

你应该写:

var point = new MapPoint(-122.072382, 37.428434, new SpatialReference(4326));