关键技术:SuperMap GIS
作者:李嘉乐
给每一个区域都设置了它们的中心坐标,通过自己写positioning方法根据x值来确定地位到的位置。
如图:
代码如下:
<li>
<a><i class="fa fa-map-marker"></i> 区域定位<span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li style="color:#db0a2f;font-weight:600">所选地区:<span class="dizhi">增城区</span> <span onclick="clean()" class="clean">清除定位</span></li>
<li class="panel-body" style="margin-left:-20px;">
<div id="x" style="display:none"></div>
<div id="y" style="display:none"></div>
<div class="dingWei">
<a onclick="positioning(1)">荔城街道</a>
<a onclick="positioning(2)">朱荔街道</a>
<a onclick="positioning(3)">朱村街道</a>
<a onclick="positioning(4)">新塘街道</a>
<a onclick="positioning(5)">沙浦街道</a>
<a onclick="positioning(6)">派潭街道</a>
</div>
</li>
</ul>
</li>
function positioning(x) {
if (x == 1) {
$("#x").text("113.7136555");
$("#y").text("23.164994");
$(".dizhi").text("荔城街道")
} else if (x == 2) {
$("#x").text("113.708026216129");
$("#y").text("23.3073192386678");
$(".dizhi").text("朱荔街道")
} else if (x == 3) {
$("#x").text("113.67449256307");
$("#y").text("23.404634");
$(".dizhi").text("朱村街道")
} else if (x == 4) {
$("#x").text("113.7807705");
$("#y").text("23.5331743939412");
$(".dizhi").text("新塘街道")
} else if (x == 5) {
$("#x").text("113.848521311222");
$("#y").text("23.453133084205");
$(".dizhi").text("沙浦街道")
} else if (x == 6) {
$("#x").text("113.890901311222");
$("#y").text("23.4004297508717");
$(".dizhi").text("派潭街道")
}
QuYu.removeAllFeatures();//清除上次定位的图层
var getFeatureParam, getFeatureBySQLService, getFeatureBySQLParams;
getFeatureParam = new SuperMap.REST.FilterParameter({
name: "区县界[email protected]",///图层名称
attributeFilter: "ID = " + x
});
getFeatureBySQLParams = new SuperMap.REST.GetFeaturesBySQLParameters({
queryParameter: getFeatureParam,
//["ZengChengregion:区县界_region_1"]:数据源名称:数据集名称 并不是图层名称
datasetNames: ["ZengChengregion:区县界_region_1"]
});
getFeatureBySQLService = new SuperMap.REST.GetFeaturesBySQLService(url2, {
eventListeners: { "processCompleted": AreaDW, "processFailed": processFailed }
});
getFeatureBySQLService.processAsync(getFeatureBySQLParams);
}//到指定的数据集,筛选到定位的数据
function AreaDW(getFeaturesEventArgs) {
var i, len, features, feature, result = getFeaturesEventArgs.result;
if (result && result.features) {
features = result.features
for (i = 0, len = features.length; i < len; i++) {
feature = features[i];
feature.style = style1;
QuYu.addFeatures(feature);//添加定位图层
var x = document.getElementById("x").innerHTML;
var y = document.getElementById("y").innerHTML;
map.setCenter(new SuperMap.LonLat(x, y), 1);
}
}
} //跳转到定位位置,并添加区域图层
function clean() {
//先清除上次的显示结果
QuYu.refresh();
QuYu.removeAllFeatures();
$(".dizhi").text("增城区")
map.setCenter(new SuperMap.LonLat(113.796098771673, 23.2557633015387), 2);
}//清除定位区域图层