2017-04-19 133 views
0

有一個包含緯度和經度值的對象列表,我想創建一個WKT String在我的Android應用程序中有一個POLYGON WKT。這POLYGON將稍後發送到服務器作爲JSON的一部分的其他數據。Android - 從經緯度座標列表中創建一個WKT字符串

我知道有可能使用ArcGIS lib來完成它,但是這個解決方案似乎對我的使用來說太強大了。這將是在我的應用程序中的lib的唯一用法,並增加了這個lib增加了30Mb的apk大小。我期待爲這件事找到更輕量級的解決方案。

This question解決了我需要的確切對照。在答案中提到了幾個庫,但是,檢查他們的文檔,似乎都沒有創建WKT,只能根據WKT String創建座標。

我如何創建一個WKT字符串,有一個經度/緯度座標列表?

回答

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

+0

謝謝你的回答。座標實際上存儲在具有'double getLatitude()'和'double getLongitude()'方法的對象中。我已經編輯了我的問題來說清楚。但我想我可以弄清楚如何使用你的想法使它工作。 – pjcastil