我在我的应用程序中为用户的当前位置使用自定义图标,并且希望在升级到新的Google地图库时保持此方式。Android谷歌地图V2更改我的位置图标
借助Google Maps v1库,我扩展了MyLocationOverlay并覆盖了drawMyLocation方法以在其中绘制自定义图标。
据我所知,GoogleMap使用setMyLocationEnabled方法启用当前位置,但无法自定义它。
有人知道如何在v2上完成此操作吗?
我在我的应用程序中为用户的当前位置使用自定义图标,并且希望在升级到新的Google地图库时保持此方式。Android谷歌地图V2更改我的位置图标
借助Google Maps v1库,我扩展了MyLocationOverlay并覆盖了drawMyLocation方法以在其中绘制自定义图标。
据我所知,GoogleMap使用setMyLocationEnabled方法启用当前位置,但无法自定义它。
有人知道如何在v2上完成此操作吗?
好了,我只是想,如果你不添加标题或摘录,标记不会对点击事件的影响,以及它作为行为一个图像覆盖。虽然它并不完美,它适合我的需要
private Marker marker = mMap.addMarker(new MarkerOptions()
.position(latLng)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow)));
谢谢大家
在使用自定义图标的地图构造函数中创建标记。
_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
}
肯定是有一种方式来显示当前位置的自定义图标。 结帐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)));
这可以完成,但它与当前MyLocation机制不兼容。换句话说,您可以使用不带所有窗口信息的标记,但是您必须手动实施LocationListener来移动您绘制的位置。您不能重复使用内置的位置功能 –
这是AFAIK的唯一方法。请张贴一些代码,以便我可以了解您的问题。谢谢。 – GrIsHu
这是它被用来进行的V1库做的方式。在V2中,您不会在活动中处理MapView。而且,V2上没有Overlay类可以扩展。 https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/package-summary –
我的错误,我没有意识到您的意思是Google Play版本的地图。请参阅上面我更新的答案。这很好,因为它现在与Google Maps Javascript版本的行为非常相似。 – javram
@RobertEstivill:AFAIK,这是你唯一的选择,至少在坚持记录/支持的行为时。 – CommonsWare