gpt4 book ai didi

Android Mapbox 如何在使用 CirlceClustering 层时捕获标记点击

转载 作者:行者123 更新时间:2023-11-29 02:20:12 25 4
gpt4 key购买 nike

我当前的 Android 应用程序使用了优秀的 Mapbox SDK

implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:8.0.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v7:0.6.0'
implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-localization-v7:0.9.0'

我的应用程序显示大约 50,000 个标记,我正在使用 CircleLayer 聚类。

该应用程序按要求/预期工作,除了我看不到如何检测我的用户何时单击任何低级别标记这一事实。

所有与“Marker”相关的 mapboxMap 方法均已弃用并指示开发人员雇用

use <a href="https://github.com/mapbox/mapbox-plugins-android/tree/master/plugin-annotation">
* Mapbox Annotation Plugin

但是我看不到如何使用插件注释来检测对我的低级标记的点击。

我错过了什么?

最佳答案

要检测对 CircleLayer 的任何点击,您首先需要实现 onMapClickonMapLongClick 方法。然后在每次检测到点击时,您需要查询源图层并查看该位置附近是否有任何要素。如果是这样,那么您可以获得 N 个最近的特征并处理它们的行为。它应该看起来像这样:

@Override
public boolean onMapClick(@NonNull LatLng point) {

// Get the clicked point coordinates
PointF screenPoint = mapboxMap.getProjection().toScreenLocation(point);

// Query the source layer in that location
List<Feature> features = mapboxMap.queryRenderedFeatures(screenPoint, "MY_SOURCE_LAYER_ID");

if (!features.isEmpty()) {

// get the first feature in the list
Feature feature = features.get(0);

// do stuff...
}

return true;
}

这是处理图层数据点击的一种非常基本的方法。你可以找到我稍微修改过的这个例子here .

关于Android Mapbox 如何在使用 CirlceClustering 层时捕获标记点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56593230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com