本组件适用于需要在地图上展示和选择行政区划的场景,如省市区选择、行政区划查询等。
此组件提供以下基本功能:
const map = new BMapGL.Map('container')
初始化百度地图 WebGL 版本,并指定容器元素 ID。
var dist = new BMapGL.DistrictLayer({
name: '(' + proname + ')',
kind: prokind,
fillColor: '#618bf8',
strokeColor: '#daeafa',
viewport: true,
})
加载行政区数据,并根据选择的省份和层级设置行政区图层属性。
function changeProvince(ele) {
proname = ele.value
addDis(ele.value, prokind)
}
function changeDepth(ele) {
prokind = ele.value
addDis(proname, ele.value)
}
这两个函数实现了切换省份和层级功能。当用户选择不同的省份或层级时,重新加载行政区数据,并更新地图上的行政区显示。
async loadScripts(sources) {
await Promise.all(sources.map((src) => this.loadScript(src)))
}
async loadStyles(hrefs) {
await Promise.all(hrefs.map((href) => this.loadStyle(href)))
}
这两个函数用于加载必要的脚本和样式文件,如百度地图 API、行政区数据等。
在开发此组件过程中,我学到了以下经验:
未来,此组件可以进行以下拓展和优化: