2012-12-27 99 views
0

我是android領域的新手。我寫了一個android App1,它將從網絡提供商獲取經度和緯度值,並將其存儲在我的本地服務器(LAMP)中。加入標記在android google地圖中繪製路徑

我還創建了一個MYSQL DB表,它具有3列(lat,lon,id),它們具有使用網絡提供程序檢索到的值(lat和lon)。目前在我的表格中有超過10的值。

我創建了JSON對象來獲取這些值MYSQL DB在我的Android App2中使用PHP腳本。所有這些事情都很好。我還創建了MapActivity,它將使用標記在地圖上繪製這些緯度和經度值。

我現在要做的就是加入這些標記在谷歌地圖上繪製路徑。怎麼做。請幫忙

回答

3

試試這個。

String uri = "http://maps.google.com/maps?saddr=" + currentLatitude+","+currentLongitude+"&daddr="+fixedLatitude+","+fixedLongitude; 
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(uri)); 
intent.setClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity"); 
startActivity(intent); 

這可以幫助你

+0

我試了一下..這是工作的罰款。但我需要做的是隻加入標記以顯示通過加入線路行進的路線。它自動顯示駕駛方向,而不是我們經過的路線。如果我錯了,請糾正我.. – user1917865

+0

已經看起來這個[http://stackoverflow.com/questions/3109158/how-to-draw-a-path-on-a-map-using-kml-file/3109723 #3109723] –

1

試試這個這個在谷歌地圖繪製路徑

public class Location extends MapActivity { 
MapView mapView; 
public static ArrayList<String> paramLat = new ArrayList<String>(); 
public static ArrayList<String> paramLong = new ArrayList<String>(); 
private List<Overlay> mapOverlays; 
public List<GeoPoint> geopoints = new ArrayList<GeoPoint>(); 
public void onCreate(Bundle savedInstanceState) { 

//your code to display location 

for(int i=0;i<paramLat.size();i++) 
     { 
      lat = Double.parseDouble(paramLat.get(i)); 
      lon = Double.parseDouble(paramLong.get(i)); 
      geoPoint = new GeoPoint((int)(lat * 1E6), (int)(lon *1E6)); 
      geopoints.add(geoPoint); 
      } 

mapOverlays = mapView.getOverlays(); 
mapOverlays.add(new MyOverlay()); 
} 

class MyOverlay extends Overlay{ 

    public MyOverlay(){ 

    } 

public void draw(Canvas canvas, MapView mapv, boolean shadow){ 
     super.draw(canvas, mapv, shadow); 

     int loopcount = geopoints.size() - 1; 
     Paint mPaint = new Paint(); 
     mPaint.setDither(true); 
     mPaint.setColor(Color.BLUE); 
     mPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
     mPaint.setStrokeJoin(Paint.Join.ROUND); 
     mPaint.setStrokeCap(Paint.Cap.ROUND); 
     mPaint.setStrokeWidth(2); 
     for (int i = 0; i < loopcount; i++) 
     { 
      GeoPoint pp1 = (GeoPoint) geopoints.get(i); 
      GeoPoint pp2 = (GeoPoint) geopoints.get(i + 1); 
      Point p1 = new Point(); 
      Point p2 = new Point(); 
      Path path = new Path(); 

      projection.toPixels(pp1, p1); 
      projection.toPixels(pp2, p2); 

      path.moveTo(p2.x, p2.y); 
      path.lineTo(p1.x,p1.y); 
      canvas.drawPath(path, mPaint); 
     } 
    } 
    } //end of MyOverlay class 
} //end of Location class 
+0

我試過了..它不適用於我:(是否有其他方式 – user1917865

+1

@ user1917865編輯詳細的代碼,嘗試此更新的代碼.... – Dhana

+0

它是否工作代碼? –

相關問題