我想在Google map
上查看位置,我的应用获取了该位置的纬度和经度,但是该位置未显示在Google地图中。我使用Firebase数据库存储纬度和经度
这是地图活动的代码
public class MapsActivity extends FragmentActivity implements GoogleMap.OnMyLocationButtonClickListener, GoogleMap.OnMyLocationClickListener, OnMapReadyCallback {
private GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maps);
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
mapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap map) {
mMap = map;
// TODO: Before enabling the My Location layer, you must request
// location permission from the user. This sample does not include
// a request for location permission.
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
// TODO: Consider calling
// ActivityCompat#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for ActivityCompat#requestPermissions for more details.
return;
}
mMap.setMyLocationEnabled(true);
mMap.setOnMyLocationButtonClickListener(this);
mMap.setOnMyLocationClickListener(this);
}
@Override
public void onMyLocationClick(@NonNull Location location) {
Toast.makeText(this, "Current location:\n" + location, Toast.LENGTH_LONG).show();
}
@Override
public boolean onMyLocationButtonClick() {
Toast.makeText(this, "MyLocation button clicked", Toast.LENGTH_SHORT).show();
// Return false so that we don't consume the event and the default behavior still occurs
// (the camera animates to the user's current position).
return false;
}
}
答案 0 :(得分:0)
使用此方法并将4参数传递给该给定方法。首先,它将导航到特定位置,并添加该位置的标记。
示例:
public static Marker addPinPoint(GoogleMap map, Marker locationMarker, double selectLatitude, double selectLongitude){
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(locationLatitude, locationLongitude), fZoom));
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
Bitmap iconImage = ResourceUtil.getBitmap(App.getInstance().getContext(), R.drawable.icon_location_center); // your location icon
BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(iconImage);
locationMarker = map.addMarker(new MarkerOptions()
.anchor(0.0f, 1.0f)
.icon(icon)
.position(new LatLng(selectLatitude, selectLongitude)));
return locationMarker;
}
答案 1 :(得分:0)
使用以下代码在onMapReady
函数上显示特定纬度和经度的标记:
MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude,longitude));
mMap.addMarker(marker);
latitude
和longitude
应该是您从Firebase获取的。