map.js修改
This commit is contained in:
parent
b6b8b8eb2f
commit
97fc4a14bb
@ -13,7 +13,7 @@ export const getMap = (mapid, instance) => {
|
||||
});
|
||||
}
|
||||
//获取当前定位
|
||||
export const getLoalcation = (oMap, success, fail,nomove) => {
|
||||
export const getLoalcation = (oMap, success, fail, nomove) => {
|
||||
uni.getLocation({
|
||||
type: 'gcj02', // 返回可以用于 wx.openLocation 的经纬度
|
||||
geocode: true,
|
||||
@ -22,7 +22,7 @@ export const getLoalcation = (oMap, success, fail,nomove) => {
|
||||
latitude,
|
||||
longitude
|
||||
} = res;
|
||||
if(!nomove){
|
||||
if (!nomove) {
|
||||
moveToLocation(oMap, longitude, latitude);
|
||||
}
|
||||
// if (markers) { //定位
|
||||
@ -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,
|
||||
@ -240,7 +305,8 @@ export const getRegionData = (arrRegionID, callback) => {
|
||||
longitude: lng,
|
||||
latitude: lat
|
||||
} = points[0];
|
||||
arrCircles.push(addCirle(scolor, fcolor, lng, lat, radius));
|
||||
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
|
||||
@ -387,7 +452,7 @@ export function direction({
|
||||
}
|
||||
const cnt = (distance / 1000).toFixed(2);
|
||||
let sdistance = distance + "m";
|
||||
if (cnt >= 1){
|
||||
if (cnt >= 1) {
|
||||
sdistance = cnt + "km";
|
||||
}
|
||||
const data = {
|
||||
@ -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
|
||||
};
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user