주제로 저는 현재 스웨덴에 있지만 내지도를 시작할 때 나는 영국에 있음을 보여줍니다.android : mapView가 올바른 사용자 위치를 제공하지 않음
내 코드는 다음과 같습니다
private MapListener myMapViewListener;
private MapController mapController;
private GeoPoint test;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mapview);
setupListener();
MapView mapView = (MapView) findViewById(R.id.mapview);
mapController = mapView.getController();
mapView.setBuiltInZoomControls(true);
mapView.setClickable(true);
mapController.setZoom(7); // defualt zoom
}
private void setupListener() {
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
MapListener listener = new MapListener();
MapView mapView = (MapView) findViewById(R.id.mapview);
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
test = new GeoPoint((int)location.getLatitude()*1000000, (int)location.getAltitude()*1000000);
mapController.animateTo(test);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
};
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
}
}
내가 추가 한 ........
<uses-library android:name="com.google.android.maps" />
</application>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses- permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
</manifest>
을 ..... 내 매니페스트에.
저는 http://developer.android.com/guide/topics/location/obtaining-user-location.html을 가이드로 사용하고 있습니다.
도움에 대해 매우 감사드립니다.
내가 시도조차 작동하지 않았다 : \t \t \t 이중 위도 = 위치. getLatitude() * 1000000; \t \t \t double alt = location.getAltitude() * 1000000; \t \t \t 시험 = 새로운 GeoPoint ((int) lat, (int) alt); \t \t mapController.animateTo (test); –
@ Gwing-Ben Yuen 당신은 경도 대신에 고도를 사용하고 있습니다. –
하하, 고맙다고하지 않았다. –