【问题标题】:Android programming, mapview location-overlay: how to change the default blue location dot, with another imageAndroid编程,mapview location-overlay:如何更改默认的蓝色位置点,用另一个图像
【发布时间】:2012-04-17 22:23:17
【问题描述】:

我需要弄清楚如何使用图像更改默认的“我的位置”蓝点,它的作用也与指向行进方向的指南针相同。这可以通过设备指南针或通过从 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;

【问题讨论】:

  • 您指的是MapViewMyLocationOverlay,还是通过基于网络的谷歌地图的一些设施?
  • 我指的是 MapView 和 MyLocationOverlay。我已经在下面评论了答案,我已经更改了图标,但需要让它指向与手机相同的方向......

标签: android google-maps-api-3 geolocation location-aware


【解决方案1】:

【讨论】:

  • 谢谢,我已经更改了图标,但我真正需要的是让它指向设备的行进方向。此示例中的代码:stackoverflow.com/questions/753793/… 似乎不起作用。我尝试使用 GPS 的 getBearing() 在我的 locationlistener 中创建一个变量,然后将该变量输入 matrix.postrotate() 但到目前为止没有任何运气......
  • “似乎不起作用” - 如:没有做任何事情,或者没有按照您的预期做?我很确定会有更多关于这个主题的例子。我建议您搜索如何在 MapView 上创建自定义指南针,因为这主要涉及您遇到问题的旋转方面。
  • 它什么也没做 - 我有一条当前方位读数为 0.0 的敬酒消息。但是我已经让它工作了 5 秒,然后它又回到了 0.0,所以我知道从技术上讲它应该可以工作? :S 我将部分代码添加到主要问题中......
  • @Nick:我查看了您添加的代码,很惊讶地发现您没有使用MyLocationOverlay 中的getOrientation() 方法。您尝试从 GPS 而不是指南针获取方位的任何特殊原因?
  • 我需要获取实际的行进方向,而不是设备指向的方向
【解决方案2】:

对于希望获得旋转用户位置图标的类似功能的其他人,请参阅以下帖子:

Android getbearing only returns 0.0. Trying to use to rotate current location icon

位置管理器 .getbearing() 派上用场

问候

尼克

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-07
    • 2021-05-30
    • 2012-10-26
    • 2012-01-26
    • 2021-03-21
    • 2013-12-31
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多