2013-04-03 35 views

回答

0

扩展OnMyLocationChangeListener。在地图设置

使用这样的:

mMap.setOnMyLocationChangeListener(this); 

覆盖这样的:

@Override 
public void onMyLocationChange(Location location) { 
      /* your code here */ 
} 

例如代码可以是这样的(未测试):

Location lastLocationloc=null; 
@Override 
public void onMyLocationChange(Location location) { 
    if(lastLocationloc == null) 
     lastLocationloc = location; 
    LatLng lastLatLng= locationToLatLng(lastLocationloc); 
    LatLng thisLatLng= locationToLatLng(location); 
    mMap.addPolyline(new PolylineOptions().add(lastLatLng).add(thisLatLng).width(3).color(Color.RED)); 
    lastLocationloc = location; 
} 

locationToLatLng可能看起来像这样:

public static LatLng locationToLatLng(Location loc) { 
    if(loc != null) 
     return new LatLng(loc.getLatitude(), loc.getLongitude()); 
    return null; 
} 
0

您可以在Google地图中使用Polyline。它需要位置并在地图上绘制它们。

1

正如在这里说,你需要使用Polyline对象,你可以收集所有的路径点(LatLng位置),并使用循环添加在地图上的所有道路:

Polyline newPolyline; 
GoogleMap mMap = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap(); 
PolylineOptions rectLine = new PolylineOptions().width(3).color(Color.RED); 

for(int i = 0 ; i < directionPoints.size() ; i++) 
{   
    rectLine.add(directionPoints.get(i)); 
} 
newPolyline = mMap.addPolyline(rectLine); 

或者添加单在每个位置更新行,以便把这个代码在onLocationChanged

Polyline newPolyline; 
PolylineOptions rectLine = new PolylineOptions().width(3).color(Color.RED); 
rectLine.add(point); //your received location. 
newPolyline = mMap.addPolyline(rectLine); 

要更新标记的位置,只是删除旧的,创造新的标记(新坐标)来代替。

+0

嗨Emil Adz,谢谢你的回答,但我需要在行走/驾驶时画线,当我移动时该线应该画直播....即时通讯使用onLocationChanged方法有什么办法可以匹配我的场景。 – Samanalaya

+0

正如我在第二部分中所说的:“在每个位置更新中添加一行”,因此将第二个片段放入onLocationChanged方法 –

+0

@Emil我有一个类似的问题,除了我的位置对象的实时流的动画标记画一条折线。 –

相关问题