百度LBS 常用问题总结

来源:互联网 发布:steam数据 编辑:程序博客网 时间:2024/05/29 07:41

1、根据地图点,进行自动缩放地图的举例




已知地图上的两点P1及P2

  1.                 //求中心点
  2.                 int centerLatE6=(int)Math.round(((p1.lat+p2.lat)/2)*1e6);
  3.                 int centerLonE6=(int)Math.round(((p1.lon+p2.lon)/2)*1e6);
  4.                 GeoPoint center=new GeoPoint(centerLatE6, centerLonE6);
  5.                 //求纬度范围及经度范围
  6.                 int latSpanE6=Math.abs((int)((p1.lat - p2.lat)* 1e6));
  7.                 int lonSpanE6=Math.abs((int)((p1.lon - p2.lon)* 1e6));
  8.                 //缩放到指定范围,此时中心点可能不在P1及P2点的中心
  9.                 mMapController.zoomToSpan(latSpanE6,lonSpanE6);
  10.                 //中心位置移动到P1及P2的中心,以在当前视图范围内显示P1和P2
  11.                 mMapController.animateTo(center);
复制代码

说明:因为地图并不是无级缩放的,这样做完操作后,P1及P2点有可能出现在地图可视范围的边上,或是在地图可视范围之外,离边界不远的地方,所以算出的latSpanE6lonSpanE6可能要加上一个常量。以尽量让P1P2点落在边界以内。

当在某一个图层显示的时候自动缩放级别的时候,可以直接使用overlay的getlatSpan以及getLongSpan函数,来进行

zoomToSpan的快速设置。

2、进行路径导航的时候mSearch.drivingSearch 失效,异步回调函数MKSearchListener:没有响应

跟踪了半天才发现原来代码中,导航界面是 跳转界面实现的,原界面在onPause里面有 对mapmanager进行stop的动作。


3、MapView地图显示错位,记得加上屏幕自动适配以及其他的一堆DEMO中的权限

    <supports-screens android:largeScreens="true"  
            android:normalScreens="true"  
            android:smallScreens="true"  
            android:resizeable="true"  
            android:anyDensity="true"/>  


0 0
原创粉丝点击