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({
|
uni.getLocation({
|
||||||
type: 'gcj02', // 返回可以用于 wx.openLocation 的经纬度
|
type: 'gcj02', // 返回可以用于 wx.openLocation 的经纬度
|
||||||
geocode: true,
|
geocode: true,
|
||||||
@ -22,7 +22,7 @@ export const getLoalcation = (oMap, success, fail,nomove) => {
|
|||||||
latitude,
|
latitude,
|
||||||
longitude
|
longitude
|
||||||
} = res;
|
} = res;
|
||||||
if(!nomove){
|
if (!nomove) {
|
||||||
moveToLocation(oMap, longitude, latitude);
|
moveToLocation(oMap, longitude, latitude);
|
||||||
}
|
}
|
||||||
// if (markers) { //定位
|
// if (markers) { //定位
|
||||||
@ -203,8 +203,71 @@ export const moveToLocation = (oMap, longitude, latitude) => {
|
|||||||
oMap.moveToLocation(point);
|
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;
|
if (!arrRegionID || arrRegionID.length == 0) return;
|
||||||
const arrMethods = [];
|
const arrMethods = [];
|
||||||
arrRegionID.map(regionId => {
|
arrRegionID.map(regionId => {
|
||||||
@ -218,6 +281,8 @@ export const getRegionData = (arrRegionID, callback) => {
|
|||||||
const arrCircles = [];
|
const arrCircles = [];
|
||||||
const arrPolygons = [];
|
const arrPolygons = [];
|
||||||
const arrData = [];
|
const arrData = [];
|
||||||
|
const arrCirclesData=[];
|
||||||
|
const arrPolygonsData = [];
|
||||||
res.map(item => {
|
res.map(item => {
|
||||||
const {
|
const {
|
||||||
code,
|
code,
|
||||||
@ -240,7 +305,8 @@ export const getRegionData = (arrRegionID, callback) => {
|
|||||||
longitude: lng,
|
longitude: lng,
|
||||||
latitude: lat
|
latitude: lat
|
||||||
} = points[0];
|
} = 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) {
|
} else if (shapeType == 2) {
|
||||||
const arrPoint = points.map(p => {
|
const arrPoint = points.map(p => {
|
||||||
return {
|
return {
|
||||||
@ -249,6 +315,7 @@ export const getRegionData = (arrRegionID, callback) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
arrPolygons.push(addPolygon(scolor, fcolor, arrPoint));
|
arrPolygons.push(addPolygon(scolor, fcolor, arrPoint));
|
||||||
|
arrPolygonsData.push(data);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
@ -368,8 +435,6 @@ export function direction({
|
|||||||
latitude: elat
|
latitude: elat
|
||||||
},
|
},
|
||||||
success: (res) => {
|
success: (res) => {
|
||||||
|
|
||||||
console.log("111111111111111111",res)
|
|
||||||
const {
|
const {
|
||||||
polyline,
|
polyline,
|
||||||
distance
|
distance
|
||||||
@ -387,7 +452,7 @@ export function direction({
|
|||||||
}
|
}
|
||||||
const cnt = (distance / 1000).toFixed(2);
|
const cnt = (distance / 1000).toFixed(2);
|
||||||
let sdistance = distance + "m";
|
let sdistance = distance + "m";
|
||||||
if (cnt >= 1){
|
if (cnt >= 1) {
|
||||||
sdistance = cnt + "km";
|
sdistance = cnt + "km";
|
||||||
}
|
}
|
||||||
const data = {
|
const data = {
|
||||||
@ -402,4 +467,34 @@ export function direction({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
qqmapsdk.direction(options);
|
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