0

我想通过触摸获得地图的像素 x 和 y,但在4.2.0及更高版本中不起作用。它适用于4.1.3及更早版本。

在 4.1.3 版中,此代码有效:

            @Override
            public boolean onRasterTileClicked(RasterTileClickInfo clickInfo) {
                MapTile mapTile = clickInfo.getMapTile();
                Projection proj = rasterLayer.getDataSource().getProjection();
                double projTileWidth = proj.getBounds().getDelta().getX() / (1 << mapTile.getZoom());
                double projTileHeight = proj.getBounds().getDelta().getY() / (1 << mapTile.getZoom());
                double projTileX0 = proj.getBounds().getMin().getX() + mapTile.getX() * projTileWidth;
                double projTileY0 = proj.getBounds().getMin().getY() + ((1 << mapTile.getZoom()) - 1 - mapTile.getY()) * projTileHeight;
                double normTileX = (clickInfo.getClickPos().getX() - projTileX0) / projTileWidth;
                double normTileY = (clickInfo.getClickPos().getY() - projTileY0) / projTileHeight;
                Log.d("", "Clicked at: " + (int) (normTileX * 256) + ", " + (int) (normTileY * 256));
                return true;
            }
        }); ```
4

1 回答 1

0

您可以尝试使用https://github.com/CartoDB/mobile-sdk/releases的最新 RC (4.3.0-rc.2) 版本吗?您可能遇到了这个已解决的问题:https ://github.com/CartoDB/mobile-sdk/issues/354

于 2020-04-24T19:19:26.877 回答