Androidアプリにルート表示する(その6)
デコーダに関する問い合わせが多いので、恥かしながら公開しちゃいます。 本業はハードエンジニアなので質は問わないでくださいね m(--)m デコード処理 public class decoder { public static boolean LogPrint,LogPrint2; //デバッグ用フラグ public static ArrayList<GeoPoint> decPolylines(StringBuffer polylines) { ArrayList<Double> point = decode(polylines); ArrayList<GeoPoint> ret = new ArrayList<GeoPoint>(); int lat=(int)(point.get(0)*1E6); int lng=(int)(point.get(1)*1E6); ret.add(new GeoPoint(lat,lng)); for(int i=2;i<point.size();) { lat=lat+(int)(point.get(i++)*1E6); lng=lng+(int)(point.get(i++)*1E6); ret.add(new GeoPoint(lat,lng)); } return ret; } private static ArrayList<Double> decode(StringBuffer input) { ArrayList<Double> ret =new ArrayList<Double>(); ArrayList<Byte> bit =new ArrayList<Byte>(); ArrayList<Byte> num =new ArrayList<Byte>(); // エスケープされている「\」を削除 while(true) { int i=input.indexOf("\\"+"\