【问题标题】:Determining the method to get proper order of (lat, lang) pairs to draw a closed regular polygon of N Sides确定获得正确顺序 (lat, lang) 对以绘制 N 边的闭合正多边形的方法
【发布时间】:2014-01-15 06:31:25
【问题描述】:

目前在实现服务调用的过程中,从数据库中获取一些 (Lat, lng) 对,然后对其进行处理以确定最终顺序,以便以某种方式排列这些点,以便如果我从铅笔开始从第一个点开始,通过有序点,我最终绘制了一个 N 边的封闭多边形。

为了更清楚,请考虑以下 (Lat, Lng) 对:

(42.45, -73), (34, -78), (42.78, -72.45), (42.98, -72.56)..等等..

如果我们确定四点,我能想到的是:

  1. (左上角)

  2. (左下角)

  3. (右下角)

  4. (右上)

然后我们可以开始绘制第一条线,例如 (topLeft)--->(bottomLeft),因为这条线中会有很多点,所以我们在前往 (bottomLeft) 的路上扫描它们等等...

topLeft 的标准可能类似于所有 (lat, lng) 对中的 (min(lat), max(lng))。

如果上述算法是完成任务的一种方法,或者有更好的方法可以做到这一点,请告知?

注意:- 使用 Java。

【问题讨论】:

    标签: java map polygon latitude-longitude


    【解决方案1】:

    我会这样做的

    • 确定地理中心(即平均纬度/平均经度)
    • 确定从中心到每个点的角度
    • 对这些角度进行排序
    • 按角度顺序绘制点。

    如果这些点可以跨越日期线(经度 180 度),请务必小心

    【讨论】:

    • 谢谢!但我实际上并不是渲染多边形的人,我基本上是在对点进行排序,以便可以按该顺序绘制一个封闭的多边形,所以正如我所看到的,当你“对这些进行排序”时,你会得到有序的点角度”?
    • 没错。这个算法应该保证点的返回顺序使得绘制时不会有交叉线。
    • 如果这些点非常接近(并且远离国际日期变更线!),您可以使用正常的笛卡尔 X,Y 方程来近似它。否则,有这个:stackoverflow.com/questions/3932502/…
    猜你喜欢
    • 2020-02-09
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2010-11-15
    • 1970-01-01
    • 2015-03-21
    • 1970-01-01
    • 2015-11-24
    相关资源
    最近更新 更多