一张图管理(编辑,查询,定位)

首先配置好Arcgis For JavaScript  SDK,然后参照Arcgis For Javascript 官网完成相关功能,一张图管理(编辑,查询,定位)


一、前端

        
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=7,IE=8,IE=9,IE=10,IE=11,IE=EDGE" />
    <title>地图</title>
    <script src="../../Scripts/jquery/jquery.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery/jquery.easyui.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery/locale/easyui-lang-zh_CN.js" type="text/javascript"></script>
    <script src="../../Scripts/CommonUnite.js" type="text/javascript"></script>
    <link href="../../Scripts/jquery/themes/icon.css" rel="stylesheet" type="text/css" />
    <link href="../../Scripts/jquery/themes/default/easyui.css" rel="stylesheet" type="text/css" />
    <style type="text/css">
        .zoominIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/zoomin_1.jpg);
            width: 40px;
            height: 35px;
        }
       
        .zoomoutIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/zoomout_1.jpg);
            width: 40px;
            height: 35px;
        }
       
        .zoomfullextIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/fullextent_1.jpg);
            width: 40px;
            height: 35px;
        }
       
        .zoomprevIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/back_1.jpg);
            width: 40px;
            height: 35px;
        }
       
        .zoomnextIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/forward_1.jpg);
            width: 40px;
            height: 35px;
        }
       
        .panIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/pan_1.jpg);
             width: 40px;
            height: 35px;
        }
       
        .deactivateIcon
        {
            border:0px;
            background-image: url(../../GIS/Images/Toolbar/clear.png);
            width: 40px;
            height: 35px;
        }
       
        #map
        {
            border: solid 2px #808775;
            -moz-border-radius: 4px;
            -webkit-border-radius: 4px;
            border-radius: 4px;
            margin: 5px;
            padding: 0px;
        }
        #titlePane
        {
            width: 240px;
        }
        .claro .dijitTitlePaneTitle
        {
            background: #fff;
            font-weight: 600;
            border: none;
            border-bottom: solid 1px #29201A;
            border-top: solid 1px #29201A;
        }
        .claro .dijitTitlePaneTitleHover
        {
            background: #eee;
        }
        .claro .dijitTitlePaneTitleActive
        {
            background: #808775;
        }
        .claro .dijitTitlePaneContentOuter
        {
            border-right: none;
            border-bottom: none;
            border-left: none;
        }
    </style>
    <script type="text/javascript">
        dojoConfig = {
            parseOnLoad: true
        }; 
    </script>
    <script src="http://localhost:8088/arcgis_js_api/library/3.9/3.9/init.js" type="text/javascript"></script>
    <script src="http://localhost:8088/arcgis_js_api/library/3.9/3.9/js/dojo/dojo/dojo.js"
        type="text/javascript"></script>
    <script src="http://localhost:8088/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/dijit.js"
        type="text/javascript"></script>
    <link href="http://localhost:8088/arcgis_js_api/library/3.9/3.9/js/esri/css/esri.css"
        rel="stylesheet" type="text/css" />
    <link href="http://localhost:8088/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/dijit.css"
        rel="stylesheet" type="text/css" />
    <link href="http://localhost:8088/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/claro/claro.css"
        rel="stylesheet" type="text/css" />
    <link href="http://localhost:8088/arcgis_js_api/library/3.9/3.9/js/dojo/dijit/themes/tundra/tundra.css"
        rel="stylesheet" type="text/css" />
    <script src="../../GIS/dojo/jsapi_vsdoc10_v38.js" type="text/javascript"></script>
    <script type="text/javascript" charset="utf-8">
        dojo.require("esri.map");
        dojo.require("esri.dijit.Scalebar");
        dojo.require("esri.toolbars.draw");
        dojo.require("esri.tasks.geometry");
        dojo.require("esri.graphic");
        dojo.require("esri.layers.GraphicsLayer");
        dojo.require("esri.symbols.SimpleFillSymbol");
        dojo.require("esri.symbols.SimpleLineSymbol");
        dojo.require("esri.tasks.GeometryService");
        dojo.require("esri.tasks.ProjectParameters");
        dojo.require("esri.layers.FeatureLayer");
        dojo.require("esri.geometry.Polygon");
        dojo.require("esri.SpatialReference");
        dojo.require("esri.tasks.query");

        var YWBH = "<%=this.YWBH %>";
        var E = "<%=this.E %>";
        var N = "<%=this.N %>";
        //地图测量
        var Measurement = dojo.require("esri/dijit/Measurement");
        var FeatureLayer = dojo.require("esri/layers/FeatureLayer");
        var SimpleRenderer = dojo.require("esri/renderers/SimpleRenderer");
        var SnappingManager = dojo.require("esri/SnappingManager");

        var GeometryService = dojo.require("esri/tasks/GeometryService");
        var SimpleLineSymbol = dojo.require("esri/symbols/SimpleLineSymbol");
        var SimpleFillSymbol = dojo.require("esri/symbols/SimpleFillSymbol");
        var dom = dojo.require("dojo/dom");
        var Color = dojo.require("esri/Color");
        var keys = dojo.require("dojo/keys");
        var parser = dojo.require("dojo/parser");
        var esriConfig = dojo.require("esri/config");
        var has = dojo.require("esri/sniff");
        var registry = dojo.require("dijit/registry");
        var Navigation = dojo.require("esri.toolbars.navigation");
        //查询
        var IdentifyTask = dojo.require("esri/tasks/IdentifyTask");
        var IdentifyParameters = dojo.require("esri/tasks/IdentifyParameters");
        var domConstruct = dojo.require("dojo/dom-construct");
        var arrayUtils = dojo.require("dojo/_base/array");
        var Color = dojo.require("esri/Color");
        var InfoTemplate = dojo.require("esri/InfoTemplate")
        dojo.require("dojo/domReady!");

        var layer, kqzb, navToolbar, map, myExtent, visible = [];
        var symbol, queryTask, query, infoTemplate, featureSet;
        var Map;
        var GeometryServer = "<%=geometryserver%>"; //geometry服务
        var CQMap = "<%=mapserver0%>"; //重庆地图服务
        var TDFK_ZB = "<%=mapserver1%>"; //要素地图服务
        var FeatureServer0 = "<%=featureserver0%>"; //阶段坐标服务
        var FeatureServer1 = "<%=featureserver1%>"; //复垦范围坐标服务
        var FeatureServer2 = "<%=featureserver2%>"; //矿区坐标服务

        function init() {
            myExtent = new esri.geometry.Extent(105.2872069, 28.164134175999997, 110.19040690000001, 32.212034176, new esri.SpatialReference({ "wkid": 4610 }));
            map = esri.Map("map", { nav: true, extent: myExtent });
            //工具栏加载
            esriConfig.defaults.map.sliderLabel = null;
            navToolbar = new esri.toolbars.Navigation(map);
            dojo.connect(navToolbar, "onExtentHistoryChange", extentHistoryChangeHandler);
            registry.byId("zoomin").on("click", function () {
                navToolbar.activate(Navigation.ZOOM_IN);
            });
            registry.byId("zoomout").on("click", function () {
                navToolbar.activate(Navigation.ZOOM_OUT);
            });

            registry.byId("zoomfullext").on("click", function () {
                navToolbar.zoomToFullExtent();
            });

            registry.byId("zoomprev").on("click", function () {
                navToolbar.zoomToPrevExtent();
            });

            registry.byId("zoomnext").on("click", function () {
                navToolbar.zoomToNextExtent();
            });

            registry.byId("pan").on("click", function () {
                navToolbar.activate(Navigation.PAN);
            });

            registry.byId("deactivate").on("click", function () {
                navToolbar.deactivate();
            });
//            registry.byId("identify").on("click", mapReady);

            //拖动地图 坐标变动
            dojo.connect(map, "onLoad", function () {
                dojo.connect(map, "onMouseMove", showCoordinates);
                dojo.connect(map, "onMouseDrag", showCoordinates);
            });
            dojo.connect(map, 'onLoad', function (map) {
                var scalebar = new esri.dijit.Scalebar({
                    map: map,
                    attachTo: "bottom-left"
                }, dojo.byId("scaleBarDiv"));
            });
            //加载地图
            layer1 = new esri.layers.ArcGISDynamicMapServiceLayer(CQMap, { "opacity": 0.85 });
            map.addLayer(layer1);
            layer = new esri.layers.ArcGISDynamicMapServiceLayer(TDFK_ZB);

            /***********加载图层************/
            if (layer.loaded) {
                buildLayerList(layer);
            } else {
                dojo.connect(layer, "onLoad", buildLayerList);
            }

            /*************定位*********/
            map.on("load", function () {
                if (YWBH != null && YWBH != "") {
                    var position = new esri.geometry.Point(E, N, new esri.SpatialReference({ "wkid": 4610 }));
                    map.centerAndZoom(position, 0.01);
                }
            });
            /********测量********/
            doMesure();
            /************查询**************/
             mapReady();
        }

        /********加载区块图层*********/
        //加载矿区坐标图层
        var val, ZBStr, oid, xmmc, ywbh, xmlx, xmjb, ywr, xzqh, fabzdw;
        function getTDFKPoints() {
            var geometryService = GeometryServer;
            var featureLayer;
            //矿区坐标图层
            $.post("Welcome.aspx?p=1&rdm=" + Math.random(), function (data) {
                if (data == "Y") {
                    getTDFKPoints(); //再次执行请求
                }
                if (data != "") {
                    val = data.split(';');
                    ZBStr = val[0];
                    oid = val[1];
                    xmmc = val[2];
                    ywbh = val[3];
                    xmlx = val[4];
                    xmjb = val[5];
                    ywr = val[6];
                    xzqh = val[7];
                    fabzdw = val[8];
                    featureLayer = FeatureServer2;
                    getKQZBLayer(ZBStr, oid, xmmc, ywbh, xmlx, xmjb, ywr, xzqh, fabzdw, geometryService, featureLayer);
                }
                if (data == "") {
                    getFKFWFKPoints(); //加载复垦范围数据
                }
            });

        }
        function getFKFWFKPoints() {
            //复垦范围坐标图层
            var geometryService = GeometryServer;
            var featureLayer;
            $.post("Welcome.aspx?p=3&rdm=" + Math.random(), function (data) {
                if (data == "Y") {
                    getTDFKPoints(); //再次执行请求
                }
                if (data != "") {
                    val = data.split(';');
                    ZBStr = val[0];
                    oid = val[1];
                    fkfwmc = val[2];
                    ywbh = val[3];
                    xmlx = val[4];
                    xmjb = val[5];
                    ywr = val[6];
                    xzqh = val[7];
                    fabzdw = val[8];
                    featureLayer = FeatureServer1;
                    getKQZBLayer(ZBStr, oid, fkfwmc, ywbh, xmlx, xmjb, ywr, xzqh, fabzdw, geometryService, featureLayer);
                }
                if (data == "") {
                    getJDFKPoints(); //加载阶段数据
                }
            });
        }
        function getJDFKPoints() {
            //阶段坐标图层
            var geometryService = GeometryServer;
            var featureLayer;
            $.post("Welcome.aspx?p=2&rdm=" + Math.random(), function (data) {
                if (data == "Y") {
                    getTDFKPoints(); //再次执行请求
                }
                if (data != "") {
                    val = data.split(';');
                    ZBStr = val[0];
                    oid = val[1];
                    dk = val[2];
                    ywbh = val[3];
                    xmlx = val[4];
                    xmjb = val[5];
                    ywr = val[6];
                    xzqh = val[7];
                    fabzdw = val[8];
                    featureLayer = FeatureServer0;
                    getKQZBLayer(ZBStr, oid, dk, ywbh, xmlx, xmjb, ywr, xzqh, fabzdw, geometryService, featureLayer);
                }
                if (data == "") {
                }
            });
        }
        //加载坐标图层
        function getKQZBLayer(val, oidNew, xmmcNew, ywbhNew, xmlxNew, xmjbNew, ywrNew, xzqhNew, fabzdwNew, geometryService, featureLayer) {
            var geoService = new esri.tasks.GeometryService(geometryService);
            var incoord;    //输入坐标系 (var incoord = 2359;35度带的西安80||var incoord36 = 2360;36度带的西安80)
            var outcoord = 4610;  //目标坐标系(地理坐标西安80)
            var zb = val.split(",");
            var zbstr = zb[0].slice(0, 3);
            if (zbstr == "[35") { incoord = 2359; }
            else if (zbstr == "[36") { incoord = 2360; }
            var inSR = new esri.SpatialReference({ wkid: incoord });
            var outSR = new esri.SpatialReference({ wkid: outcoord });
            var json = eval('(' + "[[" + val + "]]" + ')');
            var a = new esri.geometry.Polygon({
                "rings": json,
                "spatialReference": inSR
            });
            var x = a.rings[0][0][0];
            var y = a.rings[0][0][1];
            var PrjParams = new esri.tasks.ProjectParameters();
            PrjParams.geometries = [a];
            PrjParams.outSR = outSR;
            var graphic;
            geoService.project(PrjParams, function (b) {
                var d = new esri.geometry.Polygon(b[0], PrjParams.outSR);
                var symbol = new esri.symbol.SimpleFillSymbol(esri.symbol.SimpleFillSymbol.STYLE_SOLID,
                    new esri.symbol.SimpleLineSymbol(esri.symbol.SimpleLineSymbol.STYLE_DASHDOT,
                    new dojo.Color([255, 0, 0]), 2),
                    new dojo.Color([255, 255, 0, 0.25]));
                var attributes = {
                    "X": x,
                    "Y": y,
                    "E": d.rings[0][0][0],
                    "N": d.rings[0][0][1],
                    "WorkID": oidNew,
                    "XMMC": xmmcNew,
                    "YWBH": ywbhNew,
                    "XMLX": xmlxNew,
                    "XMJB": xmjbNew,
                    "YWR": ywrNew,
                    "XZQH": xzqhNew,
                    "FABZDW": fabzdwNew
                };
                graphic = new esri.Graphic(d, symbol, attributes);
                var fealayer = new esri.layers.FeatureLayer(featureLayer);
                var zb = [];
                zb.push(graphic);
                fealayer.applyEdits(zb, null, null, function (data) {
                    getTDFKPoints();
                    fealayer.clearSelection();
                }, function (err) { alert(err); });
            });
        }

        /*********图层控制*********/
        //获取子节点
        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 (visible.length === 0) {
                        visible.push(-1);
                    }
                    layer.setVisibleLayers(visible);
                }
            });
            layer.setVisibleLayers(visible);
            map.addLayer(layer);
            getTDFKPoints();
        }

        /************工具管理*************/
        //当地图视图发生变化时后判定前一视图和后一视图的状态
        function extentHistoryChangeHandler() {
            if (registry.byId("zoomprev") != undefined && registry.byId("zoomnext") != undefined) {
                registry.byId("zoomprev").disabled = navToolbar.isFirstExtent();
                registry.byId("zoomnext").disabled = navToolbar.isLastExtent();
            }
        }
        //显示左下角坐标
        function showCoordinates(evt) {
            //获取坐标点
            var mp = evt.mapPoint;
            //display mouse coordinates
            dojo.byId("info").innerHTML = "经度:" + mp.x.toFixed(4) + ",&nbsp&nbsp纬度:" + mp.y.toFixed(4);
        }

        /***********测量**********/
        function doMesure() {
            try {
//                var cx = dojo.connect(map, "onClick", executeIdentifyTask);
                //                dojo.disconnect(cx);
                parser.parse();
                //This sample may require a proxy page to handle communications with the ArcGIS Server services. You will need to 
                //replace the url below with the location of a proxy on your machine. See the 'Using the proxy page' help topic
                //for details on setting up a proxy page.
                esriConfig.defaults.io.proxyUrl = "../../../proxy.ashx";
                esriConfig.defaults.io.alwaysUseProxy = false;

                //This service is for development and testing purposes only. We recommend that you create your own geometry service for use within your applications
                esriConfig.defaults.geometryService = new GeometryService(GeometryServer);
                var sfs = new SimpleFillSymbol("solid", new SimpleLineSymbol("solid", new Color([195, 176, 23]), 2), null);
                var parcelsLayer = new esri.layers.FeatureLayer(TDFK_ZB,
                {
                    mode: esri.layers.FeatureLayer.MODE_ONDEMAND,
                    outFields: ["*"]
                });
                parcelsLayer.setRenderer(new SimpleRenderer(sfs));
                map.addLayers([parcelsLayer]);

                //dojo.keys.copyKey maps to CTRL on windows and Cmd on Mac., but has wrong code for Chrome on Mac
                var snapManager = map.enableSnapping({
                    snapKey: has("mac") ? keys.META : keys.CTRL
                });
                var layerInfos = [{
                    layer: parcelsLayer
                }];
                snapManager.setLayerInfos(layerInfos);
                var measurement = new esri.dijit.Measurement({
                    map: map
                }, dom.byId("measurementDiv"));
                measurement.startup();
//                $("#dijit_form_ToggleButton_0").bind("click", measureStart); //开始测量
//                $("#dijit_form_ToggleButton_1").bind("click", measureStart); //开始测量
//                $("#dijit_form_ToggleButton_2").bind("click", measureStart); //开始测量
//                measurement.on("measure-end", measureEnd); //测量结束
            } catch (e) {
                //                alert(e + "");
            }
        }

        function measureStart(evt) {
            alert($("#dijit_form_ToggleButton_0").attr("aria-pressed"));
            if ($("#dijit_form_ToggleButton_0").attr("aria-pressed")=="false") {
                dojo.disconnect(mapExecuteIdentifyTaskHandle);
            } else {
                mapReady();
            }
        }
        function measureEnd() {
            mapReady();
        }
        var mapExecuteIdentifyTaskHandle = null;
        /***********查询**********/
        function mapReady() {
           // document.getElementById("map").addEventListener("click", executeIdentifyTask);
            //create identify tasks and setup parameters
            // map.on("click", executeIdentifyTask);
            mapExecuteIdentifyTaskHandle = dojo.connect(map, "onClick", executeIdentifyTask);
            identifyTask = new esri.tasks.IdentifyTask(TDFK_ZB);

            identifyParams = new esri.tasks.IdentifyParameters();
            identifyParams.tolerance = 3;
            identifyParams.returnGeometry = true;
            identifyParams.layerIds = [0, 1, 2];
            identifyParams.layerOption = IdentifyParameters.LAYER_OPTION_ALL;
            identifyParams.width = map.width;
            identifyParams.height = map.height;
        }

        function executeIdentifyTask(event) {
            identifyParams.geometry = event.mapPoint;
            identifyParams.mapExtent = map.extent;
            var deferred = identifyTask
            .execute(identifyParams)
            .addCallback(function (response) {
                return arrayUtils.map(response, function (result) {
                    var feature = result.feature;
                    var layerName = result.layerName;
                    feature.attributes.layerName = layerName;
                    if (layerName === "阶段坐标") {
                        var taxParcelTemplate = new esri.InfoTemplate("阶段坐标详情",
                    "项目名称:${XMMC}<br />业务编号 : ${YWBH}<br />项目类型 : ${XMLX}<br />项目级别 : ${XMJB}<br />复垦义务人 : ${YWR}<br />所在行政区 : ${XZQH}<br />方案编制单位 : ${FABZDW}<br />E : ${E}<br />N : ${N}<br/>填表日期 : ${RDT}");
                        feature.setInfoTemplate(taxParcelTemplate);
                    }
                    if (layerName === "复垦范围坐标") {
                        console.log(feature.attributes.PARCELID);
                        var buildingFootprintTemplate = new esri.InfoTemplate("复垦范围坐标详情",
                    "项目名称:${XMMC}<br />业务编号 : ${YWBH}<br />项目类型 : ${XMLX}<br />项目级别 : ${XMJB}<br />复垦义务人 : ${YWR}<br />所在行政区 : ${XZQH}<br />方案编制单位 : ${FABZDW}<br />E : ${E}<br />N : ${N}<br/>填表日期 : ${RDT}");
                        feature.setInfoTemplate(buildingFootprintTemplate);
                    }
                    if (layerName === "矿区坐标") {
                        console.log(feature.attributes.PARCELID);
                        var buildingFootprintTemplate = new esri.InfoTemplate("矿区坐标详情",
                    "项目名称:${XMMC}<br />业务编号 : ${YWBH}<br />项目类型 : ${XMLX}<br />项目级别 : ${XMJB}<br />复垦义务人 : ${YWR}<br />所在行政区 : ${XZQH}<br />方案编制单位 : ${FABZDW}<br />E : ${E}<br />N : ${N}<br/>填表日期 : ${RDT}");
                        feature.setInfoTemplate(buildingFootprintTemplate);

                    }
                 
                    map.infoWindow.show(event.mapPoint);
                    return feature;
                });
            }); 
            map.infoWindow.setFeatures([deferred]);
        }
        dojo.addOnLoad(init);
        /************地图定位************/
        function MapPosition() {
            var x = encodeURI(document.getElementById("X").value);
            var y = encodeURI(document.getElementById("Y").value);
            if (x == "" || y == "") {
                alert("请输入经纬度 !");
                return;
            }
            var position = new esri.geometry.Point(x, y, new esri.SpatialReference({ "wkid": 4610 }));
            map.centerAndZoom(position, 0.01);
        }
    </script>
</head>
<body class="easyui-layout" id="body1">
    <form id="form1" runat="server">
    <div data-options="region:'west',collapsed:true,split:true,title:'地图导航'" style="padding: 5px;
        background: #eee; width: 250px;">
        <ul id="toc" class="easyui-tree">
        </ul>
    </div>
    <div data-options="region:'center'" style="padding: 5px; background: #eee; width: 250px;">
        <div id="navToolbar" data-dojo-type="dijit/Toolbar">
            <div data-dojo-type="dijit/form/Button" id="zoomin" data-dojo-props="iconClass:'zoominIcon'"  style=" border:0px"></div>
            <div data-dojo-type="dijit/form/Button" id="zoomout" data-dojo-props="iconClass:'zoomoutIcon'"  style=" border:0px"></div>
            <div data-dojo-type="dijit/form/Button" id="zoomfullext" data-dojo-props="iconClass:'zoomfullextIcon'" style=" border:0px"></div>
            <div data-dojo-type="dijit/form/Button" id="zoomprev" data-dojo-props="iconClass:'zoomprevIcon'" style=" border:0px"></div>
            <div data-dojo-type="dijit/form/Button" id="zoomnext" data-dojo-props="iconClass:'zoomnextIcon'" style=" border:0px"></div>
            <div data-dojo-type="dijit/form/Button" id="pan" data-dojo-props="iconClass:'panIcon'" style=" border:0px"></div>
            <div data-dojo-type="dijit/form/Button" id="deactivate" data-dojo-props="iconClass:'deactivateIcon'" style=" border:0px"></div>
             <span>经度:<asp:TextBox runat="server" ID="X"></asp:TextBox>&nbsp;&nbsp; 纬度:<asp:TextBox
                runat="server" ID="Y"></asp:TextBox>&nbsp;&nbsp;
                <input type="button" id="btnPosition" οnclick="MapPosition()" value="定位" />
            </span>
        </div>
       <%-- <center>--%>
        <div id="map" class="claro" style="width: 1600px; height: 600px; position:relative;  margin:0 auto;  border: 0px solid #000;">
      <%--      <div style="position: absolute; right: 20px; top: 30px; z-index: 999;">
                <div id="titlePane" data-dojo-type="dijit/TitlePane" align="left" data-dojo-props="title:'测量', closable:false, open:false">
                    <div id="measurementDiv">
                    </div>
                    <span style="font-size: smaller; padding: 5px 5px;">按住 <b>CTRL</b>键可捕捉地图</span>
                </div>
            </div>--%>
            <span id="scaleBarDiv" style="position: absolute; left: 25px; bottom: 30px;"></span>
            <span id="info" style="position: absolute; right: 50px; bottom: 5px; color: #000;
                z-index: 50;"></span>
        </div>
        <%--</center>--%>
    </div>
    </form>
</body>
</html>


二、后台

              protected void Page_Load(object sender, EventArgs e)
        {
            string p = this.Request["p"] + "";
            string rmd = this.Request["rdm"] + "";
            if (p == "1") { getTDFK(); }
            if (p == "2") { getTDJDFK(); }
            if (p == "3") { getTDFKFW(); }

        }
       public string geometryserver = BP.Sys.SystemConfig.AppSettings["geoServer"];
       public string mapserver0 = BP.Sys.SystemConfig.AppSettings["mapServer0"];
       public string mapserver1 = BP.Sys.SystemConfig.AppSettings["mapServer1"];
       public string featureserver0 = BP.Sys.SystemConfig.AppSettings["featureServer0"];
       public string featureserver1 = BP.Sys.SystemConfig.AppSettings["featureServer1"];
       public string featureserver2 = BP.Sys.SystemConfig.AppSettings["featureServer2"]; 

        标识编号(workID:矿区坐标图层)
        //public string WorkID
        //{
        //    get
        //    {
        //        string KQSql = "SELECT  top(1)* FROM XMWZXXBGDDtl1 WHERE OID NOT IN (SELECT WORKID FROM ZB_KQZB)";
        //        System.Data.DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(KQSql);
        //        string workID = "";
        //        foreach (DataRow dr in dt.Rows)
        //        {

        //            workID += dr["OID"] + ";";
        //        }
        //        string reworkID = (workID.Length > 0) ? workID.Remove(workID.Length - 1, 1) : workID;
        //        return reworkID;
        //    }
        //}

        /// <summary>
        /// 土地复垦范围
        /// </summary>
        public void getTDFKFW()
        {
            Response.Clear();
            Response.Charset = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.ContentType = "text/plain";
            string sql = "SELECT  top(1)* FROM XMWZXXBGDDtl2 WHERE OID NOT IN (SELECT WORKID FROM ZB_FKFWZB)";
            System.Data.DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
            if (dt.Rows.Count <= 0)
            {
                Response.Write("");
            }
            else
            {
                string sqlcount = "select * from ZB_FKFWZB where WorkID='" + dt.Rows[0]["OID"] + "'";
                System.Data.DataTable tablecount = BP.DA.DBAccess.RunSQLReturnTable(sqlcount);
                if (tablecount.Rows.Count > 0)
                {
                    //存在
                    Response.Write("Y");
                }
                else
                {
                    string kqzb = "";
                    string workid = "";
                    string fkfwmc = "";
                    string result = "";
                    foreach (DataRow dr in dt.Rows)
                    {
                        string zbAll = "";
                        workid = dr["OID"].ToString();
                        fkfwmc = dr["FKFWMC"].ToString();
                        fkfwmc = fkfwmc.Replace(Environment.NewLine, "");//去掉换行符
                        kqzb = dr["FKFWZB"].ToString();
                        string[] zbStr = kqzb.Split(';');
                        for (int i = 0; i < zbStr.Length; i++)
                        {
                            zbAll += "[" + zbStr[i] + "],";
                        }
                        zbAll = (zbAll.Length > 0) ? zbAll.Remove(zbAll.Length - 1, 1) : zbAll;//去掉最后一个逗号
                        //zbAll += "(";//将多个面数据用括号隔开
                        result = zbAll;
                    }
                    result = result.Replace(Environment.NewLine, "");//去掉换行符
                    //result = (result.Length > 0) ? result.Remove(result.Length - 1, 1) : result;//去掉最后一个括号
                    if (dt.Rows.Count <= 0)
                    {
                        Response.Write("");
                    }
                    else
                    {
                        Response.Write(result + ";" + workid+";"+fkfwmc);
                    }
                }
            }
            Response.End();
        }
        /// <summary>
        /// 阶段复垦
        /// </summary>
        public void getTDJDFK()
        {
            Response.Clear();
            Response.Charset = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.ContentType = "text/plain";
            string sql = "SELECT  top(1)* FROM XMWZXXBGDDtl3 WHERE OID NOT IN (SELECT WORKID FROM ZB_JDZB)";
            System.Data.DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
            if (dt.Rows.Count <= 0)
            {
                Response.Write("");
            }
            else
            {
                string sqlcount = "select * from zb_jdzb where WorkID='" + dt.Rows[0]["OID"] + "'";
                System.Data.DataTable tablecount = BP.DA.DBAccess.RunSQLReturnTable(sqlcount);
                if (tablecount.Rows.Count > 0)
                {
                    //存在
                    Response.Write("Y");
                }
                else
                {
                    string kqzb = "";
                    string workid = "";
                    string dk = "";
                    string result = "";
                    foreach (DataRow dr in dt.Rows)
                    {
                        string zbAll = "";
                        workid = dr["OID"].ToString();
                        dk = dr["DK"].ToString();
                        dk = dk.Replace(Environment.NewLine, "");//去掉换行符
                        kqzb = dr["JDZB"].ToString();
                        string[] zbStr = kqzb.Split(';');
                        for (int i = 0; i < zbStr.Length; i++)
                        {
                            zbAll += "[" + zbStr[i] + "],";
                        }
                        zbAll = (zbAll.Length > 0) ? zbAll.Remove(zbAll.Length - 1, 1) : zbAll;//去掉最后一个逗号
                        //zbAll += "(";//将多个面数据用括号隔开
                        result = zbAll;
                    }
                    result = result.Replace(Environment.NewLine, "");//去掉换行符
                    //result = (result.Length > 0) ? result.Remove(result.Length - 1, 1) : result;//去掉最后一个括号
                    if (dt.Rows.Count <= 0)
                    {
                        Response.Write("");
                    }
                    else
                    {
                        Response.Write(result + ";" + workid+";"+dk);
                    }
                }
            }
            Response.End();
        }

        public void getTDFK()
        {
            Response.Clear();
            Response.Charset = "UTF-8";
            Response.ContentEncoding = System.Text.Encoding.UTF8;
            Response.ContentType = "text/plain";
            string sql = "SELECT  top(1)* FROM XMWZXXBGDDtl1 WHERE OID NOT IN (SELECT WORKID FROM ZB_KQZB)";
            System.Data.DataTable dt = BP.DA.DBAccess.RunSQLReturnTable(sql);
            if (dt.Rows.Count <= 0)
            {
                Response.Write("");
            }
            else
            {
                string sqlcount = "select * from zb_kqzb where WorkID='" + dt.Rows[0]["OID"] + "'";
                System.Data.DataTable tablecount = BP.DA.DBAccess.RunSQLReturnTable(sqlcount);
                if (tablecount.Rows.Count > 0)
                {
                    //存在
                    Response.Write("Y");
                }
                else
                {
                    string kqzb = "";
                    string workid = "";
                    string xmmc = "";
                    string result = "";
                    foreach (DataRow dr in dt.Rows)
                    {
                        string zbAll = "";
                        workid = dr["OID"].ToString();
                        xmmc = dr["XMMC"].ToString();
                        xmmc = xmmc.Replace(Environment.NewLine, "");//去掉换行符
                        kqzb = dr["KQZB"].ToString();
                        string[] zbStr = kqzb.Split(';');
                        for (int i = 0; i < zbStr.Length; i++)
                        {
                            zbAll += "[" + zbStr[i] + "],";
                        }
                        zbAll = (zbAll.Length > 0) ? zbAll.Remove(zbAll.Length - 1, 1) : zbAll;//去掉最后一个逗号
                        //zbAll += "(";//将多个面数据用括号隔开
                        result = zbAll;
                    }
                    result = result.Replace(Environment.NewLine, "");//去掉换行符
                    //result = (result.Length > 0) ? result.Remove(result.Length - 1, 1) : result;//去掉最后一个括号
                    if (dt.Rows.Count <= 0)
                    {
                        Response.Write("");
                    }
                    else
                    {
                        Response.Write(result + ";" + workid +";"+xmmc);
                    }
                }
            }
            Response.End();
        }






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值