vue使用高德地图点击下钻上浮效果的实现思路

2020-06-12 20:52:44易采站长站整理

这里给使用高德地图下钻提供一个思路

先讲下我的思路,高德地图api有一个地图绘制区域,你只要提供区码,就可以绘制该区域。以浙江省为例,我一开给浙江省的区码就可以绘制出浙江省的区域,接下来我要进入杭州市,当我点击杭州市的时候我先清空地图上的覆盖层并且能获取到‘杭州市’这个字符串,通过对比这个字符串我就可以给出杭州市的区码,最后绘制出杭州市的覆盖层。
接下来看代码:

第一步

绘制地图:


//创建地图
this.map = new AMap.Map("container", {
cursor: "default",
resizeEnable: true,
expandZoomRange: true,
gestureHandling: "greedy",
// zooms: [8, 20],
zoom: 12,
defaultCursor: "pointer",
mapStyle: "amap://styles/f6e3818366ba5268d50ea3f2296eb3eb",
showLabel: true
});

第二步(关键)


let that = this;
AMapUI.loadUI(["geo/DistrictExplorer"], DistrictExplorer => {
//创建一个实例
that.districtExplorer = new DistrictExplorer({
eventSupport: true,
map: this.map
});

//设置绘制的子区域和父区域的自身属性(包括线颜色,透明度等)执行renderAreaNode()就可以开始绘制区域了
function renderAreaNode(areaNode) {
//绘制子级区划
that.districtExplorer.renderSubFeatures(areaNode, function(
feature,
i
) {
return {
cursor: "default",
bubble: true,
// strokeColor: "#00a4ce", //线颜色
strokeColor: "#03d7a1",
strokeOpacity: 1, //线透明度
strokeWeight: 1.5, //线宽
// fillColor: "#09152a", //填充色
fillColor: "#072942",
fillOpacity: 0.1 //填充透明度
};
});
//绘制父区域
that.districtExplorer.renderParentFeature(areaNode, {
cursor: "default",
bubble: true,
// strokeColor: "#00a4ce", //线颜色
strokeColor: "#03d7a1",
strokeOpacity: 1, //线透明度
strokeWeight: 1.5, //线宽
// fillColor: "#09152a", //填充色
fillColor: "#072942",
fillOpacity: 0.6 //填充透明度
});
}

// var adcodes = [];
// //根据角色来绘制不同的区域
// that.adcodes = [
// 330200 //浙江
// ];
that.map.clearMap(); //清空所有绘制物
//绘制多区域
that.districtExplorer.loadMultiAreaNodes(this.adcodes, function(
error,
areaNodes
) {
//设置定位节点,支持鼠标位置识别
//注意节点的顺序,前面的高优先级
that.districtExplorer.setAreaNodesForLocating(areaNodes);
//清除已有的绘制内容
that.districtExplorer.clearFeaturePolygons();