在图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> <span><button onclick='gettype(3)'>南澳街道</button></span> <span><button onclick='gettype(5)'>坪山镇</button></span> <span><button onclick='gettype(6)'>大鹏镇街道</button></span> <span><button onclick='gettype(9)'>葵涌街道</button></span> <span><button onclick='gettype(11)'>坑 梓 镇</button></span> <span><button onclick='gettype(10)'>坪山街道</button></span> <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>
在这里插入代码片