golang 判断一个点是否在一个多边形内

我有一需求为:判断一个点(经纬度范围)是否在一个多边形范围内(多个经纬度点)

这里我借助几何库( 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("点不在多边形范围内")
	}
}
相关推荐
rit84324992 分钟前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
开源技术5 分钟前
Python GeoPandas基础知识:地图、投影和空间连接
开发语言·ide·python
Cult Of8 分钟前
Alicea Wind的个人网站开发日志(2)
开发语言·python·vue
hdsoft_huge13 分钟前
1panel面板中部署SpringBoot和Vue前后端分离系统 【图文教程】
vue.js·spring boot·后端
我找到地球的支点啦14 分钟前
通信扩展——扩频技术(超级详细,附带Matlab代码)
开发语言·matlab
微小冷33 分钟前
Rust异步编程详解
开发语言·rust·async·await·异步编程·tokio
A9better36 分钟前
C++——不一样的I/O工具与名称空间
开发语言·c++·学习
清水白石00839 分钟前
《为什么说 deque 是 Python 滑动窗口的“隐藏神器”?深入解析双端队列的高效之道》
开发语言·python
杜子不疼.40 分钟前
Ascend_C自定义算子开发
c语言·开发语言
lekami_兰41 分钟前
RabbitMQ 延迟队列实现指南:两种方案手把手教你搞定
后端·rabbitmq·延迟队列