- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 map 应用程序,它根据用户的查询在 MapView 上绘制图钉。我正在尝试缩放 map 以适合所有结果图钉,但我遇到了一个看似奇怪的情况。
我设置了两个变量:
latSpan 是任何结果点的最大纬度和最小纬度之间的差值
lonSpan 是任何结果点的最大经度和最小经度之间的差值
这个方法
while ((mapView.getLatitudeSpan()) < latSpan) || (mapView.getLongitudeSpan() < lonSpan)){
mapController.zoomOut();
}//end of while loop
应该缩小以确保所有图钉都适合可查看的 map 屏幕。
但我遇到了一些相当奇怪的事情。 mapView.getLatitudeSpan() 和 mapView.getLongitudeSpan() 的结果通常大于我的 latSpan 和 lonSpan 值,因此 MapController 的缩小不够。
我的 map 放大得很远——15 级或更高。
例如,一组搜索结果给出了以下值:
经纬度 = 17928
lonSpan = 11636
mapView.getLatitudeSpan() = 21933
mapView.getLongitudeSpan() = 20598
根据这些数字,您不会认为 MapController 需要缩小。然而,在屏幕顶部和底部下方都绘制了图钉。我将 WHILE 循环更改为读取
while ((mapView.getLatitudeSpan() - 6000) < latSpan...
这会有所帮助,但正确的查询仍然会导致问题。
但真正的问题是,为什么会这样?
最佳答案
我不确定为什么您的代码无法从提供的代码段中运行。您可能没有将 latSpan 和 lonSpan 转换为 microDegrees(如下所示),这会导致一些问题。
此外,如果您试图确保您的 mapView 显示所有结果,则在缩放之前尝试确定是否需要缩放没有多大意义,只需每次缩放即可。如果事实证明它不需要缩放,那么似乎什么也不会发生,如果需要,那么它就会发生。
您可以设置一个 map 以包含所有点并移动到点的质心,如下所示:
GeoPoint max = new GeoPoint(maxLatitude, maxLongitude);
GeoPoint min = new GeoPoint(minLatitude, minLongitude);
int maxLatMicro = max.getLatitudeE6();
int maxLonMicro = max.getLongitudeE6();
int minLatMicro = min.getLatitudeE6();
int minLonMicro = min.getLongitudeE6();
GeoPoint center = new GeoPoint((maxLatMicro+minLatMicro)/2,(maxLonMicro + minLonMicro)/2);
controller.zoomToSpan(maxLatMicro - minLatMicro, maxLonMicro - minLonMicro);
controller.animateTo(center);
关于Android: MapView.GetLatitudeSpan(), GetLongitudeSpan()异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10458575/
我正在开发一个 map 应用程序,它根据用户的查询在 MapView 上绘制图钉。我正在尝试缩放 map 以适合所有结果图钉,但我遇到了一个看似奇怪的情况。 我设置了两个变量: latSpan 是任何
有时,当尝试使用 getLatitudeSpan() 和 getLongitudeSpan() 获取 map View 的纬度跨度或经度跨度时,我分别得到 0 和 360*1E6。这并不总是发生,但这
我是一名优秀的程序员,十分优秀!