Android Google Maps V2更改了我的位置图标

时间:2012-12-12 17:55:31

标签: android google-maps

我在我的应用程序中使用自定义图标作为用户的当前位置,并希望在升级到新的Google地图库时保持这种方式。

使用Google Maps v1库,我扩展了MyLocationOverlay并覆盖了drawMyLocation方法以在那里绘制我的自定义图标。

GoogleMap使用setMyLocationEnabled方法启用当前位置,但据我所知,无法自定义它。

有人知道如何在v2上完成此任务吗?

3 个答案:

答案 0 :(得分:13)

在地图构造函数中使用自定义图标创建标记。

_myLocation = mMap.addMarker(new MarkerOptions()
                      .position(MAP_CENTER)
                      .title("My Location")
                      .icon(BitmapDescriptorFactory.fromResource(R.drawable.mylocation)));

实施位置更改的侦听器, https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener

调用提供者时更新标记位置:

public void onLocationChanged (Location location)
{
    _myLocation.position(location); //May have to convert from location to LatLng
}

答案 1 :(得分:3)

好的,所以我想,如果你不添加标题或片段,标记就不会对点击事件产生影响,它就像一个图像叠加层。虽然它并不完美,但它符合我的需求

private Marker marker = mMap.addMarker(new MarkerOptions()
                    .position( latLng)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));

谢谢大家

答案 2 :(得分:0)

绝对有办法在当前位置显示自定义图标。 结帐Link您可以更好地在地图上自定义图标。

试试以下代码:

 private static final LatLng MELBOURNE = new LatLng(-37.81319, 144.96298);
 private Marker melbourne = mMap.addMarker(new MarkerOptions()
                        .position(MELBOURNE)
                        .title("Melbourne")
                        .snippet("Population: 4,137,400")
                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));