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) {
}
}
}
後requestLocationUpdates如果位置沒有改變,那麼你可以調用getLastKnownLocation(字符串),並立即檢索位置並進行設置。 – RameshJaga