1.首先,要发布一张ArcMap中的地图。这里我用的是China_Map
2.进入该地图服务中,打开它的rest url地址。
3.我的地图服务中有三个图层,分别是"基站点","行政界线","mian"。
4.这里,我们选取的图层是"mian",然后查看它的属性值为:“OBJECTID”,“SHAPE_Length”,“SHAPE_Area”。
注意:第二个属性"SHAPE"它的类型是Geometry不能以数据输出。
最终成果展示:
好啦~地图的基本信息介绍完了,现在来看代码部分。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>FeatureTable without map</title>
<link rel="stylesheet" href="http://jsapi.thinkgis.cn/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://jsapi.thinkgis.cn/esri/css/esri.css">
<script src="http://jsapi.thinkgis.cn/init.js"></script>
<style>
html, body, #map{
width:100%;
height:100%;
margin:0;
padding:0;
}
</style>
<script>
var map;
require([
"esri/IdentityManager",
"esri/layers/FeatureLayer",
"esri/dijit/FeatureTable",
"dojo/dom-construct",
"dojo/dom",
"dojo/parser",
"dojo/ready",
"dojo/on",
"dojo/_base/lang",
"dijit/registry",
"dojo/domReady!"
], function (
IdentityManager, FeatureLayer, FeatureTable,
domConstruct, dom, parser, ready, on,lang,
registry
) {
parser.parse();
ready(function(){
// Create the feature layer
var myFeatureLayer = new FeatureLayer("http://localhost:6080/arcgis/rest/services/China_Map/MapServer/2", {
mode: FeatureLayer.MODE_ONDEMAND,
outFields: ["OBJECTID","SHAPE_Length","SHAPE_Area"],
visible: true
});
myTable = new FeatureTable({
"featureLayer" : myFeatureLayer,//关联图层要素
"hiddenFields": ["FID","C_Seq","Street"] // field that end-user can show, but is hidden on startup
}, 'myTableNode');
myTable.startup();
});
});
</script>
</head>
<body class="claro esri">
<p>
<i>The FeatureTable dijit supports tables with lots of features, with the table growing as you scroll.</i>
</p>
<div id="myTableNode"></div>
</body>
</html>
核心代码解释:
var myFeatureLayer = new FeatureLayer("http://localhost:6080/arcgis/rest/services/China_Map/MapServer/2", {
加载我的地图服务的URL地址,URL/2 代表的是"mian"图层。
outFields: ["OBJECTID","SHAPE_Length","SHAPE_Area"],
上面三个就是" mian"图层的属性列,输出图层数据项的key值,因为数据是以json格式输出,所以,必须把key值格式写正确。
附:
送你们一个链接,这里有很多arcgis server api for js的样例。