我有一个带有一个叠加层的 MapView。Overlay 在 MapView 上呈现基于瓦片的地图。我使用 MapView.getZoomLevel() 来检索 Google 地图和我的图块的当前缩放级别。一切都很完美,但前提是用户不使用多点触控手势缩放地图。据我了解,MapView 控件在缩放过程中不会呈现实际的图块,而只是显示拉伸的屏幕内容。所以,问题是 - 如何获得这个比例,我可以用它来以与谷歌完全相同的方式渲染我的图块?
谢谢你!
我有一个带有一个叠加层的 MapView。Overlay 在 MapView 上呈现基于瓦片的地图。我使用 MapView.getZoomLevel() 来检索 Google 地图和我的图块的当前缩放级别。一切都很完美,但前提是用户不使用多点触控手势缩放地图。据我了解,MapView 控件在缩放过程中不会呈现实际的图块,而只是显示拉伸的屏幕内容。所以,问题是 - 如何获得这个比例,我可以用它来以与谷歌完全相同的方式渲染我的图块?
谢谢你!
尽管该方法MapView.getZoomLevel()
未与缩放更改动画和多点触控对齐,但方法MapView.getProjection().fromPixels()
和MapView.getProjection().fromPixels()
是。
所以你有几个选择来解决这个问题。从上面的方法中,您可以找到(x,y)
渲染图块的直接坐标(和大小),或者您可以使用以下方法找到缩放比例:
int lonSpan = projection.fromPixels(0,mapView.getHeight()/2).getLongitudeE6() -
projection.fromPixels(mapView.getWidth(),mapView.getHeight()/2).getLongitudeE6();
它为您提供地图垂直中心的经度跨度。然后,将缩放开始后的值与缩放开始前的值相除。
问候。