【问题标题】:Android - Creating a WKT string out of a list of lat/long coordinatesAndroid - 从纬度/经度坐标列表中创建 WKT 字符串
【发布时间】:2017-04-19 19:17:31
【问题描述】:

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

我知道使用ArcGIS lib 可以做到这一点,但是这个解决方案对于我的使用来说似乎太健壮了。这将是我的应用程序中该库的唯一用法,并且添加此库会使 apk 的大小增加 30Mb。我期待为这个问题找到一个更轻量级的解决方案。

This question 与我需要的完全相反。答案中提到了几个库,但是,检查他们的文档,似乎都没有创建 WKT,只能基于 WKT String 创建坐标。

如何创建一个包含纬度/经度坐标列表的 WKT 字符串?

【问题讨论】:

    标签: android geometry wkt


    【解决方案1】:

    您没有指定纬度/经度坐标的存储方式,因此我假设它们存储在包含交错纬度/经度坐标的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。

    【讨论】:

    • 感谢您的回答。坐标实际上存储在具有double getLatitude() 和double getLongitude() 方法的对象中。我已经编辑了我的问题以使其清楚。但我想我现在可以用你的想法弄清楚如何让它发挥作用。
    猜你喜欢
    • 2021-06-27
    • 2011-06-14
    • 1970-01-01
    • 2021-04-15
    • 1970-01-01
    • 2019-08-15
    • 2021-12-11
    • 2013-09-04
    • 2020-05-04
    相关资源
    最近更新 更多