在谷歌地图上获得显示所有标记的最大缩放

时间:2013-05-25 15:09:27

标签: android google-maps zoom google-maps-android-api-2

我有5个标记要显示在地图上,其中4个非常靠近彼此,第五个标记距离这些有点远4.现在,当我显示地图时,我希望所有这5个标记都是在地图上显示并具有最高可能的缩放。我不在乎它们是在屏幕的边界还是在屏幕的中心。我的意思是标记可以分散在屏幕上,但我想要的是所有标记都应该对用户可见并且具有尽可能高的变焦。

我试过这个Android map v2 zoom to show all the markers。但结果是它以极小的缩放显示地图中心的所有标记。实际上我已经使用此代码计算了屏幕尺寸。

       DisplayMetrics metrics=new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(metrics);

    float height=metrics.heightPixels/metrics.xdpi;
    float width=metrics.widthPixels/metrics.ydpi;

但我不知道为什么变焦非常小。但是,当我看到android文档时,我认为该功能通过做它应该做的任何事情来做正义。

  public static CameraUpdate newLatLngBounds (LatLngBounds bounds, int width, int height, int padding)

  Returns a CameraUpdate that transforms the camera such that the specified 
 latitude/longitude bounds are centered on screen within a bounding box of specified 
 dimensions at the greatest possible zoom level. You can specify additional padding, 
  to further restrict the size of the bounding box. The returned CameraUpdate has a 
  bearing of 0 and a tilt of 0.

 Unlike newLatLngBounds(LatLngBounds, int), you can use the CameraUpdate returned by
 this method to change the camera prior to the map's the layout phase, because the 
 arguments specify the desired size of the bounding box.

因为它说它将所有标记保持在地图的中心。我不要那个。我希望用户可以看到所有标记,最大可能的缩放和标记分散。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

浮动宽度和高度的计算不正确。

你现在的宽度是英寸(手机上的值约为2)。你不需要划分像素宽度。