百度地图只能画区县级及以上的边界,涉及到乡镇的就需要自己用一些工具大致描绘了,第一种比较笨的方式就是可以先画出区县边界,利用百度api的enableEditing方法,描画出乡镇边界,然后写一个方法,在控制台拿到这些边界点。但你对那个乡镇范围不熟悉,这是很困难且不切实际的;
编辑边界.gif
let newPoint1=[
[
117.13297086656458,
39.09685815576284
],
[
117.13214667756446,
39.09689463466133
],
[
117.13204204456459,
39.098249737446416
],
[
117.12882495656449,
39.09832613695057
],
[
117.12872352456456,
39.096929635685434
],
[
117.12793703456457,
39.09690196903776
],
[
117.12769195356456,
39.09689334677083
],
[
117.12730211456449,
39.0944707497389
]
]
let points = newPoint1.map(ele=>{
return new BMap.Point(ele[0], ele[1])
})
var polygons = new BMap.Polygon(points, {strokeColor:"blue", strokeWeight:5, strokeOpacity:0.5}); //创建折线
map.addOverlay(polygons);
polygons.enableEditing()
function getpoints() {//可以通过这个方法先拿到区县的边界点,然后编辑区县来获取乡镇的边界点
var pts = polygons.getPath();
var temp=[];
for (var i = 0; i < pts.length; i++) {
temp.push(pts[i].lng + "," + pts[i].lat);
}
console.log(temp.join(';')); //将编辑过的边界点输出到控制台
}
第二种方法可以利用地图下载器(不同的地图下载器,乡镇边界会有所不同,都只能画个大概),我用到的是bigMap地图下载器,下载乡镇的边界点,不过在百度地图上会有偏移,不过你可以用第一种方法调整,不过我感觉一个点一个点调整有点麻烦,会花费很多时间。我会把下载完乡镇边界点导入到这个网址下(http://geojson.io)编辑乡镇会快很多,可以导入区县的边界作为一个对照,大概的描画出乡镇边界。删除不必要的对照点,保存成json文件即可。
编辑边界2.gif