2016-09-02 8 views
2

Я пытаюсь отобразить маркер, используя osmbonuspack_v4.8 ilb. Маркер был отображен, но он помещается в left-top экрана. Я пытаюсь установить в центре, но не могу. Я не понимаю причину.openstreetmap - Как установить маркер в центре экрана?

Пожалуйста, скажите мне лучший способ.

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 
     mapView.setMultiTouchControls(true); 

     mapView.setTileSource(TileSourceFactory.MAPNIK); 
     mapController = (MapController) this.mapView.getController(); 
     mapController.setZoom(15); 
     GeoPoint center = new GeoPoint(52.221, 6.893); 
     mapController.animateTo(center); 
     //mapController.setCenter(center); 

     //--- Create Overlay 
     addMarker(center); 

     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 
} 
+0

что? вы пытаетесь поместить значок на лат/лон в центре экрана? или что-то другое? – spy

ответ

2

Вы можете попробовать этот способ:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mapView = (MapView) findViewById(R.id.mapview); 
     mapView.setBuiltInZoomControls(true); 
     mapView.setMultiTouchControls(true); 

     DisplayMetrics displayMetrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 

     int width = displayMetrics.widthPixels; 
     int height = displayMetrics.heightPixels; 
     mapView.setBottom(height); 
     mapView.setRight(width); 
     mapView.setTileSource(TileSourceFactory.MAPNIK); 
     mapController = (MapController) this.mapView.getController(); 
     mapController.setZoom(15); 
     GeoPoint center = new GeoPoint(52.221, 6.893); 
     mapController.animateTo(center); 
     //mapController.setCenter(center); 

     //--- Create Overlay 
     addMarker(center); 

     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 
} 

Я надеюсь, что помогает!

+0

Благодарим вас за помощь. –

+1

, который выглядит неправильно. Настройка mapViews снизу и справа. И местоположение жестко закодировано – spy

1

Дайте этому водоворот. Он должен начертить вашу точку в центральной точке экрана.

 DisplayMetrics displayMetrics = new DisplayMetrics(); 
     getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); 

     int width = displayMetrics.widthPixels; 
     int height = displayMetrics.heightPixels; 

     IGeoPoint pt = mMapView.getProjection().fromPixels(width/2, height/2); 
     mapView.getController().animateTo(pt); 

     //--- Create Overlay 
     addMarker(pt);