let disableArr2 = [
[
[
22.707472472403808,
113.63200378837065
],
[
22.693536477810635,
113.71467590332031
],
[
22.641960980882153,
113.67745972936974
],
[
22.653747749201052,
113.60151672153735
],
[
22.686504573778752,
113.53051756974311
]
],
[
[
22.969773432534776,
113.37615966796875
],
[
22.879970973215126,
113.36242675781251
],
[
22.955864273707803,
113.54507446289062
],
[
23.02615408624625,
113.53958129882814
]
],
[
[
22.72172372713302,
113.20861816406251
],
[
22.64823470853169,
113.20999145507814
],
[
22.63556020814839,
113.32397460937501
],
[
22.749588557614043,
113.30749511718751
],
[
22.836945920943855,
113.25256347656251
]
],
null,
[
[
22.266222283797777,
113.35144042968751
],
[
22.3424548401465,
113.84033203125001
],
[
22.469416459383854,
113.54095458984376
],
[
22.510019650257966,
113.99963378906251
]
]
];
判断一个点是否在一个区域或者多个区域内l
const IsInBannedArea = (lat: any, lng: any) => {
for (let k = 0; k < disableArr2.length; k++) {
if (
disableArr2[k] == null ||
disableArr2[k].length == 0 ||
disableArr2[k].length == 1 ||
disableArr2[k].length == 2
) {
continue;
}
let x = lat,
y = lng;
let inside = false;
for (
let i = 0, j = disableArr2[k].length - 1;
i < disableArr2[k].length;
j = i++
) {
let xi = disableArr2[k][i][0],
yi = disableArr2[k][i][1];
let xj = disableArr2[k][j][0],
yj = disableArr2[k][j][1];
let intersect =
yi > y != yj > y && x < ((xj - xi) * (y - yi)) / (yj - yi) + xi;
if (intersect) inside = !inside;
}
if (inside) {
return inside;
}
}
return false;
};
webgis判断一个点是否在一个区域或者多个区域内
发布于 2024-01-16 183 次阅读
Comments | NOTHING