我正在尝试使用 osmdroid 为我的离线 map 进行两指旋转。我刚开始使用 Android map 。我有一个 geoTIFF,我打算使用 NDK 提取信息,然后将其发送到 JAVA。我还需要使用指南针使用 geoPoint 与 True North Up 对齐。我该如何继续,有什么帮助吗?
我试过这个: Android Two finger rotation 例如,但不幸的是,我的应用无法检测到任何两指事件。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());
setContentView(R.layout.activity_main);
mapView = (MapView)findViewById(R.id.mapview);
//Mapview touch utilities
mapView.setClickable(true);
mapView.setBuiltInZoomControls(true);
mapView.setMultiTouchControls(true);
//set initial zoom-level, depends on your need
mapView.getController().setZoom(nMyZoom);
//Display Position Overlay
/* Itemized Overlay */
{
/* Create a static ItemizedOverlay showing a some Markers on some cities. */
final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
items.add(new OverlayItem("Fruchthalle", "Kaiserslautern", new GeoPoint(nMyLat, nMyLong)));
/* OnTapListener for the Markers, shows a simple Toast. */
this.mMyLocationOverlay = new ItemizedIconOverlay<OverlayItem>(items,
new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
Toast.makeText(
MainActivity.this,
"Place '" + item.getTitle()+ "' (index=" + index
+ ") got single tapped up", Toast.LENGTH_LONG).show();
return true; // We 'handled' this event.
}
@Override
public boolean onItemLongPress(final int index, final OverlayItem item) {
Toast.makeText(
MainActivity.this,
"Place '" + item.getTitle() + "' (index=" + index
+ ") got long pressed", Toast.LENGTH_LONG).show();
return false;
}
}, mResourceProxy);
this.mapView.getOverlays().add(this.mMyLocationOverlay);
}
最佳答案
你看过OpenStreetMapViewer了吗?示例应用程序?有 RotationGestureOverlay overlay 在那里专门展示了如何做到这一点。它不像我希望的那样流畅,但它会完成工作。
关于android - OSMdroid mapview 的两指旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21226036/