Mapbox 地图盒符号不';不能像标记一样正常工作(群集,单击..)

Mapbox 地图盒符号不';不能像标记一样正常工作(群集,单击..),mapbox,mapbox-android,Mapbox,Mapbox Android,我正在尝试使用新的有前途的GL符号层/源在MapBox上制作移动汽车。它在android和ios上看起来都很不错,但我面临着两个不可能 符号总是聚集在一起的。setIconAllowOverlap()和setIconIgnorePlacement()没有帮助:在某些缩放中,它将被聚集。在两个平台上 如何完全禁用符号群集 更新:代码,甚至快速解决方案!(可能有bug?请参阅withTextField上的注释) 下一个问题: 在Android上,我们有symbolManager.addClick

我正在尝试使用新的有前途的GL符号层/源在MapBox上制作移动汽车。它在android和ios上看起来都很不错,但我面临着两个不可能

  • 符号总是聚集在一起的。setIconAllowOverlap()和setIconIgnorePlacement()没有帮助:在某些缩放中,它将被聚集。在两个平台上 如何完全禁用符号群集


    更新:代码,甚至快速解决方案!(可能有bug?请参阅withTextField上的注释)


    下一个问题:

  • 在Android上,我们有symbolManager.addClickListener(),但是我怎么能在iOS上点击呢?我知道我可以接住水龙头,计算最近的标记等,但是
  • 如何在swift中获得符号单击更简单?

  • 在移动汽车任务中,我应该列举现有汽车,移动运行,添加最新的。我应该在哪里存放车辆ID,以便在下一步行动时获取?其中没有偶数符号。setTag()选项。。。在代码段中存储ID(就像在GMAP上一样)并不是我从MapBox中期望的选择。当然,我可以创建一个成对的数组“car ID=symbol ID”,但是
  • 如何在符号中存储我自己的UID?

    更新:代码。注意getTag()附近的注释

    void moveExistingCarOrAddNew(int carId,LatLng newLocation){
    对于(inti=0;i
    你能把你的问题缩小到一个特定的范围,并展示给你解决问题的代码吗?我已经更新了我的问题。我还找到了第一个的解决方案,但这可能是错误所在。实际上,我的问题主要是针对MapBox支持团队的,因为第一段代码来自官方示例,所以我认为您可以将symbol的布局样式
    图标允许重叠
    文本允许重叠
    设置为
    true
    以取消聚集。我建议您按平台(iOS或Android)将问题拆分为单个问题对于不同的平台,在一次回答中回答所有4个问题会有点混乱。你能把你的问题缩小到一个特定的范围,并展示给你解决问题的代码吗?我已经更新了我的问题。我还找到了第一个的解决方案,但这可能是错误所在。实际上,我的问题主要是针对MapBox支持团队的,因为第一段代码来自官方示例,所以我认为您可以将symbol的布局样式
    图标允许重叠
    文本允许重叠
    设置为
    true
    以取消聚集。我建议您按平台(iOS或Android)将问题拆分为单个问题在不同平台的一次回答中回答所有4个问题会有点混乱。
    in onStyleLoaded():
    ...
    carManager = new SymbolManager(mapView, mapboxMap, style);
    carManager.setIconAllowOverlap(true);//doesn't help
    carManager.setIconIgnorePlacement(true);//doesn't help
    ...
    
    in drawCarFunction():
    ...
                SymbolOptions carOptions = new SymbolOptions()
                        .withLatLng(latLng)
                        .withIconImage(carPlate)
                        //.withTextField(carPlate) //!!!! here it will cluster if text exists, and will NOT - without any text
                        ;
                Symbol car= carManager.create(carOptions);
                carSymbols.add(car);
    ...
    
    void moveExistingCarOrAddNew(int carId, LatLng newLocation){ 
      for (int i = 0; i < carManager.getAnnotations().size(); i++) { 
        if (carManager.getAnnotations().get(i).getTag()==carId){ //but no getTag() here, I should fit data into text fields
           car.setLatLng(newLocation); //move! 
        } else { 
           ...//create new marker as shown above } 
        }
      }
    }