Java 确定绘制N边闭合正多边形的(lat,lang)对的适当顺序的方法

Java 确定绘制N边闭合正多边形的(lat,lang)对的适当顺序的方法,java,map,polygon,latitude-longitude,Java,Map,Polygon,Latitude Longitude,目前,在实现服务调用的过程中,从DB中提取一些(Lat,lng)对,然后对它们进行处理以确定最终顺序,以便以某种方式排列点,这样,如果我从第一个点开始,用铅笔穿过已排序的点,我最终会绘制一个有N条边的闭合多边形 P>更清楚地考虑如下(LAT,LNG)对: (42.45,-73),(34,-78),(42.78,-72.45),(42.98,-72.56)…等等 我能想到的是,如果我们确定四点: (左上角) (左下角) (右下角) (右上角) 然后我们可以开始画第一条线,如(左上)-->(左下)

目前,在实现服务调用的过程中,从DB中提取一些(Lat,lng)对,然后对它们进行处理以确定最终顺序,以便以某种方式排列点,这样,如果我从第一个点开始,用铅笔穿过已排序的点,我最终会绘制一个有N条边的闭合多边形

<> P>更清楚地考虑如下(LAT,LNG)对:

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

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

  • (左上角)

  • (左下角)

  • (右下角)

  • (右上角)
  • 然后我们可以开始画第一条线,如(左上)-->(左下),因为这条线中会有很多点,所以我们在(左下)的路上扫描它们,依此类推

    左上角的标准可能类似于所有(lat,lng)对中的(最小(lat),最大(lng))

    请告知上述算法是完成任务的一种方法还是有更好的方法

    注意:-使用Java。

    我会通过

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

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

    谢谢!但实际上我并不是绘制多边形的那个人,我基本上是对点进行排序,这样就可以按照这个顺序画一个闭合多边形,所以我看到,当你“排序这些角度”时,你会得到点上的有序点?没错。此算法应保证返回点的顺序,以便绘制时不会出现交叉线。如果点非常接近(并且远离国际日期线!),则可以使用正常的笛卡尔X,Y方程进行近似计算。否则,就有这个: