【问题标题】:given latitude and longitude points, find edge points and polygon area给定纬度和经度点,找到边缘点和多边形区域
【发布时间】:2012-03-21 19:15:46
【问题描述】:

从标题中你可以读到我得到了纬度和经度点。它们存储在csv 文件中。最多有 40k 行。

"45.01234","9.12345"
"46.11111","9.12345"
"47.22222","9.98765"
...

我的第一个问题如何找到边缘坐标,完成后,它进入我需要从这些边缘点多边形区域计算的第二个问题。下图是这些点的样子,边缘点用蓝线连接。

我在 google 和 SO 上搜索了这些问题:thisthisthisthis

首先,我会将所有纬度和经度点从 csv 文件存储到数组列表中。 我不知道如何找到边缘点。但是在找到边缘点之后,找到多边形面积的一种方法是将其划分为三角形,然后通过Heron公式计算三角形面积。地球是球形的,所以要计算我需要使用上面给出的链接中的建议的面积。

是否有针对我的问题的框架来解决我的问题?自己做的方法是什么?当然,代码应该是内存和 CPU 高效的。

【问题讨论】:

  • +1 表示研究工作,+1 表示图片,-1 表示有点宽泛的问题。净 +1!
  • @Perception 感谢您对我的信任 :)

标签: java geolocation mapping latitude-longitude


【解决方案1】:

您正在寻找您的积分的convex hull。这实际上是一个重复的问题:Draw a convex hull using the given points in java/android

【讨论】:

  • 实际上,因为他正在处理纬度和经度点,我认为标准的凸包算法不会起作用,至少不像您的链接中描述的那样。问题是这些算法假设这些点是笛卡尔坐标,但是 (lat,lon)-points 绝对是不是笛卡尔坐标的,因为经度“环绕”在 +180/-180(反子午线) .因此,如果您有任何跨越反子午线的点,您将得到巨大的船体,它们会错误地环绕世界。
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 2013-08-02
  • 1970-01-01
  • 2016-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多