android - OSMdroid mapview 的两指旋转

标签 android android-ndk android-mapview osmdroid

我正在尝试使用 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/

相关文章:

android-ndk - 如何在 native Android 代码中获取当前时间?

除非您触摸 map View ,否则不会加载 Android MapView

google-maps - Flutter 中的谷歌地图导航

android - 是否可以制作固定的评分栏?

android - 如何在 android 中使用基本适配器时过滤列表项?

android - 如何在我的 Android 应用程序中使用 SoundCloud?

listview - 您尝试在一个不可变且已被卡住的对象上设置 key

android - Android 上支持的语言/区域列表是什么?

android-ndk - Android 4.0 为包含的库解压错误的 eabi

android-ndk - 从 java(android) 调用 C++(cocos2dx) 方法进行应用内计费