Android的编程,MapView的位置叠加:如何更改默认蓝色位置点,与其它图像(Android

2019-10-29 19:28发布

我需要工作,如何更改默认的“我的位置”蓝点与图像,这也将在同样的方式作为指向行进的方向指南针。 这可以通过将设备罗盘或通过从GPS检测行进方向被加工出

我做了一些谷歌搜索,但至今只找到了改变iPhone上的点的方法的引用,而我与Android合作...

我很感激在这一些支持和指导

亲切的问候

缺口

在OnCreate中:

        LocationManager locman = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

        locman.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 2, locationListener); 

        //Adds a current location overlay to the map 'mapView' and turns on the map's compass

        MyLocation myLocationOverlay = new MyLocation(this, mapView);
        mapView.getOverlays().add(myLocationOverlay);
        myLocationOverlay.enableMyLocation();
        myLocationOverlay.enableCompass();

        mapView.getOverlays().add(myLocationOverlay);
        mapView.postInvalidate();


In OnLocationChanged:


    dbllatitude = locFromGps.getLatitude();
            dbllongitude = locFromGps.getLongitude();
            dblaltitude = locFromGps.getAltitude();


    bearing = locFromGps.getBearing(); 


         strlatitude = Double.toString(dbllatitude);
            strlongitude = Double.toString(dbllongitude);
            dblaltitude = (dblaltitude / 0.3048); 

            LocationText.setText("Your Location: Latitude " + dbllatitude + " Longitude: " +dbllongitude + " Altitude " + dblaltitude);



            boolean hasbearing = locFromGps.hasBearing();


            if (hasbearing =  false) {

                Toast.makeText(getApplicationContext(), "No bearing", Toast.LENGTH_SHORT).show();

            }
            else
            {
                Toast.makeText(getApplicationContext(), "I HAZ bearing: " + bearing, Toast.LENGTH_SHORT).show();
            }
            MyLocation.mOrientation = bearing;

Answer 1:

子类MyLocationOverlay ,覆盖drawMyLocation(...)方法,并使用所提供的参数绘制图像。 这里有几个例子对SO和博客,可以帮助你对你的方式,如:

  • 如何正确使用drawMyLocation
  • 我如何可以使用在MyLocationOverlay的“你在这里”点自定义位图?
  • 如何在使用MyLocationOverlay上的MapView当前GPS位置画画吗?
  • myLocationOverlay更改标记


Answer 2:

对于任何人都希望得到旋转用户位置图标看到帖子在类似的功能:

Android的getbearing只返回0.0。 尝试使用旋转当前位置图标

外景经理.getbearing()就派上用场了

问候

缺口



文章来源: Android programming, mapview location-overlay: how to change the default blue location dot, with another image