我想通过触摸获得地图的像素 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;
}
}); ```