BUG 25647

This commit is contained in:
aixianling
2021-12-23 11:07:33 +08:00
parent eb136723af
commit 0e455c79a4
3 changed files with 156 additions and 108 deletions

View File

@@ -59,10 +59,10 @@ export default {
this.$emit('update:map', this.tmap)
this.areaId && this.getMapArea()
},
getMapArea() {
let {mapLib, areaId, tmap: map} = this, keyword = areaId.substring(0, 6)
const fitBounds = (latLngList) => {
// 由多边形顶点坐标数组计算能完整呈现该多边形的最小矩形范围
fitBounds(latLngList, count = 0) {
// 由多边形顶点坐标数组计算能完整呈现该多边形的最小矩形范围
let {mapLib: TMap} = this
if (TMap) {
if (latLngList.length === 0) {
return null;
}
@@ -80,7 +80,14 @@ export default {
new TMap.LatLng(boundsS, boundsW),
new TMap.LatLng(boundsN, boundsE)
);
} else {
if (count < 5) {
this.fitBounds(latLngList, ++count)
}
}
},
getMapArea() {
let {mapLib, areaId, tmap: map} = this, keyword = areaId.substring(0, 6)
let polygons = new TMap.MultiPolygon({map, geometries: []});
new mapLib.service.District({
polygon: 2,
@@ -93,14 +100,14 @@ export default {
level.forEach((place) => {
let bounds = [];
let newGeometries = place.polygon.map((polygon, index) => {
bounds.push(fitBounds(polygon)); // 计算能完整呈现行政区边界的最小矩形范围
bounds.push(this.fitBounds(polygon)); // 计算能完整呈现行政区边界的最小矩形范围
return {
id: `${place.id}_${index}`,
paths: polygon, // 将得到的行政区划边界用多边形标注在地图上
};
});
bounds = bounds.reduce((a, b) => {
return fitBounds([
return this.fitBounds([
a.getNorthEast(),
a.getSouthWest(),
b.getNorthEast(),