2013-04-03 40 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我有一個類似的問題,除了我的位置對象的實時流的動畫標記畫一條折線。 –

相關問題