如何确定是否有纬度和经度在椭圆内

时间:2011-08-16 20:39:24

标签: matlab point ellipse

我有描述旋转椭圆的数据(纬度经度坐标中椭圆的中心,以千米为单位的长轴和短轴的长度,以及椭圆定向的角度)。我不知道焦点的位置,但是假设有办法以某种方式解决它们。我想确定一个特定的纬度经度点是否在这个椭圆内。我找到了一种很好的方法来确定一个点是否在笛卡尔网格上的椭圆内,但不知道如何处理纬度经度点。 任何帮助将不胜感激。

-Cody O。

3 个答案:

答案 0 :(得分:0)

在笛卡尔平面上执行此操作的标准方法是使用光线投射算法。由于您在球体上,因此需要使用较大的圆距来准确表示椭圆。

编辑:标准光线投射算法适用于您的椭圆,但其精度取决于a)椭圆的小小,以及b)它与赤道的接近程度。请记住,您必须了解特殊情况,例如日期行,其中它来自179 - > 180 / -180 - > -179。

答案 1 :(得分:0)

由于您已经有办法在笛卡尔网格上解决问题,我只想将您的点转换为UTM坐标。点和长度都将以米为单位,检查应该很容易。有很多matlab代码可用于从LL到UTM的转换。 Like this

您没有提到椭圆轴在描述中的长度。如果它们很长(比如几百公里),这种方法可能对你不起作用,你将不得不求助于思考大圆等等。您必须确保指定要转换的UTM区域。您希望所有积分都以相同的UTM区域结束,否则您将无法将这些积分联系起来。

答案 2 :(得分:0)

经过对我的问题的更多研究并在另一个论坛发帖后,我能够找到解决方案。我的椭圆相对较小,所以我认为它是一个真正的(扁平)椭圆。我能够找到椭圆焦点的纬度,然后如果从感兴趣点到每个焦点的距离之和小于2a(长轴半径),则它在椭圆内。谢谢你的建议。 -Cody