ArcGIS js 的一些小例子

<link rel="stylesheet"
      href="http://localhost:9090/arcgis_js_api/library/3.27/3.27/esri/css/esri.css">
<script type="text/javascript"
        src="http://localhost:9090/arcgis_js_api/library/3.27/3.27/init.js"></script>

<script>
    var visible = [], setLayerVisibility;

    require(["esri/map", "esri/layers/ArcGISDynamicMapServiceLayer", "dojo/query", "dojo/dom", "dojo/on", "esri/layers/FeatureLayer",
            "esri/dijit/Legend","esri/layers/LabelClass","dojo/_base/Color","esri/symbols/Font","esri/symbols/TextSymbol","dojo/domReady!"],
        function (Map, ArcGISDynamicMapServiceLayer, query, dom, on, FeatureLayer,Legend,LabelClass,Color,Font,TextSymbol) {
            var map = new Map("map");
            var MapServier = "http://192.168.1.111:6080/arcgis/rest/services/liuyangnew/MyMapService/MapServer";
            var layer = new ArcGISDynamicMapServiceLayer(MapServier);
            map.addLayer(layer);


            //图层控制
            if (layer.loaded) {
                buildLayerList(layer);
            } else {
                dojo.connect(layer, "onLoad", buildLayerList);
            }

            function getChildrenNodes(parentnodes, node) {
                for (var i = parentnodes.length - 1; i >= 0; i--) {

                    var pnode = parentnodes[i];
                    //如果是父子关系,为父节点增加子节点,退出for循环
                    if (pnode.id == node.pid) {
                        pnode.state = "closed";//关闭二级树
                        pnode.children.push(node);
                        return;
                    } else {
                        //如果不是父子关系,删除父节点栈里当前的节点,
                        //继续此次循环,直到确定父子关系或不存在退出for循环
                        parentnodes.pop();
                    }
                }
            }

            function buildLayerList(layer) {
                //构建图层树形结构
                var layerinfos = layer.layerInfos;
                var treeList = [];//jquery-easyui的tree用到的tree_data.json数组
                var parentnodes = [];//保存所有的父亲节点
                var root = {"id": "rootnode", "text": "所有图层", "children": []};//增加一个根节点
                var node = {};
                if (layerinfos != null && layerinfos.length > 0) {

                    for (var i = 0, j = layerinfos.length; i < j; i++) {
                        var info = layerinfos[i];
                        if (info.defaultVisibility) {
                            visible.push(info.id);
                        }
                        //node为tree用到的json数据
                        node = {
                            "id": info.id,
                            "text": info.name,
                            "pid": info.parentLayerId,
                            "checked": info.defaultVisibility ? true : false,
                            "children": []
                        };
                        if (info.parentLayerId == -1) {
                            parentnodes.push(node);
                            root.children.push(node);
                        } else {
                            getChildrenNodes(parentnodes, node);
                            parentnodes.push(node);
                        }
                    }
                }
                treeList.push(root);
                //jquery-easyui的树
                $('#toc').tree({
                    data: treeList,
                    checkbox: true, //使节点增加选择框
                    onCheck: function (node, checked) {//更新显示选择的图层
                        var visible = [];

                        var nodes = $('#toc').tree("getChecked");
                        dojo.forEach(nodes, function (node) {
                            visible.push(node.id);
                        });
                        //if there aren't any layers visible set the array to be -1
                        if (visible.length === 0) {
                            visible.push(-1);
                        }
                        layer.setVisibleLayers(visible);
                    }
                });
            }

            //属性查询
            query(dom.byId("chaxun"))
                .on(
                    "click",
                    function QueryFeatureLayer(event) {
                        var queryName = document
                            .getElementById("txtName").value;
                        if (queryName == "")
                            return;
                        var whereStr = " qsxz  like '%"
                            + queryName + "%'";
                        featureLayer
                            .setDefinitionExpression(whereStr);
                        dojo.connect(featureLayer, "onUpdateEnd",
                            MapUpdateEnd);
                    });
            //定义显示模式
            var ftLayer = {
                outFields: ["*"]
            };
            var featureLayer = new FeatureLayer(
                "http://192.168.1.111:6080/arcgis/rest/services/liuyangnew/MyMapService/MapServer/2",
                ftLayer);
            featureLayer.isVisible = true;
            map.addLayer(featureLayer);
            featureLayer.setDefinitionExpression("qsxz  like ''");

            function MapUpdateEnd(error) {

                if (featureLayer.graphics.length > 0) {


                    map.graphics.clear();
                    htmls = "";
                    var htmls = "<table style=\"width: 100%\">";
                    htmls = htmls + "<tr>";
                    htmls = htmls + "<tr bgcolor=\"#E0E0E0\"><td> 图层 </td><td> 名 称</td></tr>";
                    htmls = htmls + "</tr>";
                    for (var i = 0; i < featureLayer.graphics.length; i++) {
                        var graphic = featureLayer.graphics[i];
                        var PoiName = graphic.attributes["qsxz"];
                        var poibsm = graphic.attributes["bsm"];
                        if (i % 2 == 1) {
                            htmls = htmls + "<tr  bgcolor=\"#E0E0E0\"><td>" +
                                PoiName + "</td><td>" + poibsm + "</td></tr>";
                        } else {
                            htmls = htmls + "<tr><td>" + PoiName + "</td><td>"
                                + poibsm + "</td></tr>";
                        }
                    }
                    htmls = htmls + "</table>";
                    document.getElementById("divShowResult1").innerHTML = htmls;

                } else {
                    document.getElementById("divShowResult1").innerHTML = "没有此信息";
                }
            }
            //图例
            var legendPar = {
                map : map,
                arrangment : Legend.ALIGN_RIGHT,
                autoUpdate : true,
                respectCurrentMapScale : true
                //自动更新
            };
            var legendDijit = new Legend(legendPar, "legendDiv");
            legendDijit.startup();

        });
</script>
    <div data-options="iconCls:'icon-undo'">Undo</div>
    <div data-options="iconCls:'icon-redo'">Redo</div>
    <div class="menu-sep"></div>
    <div>Cut</div>
    <div>Copy</div>
    <div>Paste</div>
    <div class="menu-sep"></div>
    <div>
        <span>Toolbar</span>
        <div>
            <div>Address</div>
            <div>Link</div>
            <div>Navigation Toolbar</div>
            <div>Bookmark Toolbar</div>
            <div class="menu-sep"></div>
            <div>New Toolbar...</div>
        </div>
    </div>
    <div data-options="iconCls:'icon-remove'">Delete</div>
    <div>Select All</div>
</div>
<div id="mm2" style="width:100px;">
    <div>Help</div>
    <div>Update</div>
    <div>About</div>
</div>
<div id="mm3" class="menu-content" style="background:#f0f0f0;padding:10px;text-align:left">
    <img src="http://www.jeasyui.com/images/logo1.png" style="width:150px;height:50px">
    <p style="font-size:14px;color:#444;">Try jQuery EasyUI to build your modern, interactive, javascript
        applications.</p>
</div>
    objectid bsm qsxz
    查询
        </div>
        <div title="结果面板" style="padding:10px">
            <div id="divShowResult1"></div>
        </div>
        <div title="图例">
            <!-- 图例 -->
            <div id="legendDiv"></div>
        </div>
    </div>
    
            </div>
    
        </div>
        <div title="选项卡2" style="padding:10px">
            卡2
        </div>
    
        <div title="帮助" data-options="iconCls:'icon-help',closable:true" style="padding:10px">
            帮助
        </div>
    </div>
    
    • 1
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值