map.js修改

This commit is contained in:
小小 2025-04-29 16:36:28 +08:00
parent b6b8b8eb2f
commit 97fc4a14bb

View File

@ -203,8 +203,71 @@ export const moveToLocation = (oMap, longitude, latitude) => {
oMap.moveToLocation(point);
}
//运营区
export function getOperation(zoneId, callback) {
const params = {
zoneId
}
api.callOperateApi("ebikeRegion/getOperation", params, "get").then((res) => {
const {
code,
message,
data
} = res;
if (code != 200) {
showModelMessage(message);
if(callback) callback(null);
return;
}
const arrCircles = [];
const arrPolygons = [];
const arrRegionID = [];
const arrCirclesData=[];
const arrPolygonsData = [];
data.map((item, index) => {
const {
shapeType,
regionId,
radius,
points
} = item;
arrRegionID.push(regionId);
const scolor = "#578FD4";
const fcolor = "rgba(192,218,245,0.3)";
if (shapeType == 1) {
const {
longitude: lng,
latitude: lat
} = points[0];
arrCirclesData.push(item);
arrCircles.push(addCirle(scolor, fcolor, lng, lat, radius));
} else if (shapeType == 2) {
const arrPoint = points.map(p => {
return {
longitude: p.longitude,
latitude: p.latitude
}
})
arrPolygonsData.push(item);
arrPolygons.push(addPolygon(scolor, fcolor, arrPoint));
}
});
if(callback) callback({
arrRegionID,
arrCircles,
arrPolygons,
arrData: data,
arrCirclesData,
arrPolygonsData
});
})
};
//站点、停车区
export const getRegionData = (arrRegionID, callback) => {
export function getRegionData (arrRegionID, callback) {
if (!arrRegionID || arrRegionID.length == 0) return;
const arrMethods = [];
arrRegionID.map(regionId => {
@ -218,6 +281,8 @@ export const getRegionData = (arrRegionID, callback) => {
const arrCircles = [];
const arrPolygons = [];
const arrData = [];
const arrCirclesData=[];
const arrPolygonsData = [];
res.map(item => {
const {
code,
@ -241,6 +306,7 @@ export const getRegionData = (arrRegionID, callback) => {
latitude: lat
} = points[0];
arrCircles.push(addCirle(scolor, fcolor, lng, lat,radius));
arrCirclesData.push(data);
} else if (shapeType == 2) {
const arrPoint = points.map(p => {
return {
@ -249,6 +315,7 @@ export const getRegionData = (arrRegionID, callback) => {
}
})
arrPolygons.push(addPolygon(scolor, fcolor, arrPoint));
arrPolygonsData.push(data);
}
})
})
@ -368,8 +435,6 @@ export function direction({
latitude: elat
},
success: (res) => {
console.log("111111111111111111",res)
const {
polyline,
distance
@ -403,3 +468,33 @@ export function direction({
}
qqmapsdk.direction(options);
}
// 几何中心计算算法(适用于任意多边形)
export function getPolygonCenter(points) {
let X = 0, Y = 0, Z = 0;
const pointCount = points.length;
points.forEach(point => {
const lat = point.latitude * Math.PI / 180;
const lng = point.longitude * Math.PI / 180;
const x = Math.cos(lat) * Math.cos(lng);
const y = Math.cos(lat) * Math.sin(lng);
const z = Math.sin(lat);
X += x;
Y += y;
Z += z;
});
X /= pointCount;
Y /= pointCount;
Z /= pointCount;
const lng = Math.atan2(Y, X);
const lat = Math.atan2(Z, Math.sqrt(X * X + Y * Y));
return {
lat: lat * 180 / Math.PI,
lng: lng * 180 / Math.PI
};
}