【问题标题】:Unable to draw on Google Map v2 based on current position无法根据当前位置在 Google Map v2 上绘图
【发布时间】:2013-01-04 19:16:28
【问题描述】:

我需要在地图上画一条路径。为此,我从新的谷歌地图开始考虑使用折线。我的问题是我的应用程序可以工作,但它没有在地图上绘制任何东西。我希望它在每次我改变位置时绘制,基本上是为了绘制我的路径。

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) {

【问题讨论】:

  • 我也遇到了同样的问题,如果你解决了,请给我一些建议。谢谢。

标签: android api google-maps maps


【解决方案1】:

线至少需要两个点。您正在尝试仅使用一个点来绘制一条线。这将绘制一条无限小的线,您将很难看到它,因为它无限小。

如果您想画一条线,请使用两个或更多点。如果你想在一个点上绘制一些东西,请使用标记,而不是折线。

【讨论】:

  • 我想根据我的上一个位置和我的新位置绘制一条线。如果我的位置发生变化,getlastKnownLocation 和当前位置是否相同?
  • @user1949486: “我想根据我的上一个位置和我的新位置绘制一条线”——这很好,但你会注意到在定义 PolylineOptions 时你的 add() 调用有一个LatLng 参数。它需要两个或多个LatLng 参数才能成为一行。
  • 谢谢,我的问题是我自己的疏忽!添加另一个点解决了问题。而且,我的位置很容易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
相关资源
最近更新 更多