0
我想測試Google Maps多段線是否通過Google Maps多邊形。聽起來很簡單。但我已經搜索並搜索......並沒有找到真正的答案。此多段線是否穿過此多邊形?
最近我得到了這個功能。它的工作原理令人沮喪地回報了偶爾的誤報。
//nvert = the number of points in the polygon
//vertx = an array of all the polygon's latitudes
//verty = an array of all the polygon's longitudes
//elat = the current point's latitude
//elng = the current point's longitude
function pnpoly(nvert, vertx, verty, elat, elng) {
var i, j, c = false;
for(i = 0, j = nvert-1; i < nvert; j = i++) {
if(((verty[i] > elng) != (verty[j] > elng)) &&
(elat < (vertx[j] - vertx[i]) * (elng - verty[i])/(verty[j] - verty[i]) + vertx[i])) {
c = !c;
}
}
return c;
}
之前,我嘗試了一個全新的方法(crazy math idea這讓我回到12年級微積分),我不知道任何人知道如何做到這一點。
回想起來,我認爲我的問題是通過這個函數的所有點 - 包括最後一點和第一點在一起。這將會產生一個封閉的多邊形,它會返回一個誤報。 – podcastfan88 2012-03-31 22:01:21