当用户打开当前位置的位置显示标记时

时间:2017-12-05 12:02:54

标签: java android google-maps

我在这里创建一个地图我在当前位置显示一个标记它工作正常 当位置已经打开但是当活动打开并且我打开位置时它没有显示任何标记我想在位置打开时显示标记 有什么帮助吗?..

public void onMapReady(GoogleMap googleMap) {
        mMap = googleMap;
         getCurrentLocation();
       // latLngCurrentLocation is my current location which is update using getCurrentLocation() method.

    if(latLngCurrentLocation != null) {

    // add marker on current location
            markerCurrent = mMap.addMarker(new MarkerOptions()
                    .position(latLngCurrentLocation)
                    .draggable(true)
                    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN))
                    .title("Current Location"));

            mMap.moveCamera(CameraUpdateFactory.newLatLng(latLngCurrentLocation));
            mMap.animateCamera(CameraUpdateFactory.zoomTo(8));
            mMap.getUiSettings().setZoomControlsEnabled(true);
            mMap.setOnMarkerDragListener(this);


        }

    }

2 个答案:

答案 0 :(得分:2)

一旦您的位置发生变化,您将获得onLocationChanged(Location location)的位置信息。您将在location对象中获得纬度和经度,因此您可以将标记设置为onLocationChanged(Location location)方法

@Override
public void onLocationChanged(Location location)
{
    mLastLocation = location;
    if (mCurrLocationMarker != null)
    {
        mCurrLocationMarker.remove();
    }

    //Place current location marker
    LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
    MarkerOptions markerOptions = new MarkerOptions();
    markerOptions.position(latLng);
    markerOptions.title("Current Position");
    markerOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
    mCurrLocationMarker = mGoogleMap.addMarker(markerOptions);

    //move map camera
    mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng));
    mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(11));


}

或者,如果您想在GPS打开后刷新标记,则可以使用BroadcastReceiver。当GPS打开/关闭时,BroadcastReciever会触发,以便您可以检查GPS是打开还是关闭。您可以在以下链接中找到示例,Broadcast receiver for GPS

答案 1 :(得分:2)

通过GpsTracker类或googleClient api,您可以获得纬度和经度,然后将其作为gpstracker.getlatitude和getlongtitude,并将此值设置为全局变量,并随时访问它。