在Google地图上查看发送纬度和经度的位置

时间:2019-02-12 05:08:05

标签: android

我想在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;
}
}

2 个答案:

答案 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);

latitudelongitude应该是您从Firebase获取的。