isPointInPoly = (pt: { x: number; y: number }, poly: { x: number; y: number }[]) => {
//判断点是否在多边形内
let c = false,
i = -1,
len = poly.length,
j = len - 1;
for (; ++i < len; j = i)
((poly[i].y <= pt.y && pt.y < poly[j].y) || (poly[j].y <= pt.y && pt.y < poly[i].y)) &&
pt.x <
((poly[j].x - poly[i].x) * (pt.y - poly[i].y)) / (poly[j].y - poly[i].y) + poly[i].x &&
(c = !c);
return c;
};