2017-04-19 5 views
0

Mit einer Liste von Objekten, die Breiten- und Längenwerte enthalten, möchte ich eine WKT String erstellen, um eine WKT in meiner Android-Anwendung zu haben. Diese POLYGON wird später als Teil eines json unter anderen Daten an den Server gesendet.Android - Erstellen einer WKT-Zeichenfolge aus einer Liste von Breiten-/Längenkoordinaten

Ich weiß, es ist möglich, es mit ArcGIS Lib zu tun, aber diese Lösung scheint zu robust für meine Verwendung. Dies wäre die einzige Verwendung der lib in meiner App und das Hinzufügen dieser Lib in 30 MB der Größe der apk erhöht. Ich hatte erwartet, eine leichtere Lösung für diese Angelegenheit zu finden.

This question adressiert das genaue Gegenteil dessen, was ich brauche. Es gibt ein paar Bibliotheken, die in den Antworten erwähnt werden, aber wenn man ihre Dokumentation überprüft, scheint keiner von ihnen ein WKT zu erstellen, sondern kann nur Koordinaten basierend auf einem WKT String erstellen.

Wie kann ich eine WKT-Zeichenfolge mit einer Liste von Breiten-/Längenkoordinaten erstellen?

Antwort

0

Sie haben nicht angegeben, wie die Breiten-/Längenkoordinaten gespeichert werden, daher nehme ich an, dass sie in einem double Array mit verschachtelten Breiten-/Längenkoordinaten gespeichert sind. Die folgende Funktion generiert ein Polygon-WKT aus dem Array, vorausgesetzt, das Polygon enthält keine Lücken.

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(); 
} 

Auch posted in GitHub Gist.

+0

Vielen Dank für Ihre Antwort. Die Koordinaten werden tatsächlich in einem Objekt mit den Methoden double getLatitude() und double getLongitude() gespeichert. Ich habe meine Frage bearbeitet, um es klarzustellen. Aber ich denke, ich kann herausfinden, wie ich es jetzt mit Ihrer Idee umsetzen kann. – pjcastil

Verwandte Themen