綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 關於google map api的kml

[複製連結] 查看: 1896|回覆: 1|好評: 0
跳轉到指定樓層
樓主
aaa908 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2011-11-25 09:56

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
請問Android有像iphone一樣可以直接呼叫kml檔,顯示路線圖嗎




「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
ploglin | 收聽TA | 只看該作者
發表於 2011-11-25 19:12
本帖最後由 ploglin 於 2011-11-25 19:14 編輯

Android 在 MAP 的部份有直接支援路線規劃。
我的做法是呼叫 google api 取得路線的所有經緯度,然後再呼叫 LineItemizedOverlay 去實作

LineItemizedOverlay.java
  1. public class LineItemizedOverlay extends Overlay {

  2.         private ArrayList<GeoPoint> mOverlays = new ArrayList<GeoPoint>();
  3.         private int colour;
  4.         private static final int ALPHA = 120;
  5.         private static final float STROKE = 4.5f;
  6.         private final Path path;
  7.         private final Point p;
  8.         private final Paint paint;

  9.         public LineItemizedOverlay(ArrayList<GeoPoint> mOverlays) {
  10.                 this.mOverlays = mOverlays;
  11.                 path = new Path();
  12.                 p = new Point();
  13.                 paint = new Paint();
  14.         }

  15.         @Override
  16.         public void draw(Canvas canvas, MapView mapView, boolean shadow) {
  17.                 super.draw(canvas, mapView, shadow);

  18.                 paint.setColor(Color.BLUE);
  19.                 paint.setAlpha(ALPHA);
  20.                 paint.setAntiAlias(true);
  21.                 paint.setStrokeWidth(STROKE);
  22.                 paint.setStyle(Paint.Style.STROKE);

  23.                 redrawPath(mapView);
  24.                 canvas.drawPath(path, paint);
  25.         }

  26.         private void redrawPath(final MapView mv) {
  27.                 final Projection prj = mv.getProjection();
  28.                 path.rewind();
  29.                 final Iterator<GeoPoint> it = mOverlays.iterator();
  30.                 prj.toPixels(it.next(), p);
  31.                 path.moveTo(p.x, p.y);
  32.                 while (it.hasNext()) {
  33.                         prj.toPixels(it.next(), p);
  34.                         path.lineTo(p.x, p.y);
  35.                 }
  36.                 path.setLastPoint(p.x, p.y);
  37.         }

  38. }
複製代碼
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則