C#实现WG84到GCJ02坐标系转换及点与多边形位置判断和统一GPS与高德坐标定位工具

在日常的地理信息系统(GIS)开发中,我们经常需要处理不同坐标系之间的转换以及地理位置相关的逻辑判断。本文将介绍如何使用C#实现两种常见的需求:WGS84坐标系到GCJ02(火星坐标系)的相互转换,以及判断一个点是否位于一个多边形地理围栏内。

一、坐标系转换

地球上的坐标系统有多种,常见的有国际标准的WGS84坐标系和国内地图服务(如高德、腾讯)采用的GCJ02坐标系。由于后者加入了人为的偏移,需要进行转换才能准确对应。

1. WG84转GCJ02(火星坐标系)

以下CoordinateConverter类中的方法实现了将WGS84坐标转换为GCJ02坐标。

该内容仅供参考

二、点与多边形位置判断

判断一个点是否在多边形内部是GIS中的常见问题,常用于电子围栏、区域判定等场景。

1. 定义点结构体和射线法判断点是否在多边形内

以下是Point结构体来表示经纬度点,使用射线法判断点是否在多边形内部的实现

该内容仅供参考

三、实际应用案例

以下是如何在实际业务中应用上述技术的示例,用于检查某个地点是否在指定的行政区域内。

该内容仅供参考

四、坐标系转换工具

以下是先去高德上获取区域点的所有坐标,用GPS定位和这个坐标去比较,看是否在这个范围内,然后进行转换。

该内容仅供参考

感谢阅读!本文涉及的坐标转换算法源于开源社区的智慧结晶,笔者仅作整理与实现。希望本文能为您解决实际开发问题提供帮助,欢迎交流指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值