在图1-2所选里写入该区的名称则出来该区的全部的街道或镇、并在地图上显示想要的街道;
《“区域定位”模块》项目研发阶段性总结
图1-2
地图配置操作如下图:
步骤一:在区县界再复制数据集、见图1-3
《“区域定位”模块》项目研发阶段性总结
图1-3
步骤二:双击新建的地图、见图1-4《“区域定位”模块》项目研发阶段性总结
图1-4
步骤三:选择高亮笔、通过想要分割的区域信息、拖到地图位置,点击对象操作进行地图画线切割;流程见图1-5《“区域定位”模块》项目研发阶段性总结
图1-5
切割好的区域对象图(根据区域信息里有多少条进行切割):图1-6
《“区域定位”模块》项目研发阶段性总结
图1-6
步骤四:将切割好的面拉的地图中、再将区县界的面右键打开制作专题图、把图层面样式设置为null;见图1-7《“区域定位”模块》项目研发阶段性总结
图1-7
在代码层上定义图层、将Layer图层加载到Map对象上
《“区域定位”模块》项目研发阶段性总结
《“区域定位”模块》项目研发阶段性总结

<script>
function HuiTian() {
            var kkkk = $("#YSC").val();
            console.log(kkkk);
            if (kkkk == "福田区") {
                $("#QYDW").append("<span><button onclick='gettype(2)'>龙城街道</button></span>&nbsp;<span><button onclick='gettype(3)'>南澳街道</button></span>&nbsp;<span><button onclick='gettype(5)'>坪山镇</button></span>&nbsp;<span><button onclick='gettype(6)'>大鹏镇街道</button></span>&nbsp;<span><button onclick='gettype(9)'>葵涌街道</button></span>&nbsp;<span><button onclick='gettype(11)'>坑  梓  镇</button></span>&nbsp;<span><button onclick='gettype(10)'>坪山街道</button></span>&nbsp;<span><button onclick='gettype(13)'>坪地街道</button></span>");

            } else {
                $("#QYDW").empty();//获取一个空的 PointM 对象。
            }
        }
        var vectorLayer_WG;
        function gettype(JDID) {
            var queryParam = [], queryBySQLParams, queryBySQLService;
            queryParam.push(new SuperMap.REST.FilterParameter({
                name: "区县界_杨大大@FuTianQu",//查询数据集名称或者图层名称,根据实际的查询对象而定,必设属性
                attributeFilter: "SmID=" + JDID,//属性过滤条件  相当于 SQL 语句中的 WHERE 子句,
            }));
            //SQL 查询参数类。 该类用于设置 SQL 查询的相关参数。
            queryBySQLParams = new SuperMap.REST.QueryBySQLParameters({
                queryParams: queryParam//查询过滤条件参数数组
            });
            //SQL 查询服务类。 在一个或多个指定的图层上查询符合 SQL 条件的空间地物信息。
            queryBySQLService = new SuperMap.REST.QueryBySQLService(url, {//url 服务的访问地址
                eventListeners: { "processCompleted": processCompleted_PG, "processFailed": processFailed_PG }
            });
            //传递到服务端
            queryBySQLService.processAsync(queryBySQLParams);
        }
        function KKKC() {
            vectorLayer_WG.removeAllFeatures();;
        }
        function processCompleted_PG(queryEventArgs) {
            //声明字段
            var i, j, feature, bounds, N = [], S = [], W = [], E = [],
            result = queryEventArgs.result;//获取服务器传回来的数据
            vectorLayer_WG.removeAllFeatures();//removeAllFeatures();
            var features = [];
            //判断是否有数据
            if (result && result.recordsets) {//判断查询的查询结果记录集数组是否为空
                for (i = 0; i < result.recordsets.length; i++) {//循环记录集数组
                    //features===用于存放矢量要素
                    if (result.recordsets[i].features) {//判断记录集数组的矢量要素是否为空
                        //如果记录集数组的矢量要素不为空,则又循环 记录集数组的矢量要素
                        for (j = 0; j < result.recordsets[i].features.length; j++) {
                            feature = result.recordsets[i].features[j];//获取记录集数组的矢量要素

                            //判断显示面或点
                            if (feature.geometry.CLASS_NAME == SuperMap.Geometry.Point.prototype.CLASS_NAME) {//判断返回的数据是不是这个数据

                            } else {
                                //社区网格
                                feature.style = {
                                    strokeColor: 'red',//边颜色
                                    strokeWidth: 1,//边宽度
                                    strokeDashstyle: 'solid',//边类型,虚线
                                    fillColor: 'blue',//填充颜色
                                    fillOpacity: 0.1,//透明度
                                    label: feature.data.Name,
                                    fontColor: 'red',
                                    fontOpacity: "1",
                                    fontSize: '10px',
                                    fontWeight: 700
                                };
                                vectorLayer_WG.addFeatures(feature);//给这个图层添加features。也就是把查询结果显示出来 
                            }
                            if (feature != null) {
                                if (feature.data.SmSdriN != null && Boolean(feature.data.SmSdriN) == true) {
                                    N.push(Number(feature.data.SmSdriN));
                                }
                                if (feature.data.SmSdriS != null && Boolean(feature.data.SmSdriS) == true) {
                                    S.push(Number(feature.data.SmSdriS));
                                }
                                if (feature.data.SmSdriW != null && Boolean(feature.data.SmSdriW) == true) {
                                    W.push(Number(feature.data.SmSdriW));
                                }
                                if (feature.data.SmSdriE != null && Boolean(feature.data.SmSdriE) == true) {
                                    E.push(Number(feature.data.SmSdriE));
                                    //var x = (feature.geometry.bounds.left + feature.geometry.bounds.right) / 2;//获取当前几何的界限上下左右除以2得到x轴,y同理
                                    //var y = (feature.geometry.bounds.top + feature.geometry.bounds.bottom) / 2;
                                    //map.setCenter(new SuperMap.LonLat(x, y), 3);//最大放大倍数是15
                                }
                            }
                        }
                    }

                }
            }
            if (W.length > 0 && S.length > 0 && E.length > 0 && N.length > 0) {
                var bounds = new SuperMap.Bounds(
                                              Math.min.apply(null, W),//最小的水平坐标系。
                                              Math.min.apply(null, S),//最小的垂直坐标系。
                                              Math.max.apply(null, E),//最大的水平坐标系。
                                              Math.max.apply(null, N) //最大的垂直坐标系。
                                          );

                map.zoomToExtent(bounds);//缩放到指定范围,重新定位中心点。
            }
        }

        function processFailed_PG(er) {

        }

</script>
在这里插入代码片

相关文章: