我有一需求为:判断一个点(经纬度范围)是否在一个多边形范围内(多个经纬度点)
这里我借助几何库( github.com/paulmach/orb)来处理地理空间数据
可以通过在线获取经纬度来确认代码正确性
go
package main
import (
"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("点不在多边形范围内")
}
}