欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

实时监控车辆是否出厂

程序员文章站 2022-09-07 17:38:11
function isExists(obj, objarr) { if (JSON.stringify(objarr).indexOf(JSON.stringify(obj)) >= 0) { return true; } return false; } function enclosure(obj ......

function isExists(obj, objarr) {
if (JSON.stringify(objarr).indexOf(JSON.stringify(obj)) >= 0) {
return true;
}
return false;
}

function enclosure(obj) {
var ptExist = [];
var _pts = [];//坐标
var _pt1 = new AMap.LngLat(116.400, 39.914);
var _pt2 = new AMap.LngLat(116.400, 39.914);
var _pt3 = new AMap.LngLat(116.400, 39.914);
var _pt4 = new AMap.LngLat(116.400, 39.914);
_pts.push(_pt1);
_pts.push(_pt2);
_pts.push(_pt3);
_pts.push(_pt4);

var polygons = [];
var objPolygon = new Object();
for (var i = 0; i < obj.length; i++) {
var arr = obj[i].ArticlePoints.split(",");
var x, y;
var pts = [];
for (var j = 0; j < arr.length; j++) {
if (j % 2 === 0) {
x = arr[j];
} else {
y = arr[j];
pts.push(new AMap.LngLat(parseFloat(x),parseFloat(y)));
}
}
objPolygon.polygon = new AMap.Polygon(pts);
objPolygon.id = obj.ID;
polygons.push(objPolygon);
}

for (var i = 0; i < polygons.length; i++) {
for (var index=0; index<_pts.length;index++) {
var result = AMapLib.GeoUtils.isPointInPolygon(_pts[index], polygons[i].polygon);
if (result) {
alert("点在多边形内");
if (!isExists(_pts[index], ptExist)) {
ptExist.push(_pts[index]);
_pts.pop(_pts[index]);
}
} else {
if (isExists(_pts[index], ptExist)) {
ptExist.pop(_pts[index]);
alert(polygons[i].id + "围栏有空位");//此处可以根据围栏可容纳的车辆数目进行alert是否有空位
}

}
}
}
}

 

这里要用到百度提供的判断类geoutils.js