Android 无法基于当前位置在Google Map v2上绘制
我需要在地图上画一条路。为了做到这一点,我考虑使用多段线,因为新的谷歌地图。我的问题是我的应用程序可以工作,但它不能在地图上画出任何东西。我希望每次我改变位置时都能画出来,基本上是画出我的路径Android 无法基于当前位置在Google Map v2上绘制,android,api,google-maps,maps,Android,Api,Google Maps,Maps,我需要在地图上画一条路。为了做到这一点,我考虑使用多段线,因为新的谷歌地图。我的问题是我的应用程序可以工作,但它不能在地图上画出任何东西。我希望每次我改变位置时都能画出来,基本上是画出我的路径 public class MapActivity extends FragmentActivity implements LocationListener { GoogleMap myMap; Location lastLocati
public class MapActivity extends FragmentActivity implements LocationListener {
GoogleMap myMap;
Location lastLocation;
private LocationManager locManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.map_layout);
myMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
myMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
boolean networkEnabled = locManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!networkEnabled) {
Toast.makeText(this, "network not enabled", 0);
}
}
@Override
protected void onResume() {
super.onResume();
locManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, this);
}
@Override
public void onLocationChanged(Location location) {
if (location != null) {
lastLocation=locManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
Polyline line=myMap.addPolyline(new PolylineOptions().add(new LatLng(location.getLatitude(),location.getLongitude())).color(Color.RED));
}
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
线至少需要两个点。您正试图仅使用一个点绘制一条线。这将画一条无限小的线,你很难看到,因为它是无限小的
如果要画一条线,请使用两个或多个点。如果你想在一个点上画东西,请使用标记,而不是多段线。我想根据我的上一个位置和新位置画一条线。如果我的位置改变,getlastKnownLocation和当前位置是相同的?@user1949486:“我想根据我的上一个位置和新位置画一条线”——这很好,但是您会注意到,在定义
PolylineOptions
时,add()
调用有一个LatLng
参数。需要两个或多个LatLng
参数才能成为一条线。谢谢,我的问题是我自己的疏忽!再加上一点就解决了问题。而且,得到我的职位很容易。我也面临着同样的问题,如果你解决了这个问题,请给我一些建议。谢谢。