问题标签 [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.
android - IllegalArgumentException:使用 gms.maps.model.Marker.setIcon 的非托管描述符
我有一个使用android-maps-utils和glide 标记图标的应用程序。
我收到了使用 Firebase 崩溃报告的错误报告,因为它是私有的,所以我无法在源代码中跟踪它gms.maps.model.Marker.setIcon
,所以我正在寻求解决这个问题的一些帮助。
问题的以下部分分为:
- 用户在做什么
- 什么firebase崩溃报告给我
- 一些项目配置
- 我尝试/发现试图理解/修复它
用户在做什么
他正在放大和缩小地图(Fragment
使用com.google.android.gms.maps.SupportMapFragment
)
什么firebase崩溃报告给我
异常 java.lang.IllegalArgumentException:非托管描述符
com.google.maps.api.android.lib6.common.kb (:com.google.android.gms.DynamiteModulesB:162)
com.google.maps.api.android.lib6。 impl.oc (:com.google.android.gms.DynamiteModulesB:75)
com.google.maps.api.android.lib6.impl.db.a (:com.google.android.gms.DynamiteModulesB:334)
com. google.android.gms.maps.model.internal.q.onTransact (:com.google.android.gms.DynamiteModulesB:204)
android.os.Binder.transact (Binder.java:387)
com.google.android.gms .maps.model.internal.zzf$zza$zza.zzL () com.google.android.gms.maps.model.Marker.setIcon ()
co.com.spyspot.ui.content.sucursal.SucursalRender$CustomSimpleTarget.onResourceReady (SucursalRender.java:156)
co.com.spyspot.ui.content.sucursal.SucursalRender$CustomSimpleTarget.onResourceReady (SucursalRender.java:130)
com.bumptech.glide.request.GenericRequest.onResourceReady (GenericRequest.java:525)
com.bumptech.glide.request。 GenericRequest.onResourceReady (GenericRequest.java:507)
com.bumptech.glide.load.engine.EngineJob.handleResultOnMainThread (EngineJob.java:158)
com.bumptech.glide.load.engine.EngineJob.access$100 (EngineJob.java:22 ) )
com.bumptech.glide.load.engine.EngineJob$MainThreadCallback.handleMessage (EngineJob.java:202)
android.os.Handler.dispatchMessage (Handler.java:98)
android.os.Looper.loop (Looper.java:148 )
android.app.ActivityThread.main (ActivityThread.java:5443)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:728)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java: 618)
和:
一些项目配置
- 我正在使用自定义渲染 (
SucursalRender extends DefaultClusterRenderer<Sucursal>
) - 我正在用 Glide 下载 Marker 图标,就像我之前说的:
Glide.with(context).load(id).fitCenter().placeholder(R.drawable.ic_no_image).into(simpleTarget);
这simpleTarget
是我处理为 Glide 下载/缓存的图像的地方。我发布所有代码是simpleTarget
因为崩溃从那里开始:
崩溃是在最后一行代码中引发的:markerToChange.setIcon(BitmapDescriptorFactory.fromBitmap(icon));
我尝试/发现试图理解/修复它
- 尝试在 4 个真实设备中重现该错误,但均未成功。
- 在网上搜索类似的错误或
gms.maps.model.Marker.setIcon
代码com.google.maps.api.android.lib6
- 试图理解 Android Studio 中给出的混淆代码
Marker.setIcon
我想我可以将代码包装在try-catch block
IllegalArgumentException: Unmanaged descriptor 中,以避免应用程序因为崩溃而关闭,但这只是一种解决方法。
更新 2
的代码DefaultClusterRenderer
:
这ImageLoaderManager
只是 Glide 的一个门面。
android - 更改后如何将 Google 地图标记设置回默认图标?
我在android-maps-utils
我正在开发的 android 应用程序中使用带有 Google Map 的库,并且我在地图上有几个标记。当满足某些条件时,我setIcon()
使用IconGenerator
.
然后,当满足不同的条件时,我想将图标更改回原始的红色 Google Maps 标准图标。我可以跟踪条件并将它们更改为不同的自定义图标,但不知道如何将它们返回到谷歌默认值,而不是在网上某处找到一个图标并将其添加到我的项目中以手动添加,就像我使用我的个性化图标一样. 有谁知道如何检索默认值?
android - 用于 clusterItems 的 Android 谷歌地图 markerClickListener
我正在尝试为我的 googlemaps 标记实现集群。目前我有一些自定义标记颜色,当您单击它们时会触发 API 调用。加载这些结果后,将打开一个底页,其中包含该标记的特定信息。
我想保留相同的功能(自定义标记/clickListeners/标记周围的半径),但在缩小时添加集群。我查看了不同的资源来寻求帮助:
但我不确定如何为集群项目实现自定义标记和侦听器。我能够在没有点击监听器的情况下获得带有标准标记的集群。以下是一些用于说明的图像:
这是我目前的情况(我想对这些标记进行聚类)。如您所见,当我单击标记时会弹出底部表格
这是我目前能够做到的,但我想将它与之前的图片结合起来
这是我的地图片段代码的重要部分,(Point
该类确实实现了ClusterItem
接口):
我希望有人可以在正确的方向上帮助我。谢谢!
android - 检查点是否位于(或靠近)凸多边形边缘
所以我将 KML 文件加载到我的谷歌地图,它们在地图上显示为凸多边形。
我也有用户位置,基本上我想知道用户是否位于多边形的边缘之一(这是一个凸多边形)。
并且由于位置服务不是 100% 准确,如果位置很近(边缘距离为 15m),那很好:)
我的解决方案是找到在 2 个顶点之间传递的函数 y=f(x),然后检查用户位置是否低于 f(x)+a 和高于 f(x)-a。
我觉得我错过了一些东西,应该有更好(更准确)的方法来解决我的问题,甚至可能有一个已经解决这个问题的 android 的 java 库。
谢谢 :)
android - 将集群标记的比例因子更改为我自己的属性
我有一个 android 应用程序,其中的地图填充了具有销售属性的模型。
我能够实现自定义ClusterRenderer
以在集群图标上显示总销售额而不是集群大小。
我遇到的问题是例如。
Cluster
A 有 5 个ClusterItems
,总销售额为 100 万
Cluster
B 有 15 个ClusterItems
,总销售额为 100k
由于集群的默认行为,集群 B 比集群 A 大(因为它有更多ClusterItems
)
有没有办法让我劫持渲染器,以便集群标记的大小与我的总销售额而不是集群大小一起缩放?
任何帮助将不胜感激!
添加我的 clusterrenderer 代码
}
android - 如何在andorid的标题地图中获取可见区域的LatLngBounds
我尝试了以下代码。
如果将倾斜设置为地图,则不会给出正确的边界坐标
android - Google Maps Clustering 不适用于动态数据
我对GoogleMaps
. 在我的应用程序中,当用户放大或滚动地图时,我会更新地图。我为此使用OnCameraIdleListener
(链接):
当这种情况发生时,我正在使用新的半径进行 API 调用,并收到一个新的对象列表,这些对象在我当前的半径内可见。在我收到数据后,我将新的 POI 绘制到我的地图上。因此,我遍历一个列表,并为每个元素创建一个集群项目并将其添加到集群管理器。
并在迭代后即时调用
可悲的是,聚类不起作用。例如,我缩小地图的距离并不重要。我有什么遗漏吗?
提前致谢!