php - 检查给定区域/坐标内的点的算法
问题描述
我在这里需要帮助。我仍然不知道如何检查一个点是否在某个位置(由某些坐标给出的位置)内。例如,我有一个区域,具有给定的纬度和经度,如这张图片
(https://i.stack.imgur.com/zR9VX.png)(被线覆盖的那个)
和里面的一个点(标志)。检查该点是在区域内还是区域外的最快方法是什么?
请在这里帮助我
解决方案
我们从纬度线和北极之间的地球面积公式开始。
A = 2*pi*R*h
其中R是地球的半径,h是从包含纬线的平面到极点的垂直距离。我们可以使用三角函数计算 h
h = R*(1-sin(lat))
因此,一条纬线以北的区域为
A = 2*pi*R^2(1-sin(lat))
两条纬线之间的面积是一个纬度以北的面积与另一纬度以北的面积之差:
A = |2*pi*R^2(1-sin(lat2)) - 2*pi*R^2(1-sin(lat1))|
= 2*pi*R^2 |sin(lat1) - sin(lat2)|
经纬矩形的面积与经度差成正比。我刚刚计算的面积是经线之间相差 360 度的面积。因此我们寻求的区域是
A = 2*pi*R^2 |sin(lat1)-sin(lat2)| |lon1-lon2|/360
= (pi/180)R^2 |sin(lat1)-sin(lat2)| |lon1-lon2|
推荐阅读
- tensorflow - Tensorflow 管道,批量预处理:初学者问题
- vb.net - 通过 COM 从 VB6 访问嵌套的 VB.NET 类
- ios - IOS中的领域:插入对象后无法更改主键
- java - Hibernate:在广泛的类层次结构中有效地加载具有祖先类型的对象列表
- reason - 在 ReasonReact 中处理孩子
- spring - SpringBoot - 解析 HTTP 请求标头时出错(Oauth2 https 端点)
- laravel - 从查询中的日期属性获取年份
- ionic-framework - 无法在 IONIC 中的另一个类 app.component.ts 上获取存储变量
- apache-kafka - Kafka Streams:对象创建
- javascript - 如何使用 reactjs 使用相同的输入框存储不同的值?