【发布时间】:2011-12-27 00:06:34
【问题描述】:
如何在 Open Street Map 中启用指南针模式?
有没有方法或者我需要自己创建定向系统?
【问题讨论】:
标签: android maps osmdroid compass-geolocation
如何在 Open Street Map 中启用指南针模式?
有没有方法或者我需要自己创建定向系统?
【问题讨论】:
标签: android maps osmdroid compass-geolocation
这就是我启用指南针的方式:
MapView oMap;
IMapController mapController;
.......
mapController = oMap.getController();
mapController.setZoom(zoom);
mapController.setCenter(new GeoPoint(latitude, longitude));
MyLocationNewOverlay oMapLocationOverlay = new
MyLocationNewOverlay(getApplicationContext(),oMap);
oMap.getOverlays().add(oMapLocationOverlay);
oMapLocationOverlay.enableFollowLocation();
oMapLocationOverlay.enableMyLocation();
CompassOverlay compassOverlay = new CompassOverlay(this, oMap);
compassOverlay.enableCompass();
oMap.getOverlays().add(compassOverlay);
【讨论】:
要在地图上显示指南针,请在MyLocationOverlay 中使用enableCompass()。
启用方向传感器(指南针)更新并在屏幕上显示指南针 地图。您可能想从您的 Activity 的 Activity.onResume() 方法,启用此功能 覆盖。请记住在您的 Activity 的 Activity.onPause() 方法在 背景。
如果您也想旋转地图,osmdroid 的一个分支实现了该功能:http://code.google.com/p/osmdroid/source/browse/branches/rotation/OpenStreetMapViewer/src/org/osmdroid/MapActivity.java?r=914
【讨论】:
由于问题不清楚,我会给你我“认为”你所要求的东西,它是屏幕上的指南针。
CompassOverlay mCompassOverlay = new CompassOverlay(getContext(),
new InternalCompassOrientationProvider(getContext()),
mMapView);
mCompassOverlay.enableCompass();
mMapView.getOverlays().add(this.mCompassOverlay);
【讨论】:
你只需要传递上下文和地图视图实例
CompassOverlay compassOverlay = new CompassOverlay(this, map);
compassOverlay.enableCompass();
map.getOverlays().add(compassOverlay);
创建指南针叠加层,启用并将其添加到地图叠加层以显示
【讨论】: