2012-12-27 53 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

它是否工作代码? –

相关问题