2017-06-19 23 views
0

當我運行此代碼時,地圖加載。但是,即使將其設置爲setZoom(20),它也會極度縮小。 (無論我設置爲什麼,它仍然不會改變。)
取而代之,我想將位置設置爲用戶的當前位置,如果不是,那麼我想通過使用geoPoint來自己設置位置。將onLocationChanged設置爲特定的經度和緯度並將其放大

import android.Manifest; 
import android.app.Activity; 
import android.content.pm.PackageManager; 
import android.os.Bundle; 
import android.location.LocationManager; 
import android.location.LocationListener; 
import android.location.Location; 
import android.content.Context; 
import android.support.v4.app.ActivityCompat; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Toast; 

import org.osmdroid.util.GeoPoint; 
import org.osmdroid.views.MapView; 
import org.osmdroid.tileprovider.tilesource.TileSourceFactory; 


public class HelloMap extends Activity { 

MapView mv; 
public View onCreateView(LayoutInflater lf, ViewGroup vg, Bundle b) 
{ 
    View view = lf.inflate(R.layout.content_hello_map, vg, false); 
    mv = (MapView) view.findViewById(R.id.map1); 
    mv.setTileSource(TileSourceFactory.MAPNIK); 
    mv.setBuiltInZoomControls(true); 
    mv.getController().setZoom(20); 
    mv.getController().setCenter(new GeoPoint(20, -20)); 
    return view; 
} 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_map); 
    LocationManager mgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
    LocationListener Locat= new mylocationlistener(); 
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 

     return; 
    } 
    mgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, Locat); 
} 

private class mylocationlistener implements LocationListener { 
    @Override 
    public void onLocationChanged(Location location) { 
     if (location != null) { 

      Toast.makeText(HelloMap.this, 
        location.getLatitude() + "" + location.getLongitude(), 
        Toast.LENGTH_LONG).show(); 
     } 
    } 
    @Override 
    public void onProviderDisabled(String provider) { 
    } 
    @Override 
    public void onProviderEnabled(String provider) { 
    } 
    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
    } 
    } 
    } 
+0

後requestLocationUpdates如果位置沒有改變,那麼你可以調用getLastKnownLocation(字符串),並立即檢索位置並進行設置。 – RameshJaga

回答

1

我認爲你需要使用CameraUpdateFactory與方法newLatLngZoom(LatLng latLng, float zoom)。 例如:

LatLng coordinate = new LatLng(lat, lng); 
CameraUpdate yourLocation = CameraUpdateFactory.newLatLngZoom(coordinate, 5); 
map.animateCamera(yourLocation); 
相關問題