[GIS] How to i use ArcGIS server 10 mapservices in OpenLayers2

arcgis-servermap-serviceopenlayers-2

I'm new in OpenLayers. I'd like to use mapservice of ArcGIS server 10 in open layers.I search and found examples of using an ArcGIS Server 9.3 Rest API layer for OpenLayers. I found OpenLayers.Layer.ArcGIS93Rest instance but not ArcGIS 10 . How can I use ArcGIS server 10 services in Openlayers? I wrote the below code . I use ArcGIS server 10 and The REST is working right .

<!DOCTYPE html>

<html lang='en'>
<head>

    <title>My OpenLayers Map</title>
       <script type='text/javascript' src='OpenLayers.js'></script>
    <script type='text/javascript'>

        var map;

        function init() {

          map = new OpenLayers.Map('map_element',{});
var arcgis = new OpenLayers.Layer.ArcGIS93Rest("MyName","http://xxxxxxx/ArcGIS/rest/services/test/MapServer",

          {layers: "show:0,1,2,3,4"});

                    map.addLayers([arcgis]);

                    }

    </script>
</head>

<body onload='init();'>
<div id='map_element' style='width:1000px; height:500px;'>
</div>
</body>
</html>

Best Answer

Without Looking at your code, I can't say why you can't access your ArcGIS Server 10 layer. But I can access ArcGIS map service layers in my OpenLayers App in the following ways:

  • When the map service is a tiled Mapservice in WebMercator, I can use the following code:

layer = new OpenLayers.Layer.XYZ( "ESRI", "http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer/tile/${z}/${y}/${x}", {sphericalMercator: true} );

  • When I have a dynamic mapservice, I can use the following code:

layer = new OpenLayers.Layer.ArcGIS93Rest( "ArcGIS Server Layer", "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer/export", {layers: "show:0,2"});

There are two working examples on the OpenLayers website:

  1. Basic ESRI Map Cache Example
  2. ArcGIS Server 9.3 Rest API Example
Related Question