2017-04-19 10 views
0

위도 및 경도 값이 포함 된 개체 목록이있는 경우 안드로이드 응용 프로그램에서 POLYGON WKT가되도록 WKT String을 만들고 싶습니다. 이 POLYGON은 나중에 json의 일부로 다른 데이터 중에서 서버로 전송됩니다.Android - 위도/경도 좌표 목록에서 WKT 문자열 만들기

나는 ArcGIS lib를 사용하여이를 수행 할 수 있음을 알고 있지만,이 솔루션은 내 용도에 비해 너무 강력합니다. 이것은 내 응용 프로그램에서 lib의 유일한 사용법이며이 lib를 추가하는 것은 apk의 크기 인 30MB로 증가했습니다. 이 문제에 대해 좀 더 가벼운 솔루션을 찾으려고했습니다.

This question은 내가 필요한 것의 정확한 타원을 처리합니다. 답변에 언급 된 몇 개의 libs가 있지만 설명서를 확인하거나 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