ArcGIS_api_for_js_添加動態圖層


利用ArcGIS Server 10.1發布動態圖層服務,然后利用ArcGIS API For JavaScript進行加載。

在發布服務的時候在 Capabilities節點下的Mapping注冊一個工作空間,點擊Manage即可注冊。

在這里注意選擇工作空間的類型,我選的是Shapefile文件,也可以連接數據庫作為工作空間。然后定義一個工作空間ID,在添加數據的時候會用到。最后就是選中shp文件所在的文件夾了。

再添加工作空間之后,發布的時候如果報錯:Dynamic workspace with workspace ID [MyShapefileWorkspaceID] is not registered with the server,說明工作空間中的數據沒有注冊,如下圖所示:

這個時候需要注冊數據所在的文件夾。

打開ArcCatalog,右鍵服務的連接屬性,如下圖所示:

點擊之后界面開始注冊文件數據:

點擊“+”之后進入如下界面:

填入注冊名稱和文件所在路徑之后,注冊就OK了。這時候重新發布服務,問題就會消失了。

 

如果已近發布好的地圖,可以在ArcGIS Server Manager里面來添加動態工作空間,如下圖所示:

開始調用動態圖層了:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>

</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>動態圖層添加shp文件</title>
    <link rel="stylesheet" href="http://localhost/arcgis_js_v35_sdk/arcgis_js_api/library/3.5/3.5/js/esri/css/esri.css"/>
     <script src="http://localhost/arcgis_js_v35_sdk/arcgis_js_api/library/3.5/3.5/init.js" type="text/javascript"></script>
     <script src="http://localhost/arcgis_js_v35_sdk/arcgis_js_api/library/3.5/3.5" type="text/javascript"></script>
     <script src="dojo/jsapi_vsdoc12_v35.js" type="text/javascript"></script>
    <style type="text/css">
      .MapClass
      {
        width:900px;
        height:600px;
        border:1px solid #000;    
      }
    </style>

    <script type="text/javascript">
        var map;
        dojo.require("esri.map");
        dojo.require("esri.layers.FeatureLayer");
        dojo.addOnLoad(function () {
                map = new esri.Map("MyMapDiv");
                var DynamicLayer = new esri.layers.ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/全國縣市_DynamicLayer/MapServer");
                map.addLayer(DynamicLayer);
            });

function AddDynamicLayer()
{
var TableSource = new esri.layers.TableDataSource(); TableSource.workspaceId = "MyShapefileWorkspaceID"; TableSource.dataSourceName = "roa_4m.shp"; var layerSource = new esri.layers.LayerDataSource(); layerSource.dataSource = TableSource; var featurelayer = new esri.layers.FeatureLayer(
"http://localhost:6080/arcgis/rest/services/全國縣市_DynamicLayer/MapServer/dynamicLayer", //注意調用動態圖層的時候在原服務的鏈接后面加上dynamicLayer { mode: esri.layers.FeatureLayer.MODE_ONDEMAND, outFields: ["*"], source:layerSource }); var symbol = esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3); var renderer = new esri.renderer.SimpleRenderer(symbol); featurelayer.setRenderer(renderer); featurelayer.refresh(); map.addLayer(featurelayer); }

</script> </head> <body class="tundra"> <div id="MyMapDiv" class="MapClass"> <div id="DrawDiv" style="width:100px; height:50px"> <button id="point" onclick="AddDynamicLayer()">添加shp</button> </div> </div> </body> </html>

 

 這里加上運行后的效果:

添加shp前:

點擊按鈕添加shp后:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM