Android - 从纬度/经度坐标列表中创建WKT字符串

时间:2017-04-19 19:17:32

标签: android geometry wkt

拥有包含纬度和经度值的对象列表,我想在我的Android应用中创建一个WKT String以获得POLYGON WKT。作为json的一部分,此POLYGON将稍后发送到服务器和其他数据。

我知道可以使用ArcGIS lib来完成它,但是这个解决方案似乎对我的使用来说太强大了。这将是我的应用程序中lib的唯一用法,并添加此lib增加了30Mb的apk大小。我期待找到一个更轻量级的解决方案。

This question解决了我需要的确切对话。答案中提到了几个库,但是检查他们的文档,似乎都没有创建WKT,只能创建基于WKT String的坐标。

如何创建具有纬度/经度坐标列表的WKT字符串?

1 个答案:

答案 0 :(得分:0)

您没有指定纬度/经度坐标的存储方式,因此我假设它们存储在包含交错纬度/经度坐标的double数组中。以下函数从数组生成多边形WKT,假设多边形不包含孔。

 public static String polygonWkt(double[] latlon){
     if(latlon.length%2 != 0)
         throw new IllegalArgumentException("latlon length is not even");
     StringBuilder builder=new StringBuilder();
     builder.append("POLYGON((");
     for(int i=0;i<latlon.length;i+=2){
         if(i>0){
             builder.append(",");
         }
         builder.append(latlon[i]+" "+latlon[i+1]);
     }
     builder.append("))");
     return builder.toString();
 }

posted in GitHub Gist