您好,
1.请在突出显示的区域中找到路线和地图图标
这些是在我的位置蓝色圆圈上显示的。
3.想要在地图加载后立即显示这些图标,而无需用户触摸。
以下是代码:
protected void loadMap(GoogleMap googleMap, String latlng) {
if (googleMap != null) {
googleMap.setMyLocationEnabled(true);
googleMap.getUiSettings().setMapToolbarEnabled(true);
googleMap.getUiSettings().setMyLocationButtonEnabled(true);
String[] latlngAry = latlng.split(",");
double lat = Double.parseDouble(latlngAry[0]);
double lng = Double.parseDouble(latlngAry[1]);
LatLng latlong = new LatLng(lat, lng);
BitmapDescriptor defaultMarker =
BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE);
Marker marker = googleMap.addMarker(new MarkerOptions()
.position(latlong)
.title("My Location")
.icon(defaultMarker));
marker.showInfoWindow();
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latlong, 18)); }
答案 0 :(得分:1)
单击标记时显示的叠加层会在现场隐式创建和销毁。你无法手动显示(还)。
如果您必须具备此功能,则可以使用2个ImageView在地图上创建叠加层,并在点击它们时调用相应的意图:
// Directions
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(
"http://maps.google.com/maps?saddr=51.5, 0.125&daddr=51.5, 0.15"));
startActivity(intent);
// Default google map
Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(
"http://maps.google.com/maps?q=loc:51.5, 0.125"));
startActivity(intent);
注意:您需要根据Marker的getPosition()和用户的位置更改坐标。
现在要隐藏默认覆盖,您需要做的就是在OnMarkerClickListener中返回true。虽然你没有能力在标记上显示InfoWindows和中心摄像头,但你可以模仿它:
mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker) {
marker.showInfoWindow();
mMap.animateCamera(CameraUpdateFactory.newLatLng(marker.getPosition()));
return true;
}
});