I have a wpf app with an ArcGIS map, I used the extent property to zoom and pan to Canada (the location I want) and added the pins (images) by adding a graphics layer, see code below.

currently I'm using this map: http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer

I'd like to use this instead: http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer

the problem is that the pins show up in the middle of the map, the 0,0 location, when I switch to the new map. Are graphics specific to a type of maps or am I adding graphics the wrong way? What's the best way to add images to map?

<Grid x:Name="LayoutRoot">
        <esri:PictureMarkerSymbol x:Key="PushPin"
                                  Source="pushpin.png" />

    <esri:Map x:Name="MyMap"
              Extent="-125, 40, -60, 60">
            <esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
                                             Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer" />
                    <!-- Halifax -->
                    <esri:Graphic Symbol="{StaticResource PushPin}">
                        <esri:MapPoint X="-63"
                                       Y="45" />

                    <!-- Toronto -->
                    <esri:Graphic Symbol="{StaticResource PushPin}">
                        <esri:MapPoint X="-79.5"
                                       Y="44" />

                    <!-- Vancouver -->
                    <esri:Graphic Symbol="{StaticResource PushPin}">
                        <esri:MapPoint X="-123"
                                       Y="49.5" />
  • 3
    If the map you are switching to has a webmercator spatial reference, the symbols would appear in the Atlantic. The url you've posted is for an unprojected mapservice. – Kirk Kuykendall Jun 24 '11 at 17:34
  • Thanks, I wasn't familiar with the Web Mercator system. Was able to use Bing maps with ArcGIS/Esri. – user3459 Jun 27 '11 at 17:53

Your graphics coordinates appear to be WGS 1984 or spatial reference 4326 so does your extent. You are trying to switch to a map service that is in Web Mercator which is spatial reference 102100.

Just go to this link and look at the coordinates at the bottom and you can see they are different.


The above link uses the map service you want to switch too. So you need to convert your coordinates from spatial reference 4326 (WGS 1984) to spatial reference 102100 (Web Mercator).

| improve this answer | |

The Map will get the spatial reference from the first added layer. From the documentation:

By default, the initial extent is the full extent of all layers in the map. The spatial reference is defined by the first layer with a spatial reference in the layer collection.

So make sure you get a specific Spatial Reference set the Extent property on the Map. See the part "Defining a spatial reference for the map" in the documentation.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy