我有一需求为:判断一个点(经纬度范围)是否在一个多边形范围内(多个经纬度点)
这里我借助几何库( github.com/paulmach/orb)来处理地理空间数据
可以通过在线获取经纬度来确认代码正确性
package mainimport ("fmt""github.com/paulmach/orb""github.com/paulmach/orb/planar"
)func main() {// 定义多边形范围 (经纬度点的顺序很重要,需要闭合:首尾点相同)polygon := orb.Polygon{{{106.518314, 29.627223}, // 起始位置{106.519419, 29.627223},{106.518238, 29.626399},{106.519491, 29.626435},{106.518314, 29.627223}, // 回到起始},}// 目标点point := orb.Point{106.518907, 29.626458} // 假设是一个经纬度点// 判断点是否在多边形内if planar.PolygonContains(polygon, point) {fmt.Println("点在多边形范围内")} else {fmt.Println("点不在多边形范围内")}
}