当前位置: 首页 > 知识库问答 >
问题:

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

钱志
2023-03-14

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

       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个答案

连文栋
2023-03-14

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

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

 类似资料:
  • 问题内容: 我想在Google Maps android上显示带有多个标记的位置,问题是当我运行我的应用程序时,它只显示一个位置/标记,这是我的代码: 我不知道我的错在哪里,希望有人能帮助我解决我的问题,非常感谢你 问题答案: 用这个: 或者,您也可以使用以下命令: 其中 纬度 和 经度 是存储在数组列表中的具有不同名称的字符串.....

  • 我在中有10个标记。我想尽可能地放大,让所有的标记都在视野中?在早期版本中,这可以通过实现,但在v2中,我不知道该如何实现。进一步,我知道需要可见的圆的半径。

  • 我知道周围也有类似的问题,但我无法找到一个可靠的答案,这是我的问题:有没有什么方法可以在没有谷歌地图引用的情况下将标记存储在ArrayList(或任何其他存储)中,然后简单地将它们添加到我的地图中? 背景:我有一个应用程序,目前有大约3500个标记。每个标记还有一个与之相关联的数据(布尔数组存储每个标记的数据,用于根据用户交互使它们可见/不可见)。目前,我使用扩展AsyncTask的类来获取这些标

  • 我使用Google Maps Android SDK在地图上添加标记,这些标记的位置存储在我的应用程序的所有用户都可以使用的Firebase数据库中。每个标记的数据存储在唯一的Firebase记录中,每个记录包含纬度 添加了一个新标记。 更改现有标记(移动到新位置和/或“验证”) 删除现有标记 我实现了一个哈希图,如如何使用Firebase Google Maps API Android中的数据更

  • 我有代码允许我输入带有纬度和经度的位置名称,然后地图用标记显示位置。 我遇到的问题是,我希望地图显示所有位置,每个位置都有自己的标记。 下面是我用来获取地图上显示的一个位置的代码 非常感谢您的帮助 我没有错误只是显示了一个位置,我已添加到Firebasedatabase

  • 如何显示中心半径内的标记?我需要显示基于半径的位置,因为这将是我根据一个位置的km半径来查找此类位置的函数的基础。 正如你所看到的,我有许多记号笔。这是通过调用axios请求从我的数据库得到的。 这是我的代码片段