当前位置: 首页 > article >正文

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

我有一需求为:判断一个点(经纬度范围)是否在一个多边形范围内(多个经纬度点)
这里我借助几何库( github.com/paulmach/orb)来处理地理空间数据

可以通过在线获取经纬度来确认代码正确性

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("点不在多边形范围内")
	}
}

http://www.kler.cn/a/441668.html

相关文章:

  • 【MySQL】数据库基础知识
  • 【达梦数据库】两地三中心环境总结
  • WPF2-在xaml为对象的属性赋值
  • 事件和方法
  • FPGA开发中的团队协作:构建高效协同的关键路径
  • Visual Studio Community 2022(VS2022)安装方法
  • Linux应用开发————mysql数据库表
  • MySQL专题:事务隔离机制详解
  • 人工智能增强的音频和聊天协作服务
  • Pyside6 --Qt设计师--简单了解各个控件的作用之:Buttons
  • Git 安装全教程:从入门到上手
  • MySQL有哪些高可用方案?
  • vscode 设置和引用变量
  • CTF 攻防世界 Web: FlatScience write-up
  • java+springboot+mysql学业跟踪指导管理系统
  • PHP 应用 ImageMagick
  • 回型矩阵:JAVA
  • 如何通过递延型指标预测项目的长期成果?
  • 多音轨视频使用FFmpeg删除不要音轨方法
  • 性能参数对比
  • Windows server 服务器网络安全管理之防火墙出站规则设置
  • Next.js流量教程:如何使用 Next.js 构建 SEO 友好的博客
  • 【Unity基础】Unity中拖拽3D物体的过程分析和实现方法
  • 〔 MySQL 〕视图
  • CMD使用SSH登陆Ubuntu
  • llm chat场景下的数据同步