问题标签 [android-maps-utils]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
10767 浏览

android - Android 集群和标记点击次数

我在地图上使用 android 集群实用程序,并成功地使用 mClusterManager.setOnClusterItemClickListener() 为集群库处理的所有标记实现了 onclick 侦听器。

因为我还希望一些标记始终不聚集,所以我还添加了一些标记,而不使用 mClusterManager,而是直接使用地图的 mMap.addMarker(),这样我可以确定它们永远不会聚集在地图上。

我的问题是我无法拦截对这些标记(总是未聚集的标记)的点击,因为我已经使用 mMap.setOnMarkerClickListener(mClusterManager) 来处理点击的集群的标记。

有没有办法收听单击的群集标记和群集库未处理的单击标记?

或者有没有办法指定集群管理器从不聚集一些标记?在这种情况下,我不必处理那些不同的点击侦听器,因为所有标记都将使用集群实用程序显示。

谢谢

0 投票
4 回答
3902 浏览

java - 使用 Googles android-maps-utils 在最大缩放级别禁用集群

我正在使用来自android-maps-utils的聚类对 Android 中的 Google 地图上的标记进行聚类。我想在地图处于最大缩放级别时禁用聚类(即,如果地图处于最大缩放级别,则始终呈现单个 ClusterItems,否则聚类正常)。

通过在扩展 DefaultClusterRenderer 的自定义类中对 shouldRenderAsCluster() 中的缩放级别进行测试,我几乎可以让它工作。但是,我的解决方案比实际缩放级别落后了一步。例如,如果地图的最大缩放级别为 21 级,并且用户从 20 级放大到 21 级,则 shouldRenderAsCluster 中的检查将获得当前缩放级别 20。如果用户随后缩小到 20 级,检查将获得 21 级。 ClusterItems 被渲染为我想要的单个项目,但是一个缩放动作为时已晚。

我从 DefaultClusterRenderer 中设置的变量 mZoom 中获得了“当前缩放”(显然不是当前的)。

这是代码:

变量 mZoom 和 mMap 在 DefaultClusterRenderer 中设置。因为他们在那里有私有访问权限,所以我制作了一个名为 PosMapDefaultClusterRenderer 的 DefaultClusterRenderer 副本。唯一的区别是 mZoom 和 mMap 被声明为 protected,因此它们可以在 UserClusterRenderer 中访问。

为什么 mZoom 落后一个缩放动作?有没有办法获得正在渲染集群的真实缩放级别?

缩放是通过使用来自 cameraPosition 的 cameraUpdate 调用 animateCamera 来完成的。

这也是我在 StackOverflow 上的第一个问题,因此欢迎对标签、格式等进行任何输入。

编辑:Vai 回答后的工作代码:

0 投票
2 回答
2229 浏览

android - 无法解决 - android maps utils

我正在创建带有 GPS 跟踪的模块。我在那里只跟踪实施。

我需要的是 PolyUtil,所以我在 gradle 中设置:

gradle sync 后出现错误:

无法解决:com.google.maps.android:android-maps-utils:0.4

编辑: 这是我的 build.gradle:

有什么建议么?

0 投票
1 回答
3123 浏览

android - 在 android 谷歌地图中更改集群管理器项目图标

我的 android 应用程序中有一个谷歌地图。它充满了标记,将标记聚集在一起……简而言之,这是一张完全可用的地图。

我想做的很简单。当用户点击 clusterItem 时,我想将图标更改为选定的图标。(简单地说,相同的标记但颜色不同)。

我如何在屏幕上使用大量标记,每次单击标记时都无法清理地图并添加标记。

所以:

这个想法是从地图中删除单击的项目,将其设置为“选定”,添加新项目并使用 .cluster 方法刷新地图。

会发生什么:该项目没有改变,有时该项目是“重复的”并且所选内容位于“正常”项目的后面。

这就是我设置集群管理器的方式:

这是项目渲染器:

有没有办法做到这一点而不必重新绘制地图中的每个项目?

0 投票
0 回答
359 浏览

android - 确保我的位置标记绘制在其他标记之上

我正在GoogleMap使用谷歌的地图聚类实用程序库在 a 上绘制内容。

我有很多代表图片的项目。根据缩放级别,它们是否聚集。我正在使用DefaultClusterRenderer子类管理集群。

同时,我想画一个代表设备位置的标记。那是一个完全不同的标记,不应聚集。因此,我正在处理ClusterManager/ClusterRenderer循环之外的单个标记,即调用mMap.addMarker().

问题在于,有时,取决于我们何时获得设备位置,而且在放大/缩小期间,我的位置标记被绘制在其他点和集群下方。我想要完全相反的行为,即位置标记总是在顶部。

有没有办法做到这一点?

0 投票
2 回答
457 浏览

android - 以编程方式增加android地图缩放级别

当用户点击集群时,我正在使用此代码来增加地图的缩放级别。当我点击地图上的第一个集群时它可以工作,但在它没有改变缩放级别之后。我期望的是在用户点击它时扩展每个集群。

如何使这项工作?

0 投票
1 回答
1280 浏览

onclicklistener - 在 Google Maps Android API 中通过 onclick 选择功能

我使用Google Maps Android API开发了一个地图应用程序。我使用Google Maps Android API Utility Library添加 GeoJSON 层(在多边形几何中)。

并且还添加了一个 WMS 图层作为 TileOverlay。我想要可选择的地图对象。例如,用户可以单击地图对象(GeoJSON 图层)并获取其属性。关于这个案例,我刚刚发现只有Point、Polyline、Polygon等对象可以有点击事件。我的问题是:如何为图层(GeoJSON 图层)中的所有对象设置此事件。

0 投票
1 回答
1535 浏览

google-maps-api-3 - 折线编码/解码中的“级别”到底是什么?

折线编码/解码中的“级别”是什么,它们与Google Maps API v3Android Maps API v2中的地图缩放级别到底有什么关系?

我能找到的唯一描述来自交互式折线编码器实用程序

Google 地图中的折线由一组纬度/经度对组成。此外,对于编码多段线中的每个顶点(位置),可以指定一个级别,指示该位置应该出现在该级别和任何更高级别(即缩放的任何减少)上。如果某个位置未出现在给定级别上,则该线将从上一个可见位置转到下一个可见位置。请注意,第一个和最后一个位置必须是 3 级点,否则折线不会显示在所有级别上。

“级别 3”是否对应于 Google Maps API v3 或 Android Maps API v2 中的缩放级别 3?

这是 Google Maps API v3 中缩放级别 3 的样子(不显示折线 - 这只是为了说明“缩放级别 = 3”的样子):

在此处输入图像描述

如果我们进一步缩小一级以放大 2 级,是否应该显示“3 级”点?

在此处输入图像描述

报价单:

请注意,第一个和最后一个位置必须是 3 级点,否则折线不会显示在所有级别上。

...似乎表明 3 级点应显示在所有级别上,包括缩放级别 2、1 和 0。

我想知道如果声明:

...可以指定一个级别,指示该位置应该出现在该级别和任何更高级别(即缩放的任何减少。)

...实际上应该是:

...可以指定一个级别,指示该位置应该出现在该级别和任何更高级别(即缩放的任何增加。)

“缩小缩放”似乎不正确,因为 18 级(非常放大)点将在 3 级(非常缩小)上呈现。

“增加缩放”似乎通常是有道理的(当您放大到 18 级时,您也会渲染 3 级缩小点 - 换句话说,当您放大到靠近地图时,您会添加细节) - 但是,它似乎与应该以较低的缩放级别 2、1 和 0 渲染 3 级点的说法相矛盾。

在 Android 上,开源的android-maps-utils 库包含一个解码 polylines的方法,但它不处理级别,所以我不知道是否有现成的映射到 Android Maps API v2 缩放级别。

任何人都可以澄清这一点吗?

0 投票
2 回答
173 浏览

android - 如何设置 SquareTextView 字体

我正在尝试使用 为地图标记的群集图标设置自定义字体SquareTextView,这是android-maps-utils-amap扩展 TextView 的一类库。在DefaultClusterRenderer我使用此代码设置自定义字体但没有效果。所以请帮助我理解我需要做什么来改变 SquareTextView 的字体

这是源代码SquareTextView

0 投票
1 回答
1305 浏览

android - 如何在android地图中设置地图聚类的半径

我是 android 开发的初学者,我正在研究 android maps Clustering,但我无法设置集群半径,谁能帮帮我?

示例: 我想在某个固定距离范围内聚集标记,例如,如果我给出半径 1 公里,那么应该聚集一公里范围内的所有标记。

我指的是这个用于集群开发