參考文章:【WP7】判斷GPS座標是否在中國html
根據國家行政邊界斷定(光線投射算法)算法
按需求調整了原文中的部分邊界值,測試幾組邊界附近內外座標,結果較爲準確。數組
/** * 判斷GPS座標是否在多邊形中 * @param array list 國家行政邊界數組,[維度,經度] 的形式,取0,1鍵值 * @param float lat 維度 * @param float lng 經度 * @return bool */ var IsInsidePolygon = function(list, lat, lng){ var inside = false; var prePoint = list[0]; for(var i = 1; i < list.length; i++) { var nextPoint = list[i]; if(lng > Math.min(prePoint[1], nextPoint[1]) && lng <= Math.max(prePoint[1], nextPoint[1]) && lat <= Math.max(prePoint[0], nextPoint[0]) && prePoint[1] != nextPoint[1]) { xinters = (lng - prePoint[1]) * (nextPoint[0] - prePoint[0]) / (nextPoint[1] - prePoint[1]) + prePoint[0]; if(prePoint[0] == nextPoint[0] || lat <= xinters) inside ^= true; } prePoint = nextPoint; } return inside; }