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("点不在多边形范围内")
	}
}
相关推荐
TracyCoder1236 小时前
MySQL 实战宝典(八):Java后端MySQL分库分表工具解析与选型秘籍
java·开发语言·mysql
非凡的世界6 小时前
为什么我和越来越多的PHP程序员,选择了 Webman ?
开发语言·php·workman·webman
q***33376 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
MarkHD6 小时前
车辆TBOX科普 第45次
java·开发语言
还债大湿兄6 小时前
阿里通义千问调用图像大模型生成轮动漫风格 python调用
开发语言·前端·python
q***42826 小时前
SpringBoot Maven快速上手
spring boot·后端·maven
鸭子程序员7 小时前
c++ 算法
开发语言·c++·算法
Victor3567 小时前
Redis(153)Redis的网络使用如何监控?
后端
码一行7 小时前
Eino AI 实战:解析 PDF 文件 & 实现 MCP Server
后端·go
Victor3567 小时前
Redis(152) Redis的CPU使用如何监控?
后端