浏览器版本低!无法浏览完整内容,建议升级或更换浏览器。

文档全面上新

更科技的视觉体验,更高效的页面结构,快前往体验吧!

体验新版
第66行: 第66行:
 
                         </div><!-- 表格接口,可有多个 -->
 
                         </div><!-- 表格接口,可有多个 -->
 
                         <div class="table_wrap_con">
 
                         <div class="table_wrap_con">
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">ClusterManager</div>
 
                                </div>
 
                                <div>
 
                                    <div>getMarkerCollection()</div>
 
                                </div>
 
                                <div>
 
                                    <div>获取所有已添加的marker集合</div>
 
                                </div>
 
                            </div><!--  -->
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">ClusterManager</div>
 
                                </div>
 
                                <div>
 
                                    <div>getClusterMarkerCollection()</div>
 
                                </div>
 
                                <div>
 
                                    <div>获取聚合后的marker簇集合</div>
 
                                </div>
 
                            </div>
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">ClusterManager</div>
 
                                </div>
 
                                <div>
 
                                    <div>getMarkerManager()</div>
 
                                </div>
 
                                <div>
 
                                    <div>获取MarkerManager</div>
 
                                </div>
 
                            </div><!--  -->
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">ClusterManager</div>
 
                                </div>
 
                                <div>
 
                                    <div>setAlgorithm(Algorithm&lt;T&gt; algorithm)</div>
 
                                </div>
 
                                <div>
 
                                    <div>设置marker聚合算法</div>
 
                                </div>
 
                            </div>
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">ClusterManager</div>
 
                                </div>
 
                                <div>
 
                                    <div>clearItems()</div>
 
                                </div>
 
                                <div>
 
                                    <div>清空所有已经添加的聚合点</div>
 
                                </div>
 
                            </div><!--  -->
 
 
                             <div class="table_wrap_w">
 
                             <div class="table_wrap_w">
 
                                 <div>
 
                                 <div>
第148行: 第93行:
 
                                 </div>
 
                                 </div>
 
                                 <div>
 
                                 <div>
                                     <div>cluster()</div>
+
                                     <div>removeItem(T item)</div>
 
                                 </div>
 
                                 </div>
 
                                 <div>
 
                                 <div>
                                     <div>强制聚合</div>
+
                                     <div>移除单个聚合点</div>
 
                                 </div>
 
                                 </div>
 
                             </div>
 
                             </div>
第170行: 第115行:
 
                                 </div>
 
                                 </div>
 
                                 <div>
 
                                 <div>
                                    <div>setOnClusterInfoWindowClickListener(OnClusterInfoWindowClickListener&lt;T&gt;
+
                                     <div>setOnClusterItemClickListener(OnClusterItemClickListener<T> listener)</div>
                                        listener)</div>
+
                                </div>
+
                                <div>
+
                                    <div>设置聚合infoWindow点击回调</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">ClusterManager</div>
+
                                </div>
+
                                <div>
+
                                     <div>setOnClusterItemClickListener(OnClusterItemClickListener&lt;T&gt; listener)
+
                                    </div>
+
 
                                 </div>
 
                                 </div>
 
                                 <div>
 
                                 <div>
 
                                     <div>设置单个聚合点点击回调</div>
 
                                     <div>设置单个聚合点点击回调</div>
                                </div>
 
                            </div>
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">ClusterManager</div>
 
                                </div>
 
                                <div>
 
                                    <div>setOnClusterItemInfoWindowClickListener(OnClusterItemInfoWindowClickListener&lt;T&gt;listener)</div>
 
                                </div>
 
                                <div>
 
                                    <div>设置单个聚合InfoWindow点击回调</div>
 
                                </div>
 
                            </div>
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">MyItem</div>
 
                                </div>
 
                                <div>
 
                                    <div>getPosition()</div>
 
                                </div>
 
                                <div>
 
                                    <div>获取聚合点位置</div>
 
                                </div>
 
                            </div>
 
                            <div class="table_wrap_w">
 
                                <div>
 
                                    <div class="table-wrap-className">MyItem</div>
 
                                </div>
 
                                <div>
 
                                    <div>getBitmapDescriptor()</div>
 
                                </div>
 
                                <div>
 
                                    <div>获取聚合点图标</div>
 
 
                                 </div>
 
                                 </div>
 
                             </div>
 
                             </div>
第233行: 第132行:
 
         </div>
 
         </div>
 
         <div class="pre-nav" style="margin-left: 10px;">
 
         <div class="pre-nav" style="margin-left: 10px;">
             <div>主义在地图加载完成回调里添加聚合点,代码如下。</div>
+
             <div>注意在地图加载完成回调里添加聚合点</div>
 
         </div>
 
         </div>
 
         <div class="pre-wrap">
 
         <div class="pre-wrap">
第240行: 第139行:
 
             </div><!-- 安卓示例代码位置 -->
 
             </div><!-- 安卓示例代码位置 -->
 
             <div class="pre-wrap-w pre-wrap-w-and">
 
             <div class="pre-wrap-w pre-wrap-w-and">
                 <pre class="prettyprint prettyprinted pre-and">mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
+
                 <pre class="prettyprint prettyprinted pre-and">
 +
mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
 
     @Override
 
     @Override
 
     public void onMapLoaded() {
 
     public void onMapLoaded() {
第268行: 第168行:
 
             <div class="left-icon"></div>
 
             <div class="left-icon"></div>
 
             <div>核心代码</div>
 
             <div>核心代码</div>
 +
        </div>
 +
        <div class="pre-nav">
 +
            <div>1.初始化</div>
 
         </div>
 
         </div>
 
         <div class="pre-wrap">
 
         <div class="pre-wrap">
第274行: 第177行:
 
             </div><!-- 安卓示例代码位置 -->
 
             </div><!-- 安卓示例代码位置 -->
 
             <div class="pre-wrap-w pre-wrap-w-and">
 
             <div class="pre-wrap-w pre-wrap-w-and">
                 <pre class="prettyprint prettyprinted pre-and">/**
+
                 <pre class="prettyprint prettyprinted pre-and">
 +
private void initCluster() {
 +
    // 定义点聚合管理类ClusterManager
 +
    mClusterManager = new ClusterManager<MyItem>(this, mBaiduMap);
 +
    mBaiduMap.setOnMapStatusChangeListener(mClusterManager);
 +
    mBaiduMap.setOnMarkerClickListener(mClusterManager);
 +
 
 +
    mClusterManager
 +
            .setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItem>() {
 +
 
 +
                @Override
 +
                public boolean onClusterClick(Cluster<MyItem> cluster) {
 +
                    Toast.makeText(ClusterMarkerActivity.this, "有" + cluster.getSize() + "个点",
 +
                            Toast.LENGTH_SHORT).show();
 +
                    return false;
 +
                }
 +
            });
 +
    mClusterManager.setOnClusterItemClickListener(
 +
            new ClusterManager.OnClusterItemClickListener<MyItem>() {
 +
                @Override
 +
                public boolean onClusterItemClick(MyItem item) {
 +
                    Toast.makeText(ClusterMarkerActivity.this, "点击单个Item", Toast.LENGTH_SHORT)
 +
                            .show();
 +
                    return false;
 +
                }
 +
            });
 +
}
 +
                </pre>
 +
                <div class="pre-btn">
 +
                    <div class="pre-btn-copy-and">复制</div>
 +
                    <div class="pre-btn-cb-and">深色</div>
 +
                </div>
 +
                <div class="success">复制成功</div>
 +
            </div>
 +
        </div>
 +
        <div class="pre-nav">
 +
            <div>2.添加item</div>
 +
        </div>
 +
        <div class="pre-wrap">
 +
            <div class="pre-wrap-nav">
 +
                <div>JAVA</div>
 +
            </div><!-- 安卓示例代码位置 -->
 +
            <div class="pre-wrap-w pre-wrap-w-and">
 +
                <pre class="prettyprint prettyprinted pre-and">
 +
/**
 
* 向地图添加Marker点
 
* 向地图添加Marker点
 
*/
 
*/
 
public void addMarkers() {
 
public void addMarkers() {
// 添加Marker点
+
    // 添加Marker点
LatLng llA = new LatLng(40.109965, 116.380244);
+
LatLng llB = new LatLng(40.106965, 116.359199);
+
LatLng llC = new LatLng(40.105965, 116.405541);
+
LatLng llD = new LatLng(40.103175, 116.401394);
+
LatLng llE = new LatLng(40.102821, 116.421394);
+
  
LatLng llF = new LatLng(39.993175, 116.432394);
+
    List<MyItem> items = getMaytiems();
LatLng llG = new LatLng(39.992821, 116.431394);
+
LatLng llH = new LatLng(39.999723, 116.451394);
+
LatLng llI = new LatLng(39.996965, 116.460244);
+
LatLng llJ = new LatLng(39.999965, 116.489199);
+
  
LatLng llK = new LatLng(39.999723, 116.315541);
+
    mClusterManager.addItems(items);
LatLng llL = new LatLng(39.996965, 116.291394);
+
LatLng llM = new LatLng(40.010065, 116.351394);
+
LatLng llN = new LatLng(40.016965, 116.331394);
+
LatLng llO = new LatLng(40.015965, 116.361394);
+
LatLng llP = new LatLng(40.017965, 116.291394);
+
 
+
LatLng llQ = new LatLng(39.899723, 116.315541);
+
LatLng llR = new LatLng(39.896965, 116.341394);
+
LatLng llS = new LatLng(39.895065, 116.351394);
+
LatLng llT = new LatLng(39.916965, 116.341394);
+
LatLng llU = new LatLng(39.915965, 116.331394);
+
LatLng llV = new LatLng(39.917965, 116.321394);
+
 
+
LatLng llW = new LatLng(39.893175, 116.412394);
+
LatLng llX = new LatLng(39.892821, 116.411394);
+
LatLng llY = new LatLng(39.899723, 116.431394);
+
LatLng llZ = new LatLng(39.896965, 116.440244);
+
LatLng llA0 = new LatLng(39.899965, 116.469199);
+
List<MyItem> items = new ArrayList<MyItem>();
+
mClusterManager.addItems(items);
+
 
}
 
}
 
 
                 </pre>
 
                 </pre>
 
                 <div class="pre-btn">
 
                 <div class="pre-btn">
第322行: 第239行:
 
             </div>
 
             </div>
 
         </div>
 
         </div>
 
  
  
第361行: 第277行:
 
                             <!-- IOS使用产品下选项,可有多个 -->
 
                             <!-- IOS使用产品下选项,可有多个 -->
 
                             <!-- 产品1|/index.php?title=test -->
 
                             <!-- 产品1|/index.php?title=test -->
                             <div class="documentA">IOS地图SDK|/index.php?title=iossdk</div><!--  -->
+
                             <div class="documentA">iOS地图SDK|/index.php?title=iossdk</div><!--  -->
 
                             <div>></div>
 
                             <div>></div>
 
                             <div class="documentA">点聚合|/index.php?title=iossdk/guide/map-render/pointPoly</div>
 
                             <div class="documentA">点聚合|/index.php?title=iossdk/guide/map-render/pointPoly</div>

2020年6月2日 (二) 19:38的版本

点聚合
功能场景
通过该功能可以避免因Marker绘制过多呈现拥挤的情况,获得更优的展示效果,常用于充电桩、房产等app中。
Android
iOS
//mapopen-website-wiki.bj.bcebos.com/demos/AndroidVideos/Android点聚合.mp4
1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/qrcodes/点聚合.png
扫码体验
使用产品
Android地图SDK|/index.php?title=androidsdk
>
点聚合|/index.php?title=androidsdk/guide/render-map/conflux
下载源码
//mapopen-website-wiki.bj.bcebos.com/demos/BaiduMapSDKExample.zip
核心接口
接口
描述
ClusterManager
addItems(Collection<T> items
添加一组聚合点
ClusterManager
addItem(T myItem)
添加单个聚合点
ClusterManager
removeItem(T item)
移除单个聚合点
ClusterManager
setOnClusterClickListener(OnClusterClickListener<T> listener)
设置聚合簇点击回调
ClusterManager
setOnClusterItemClickListener(OnClusterItemClickListener<T> listener)
设置单个聚合点点击回调
重点关注
注意在地图加载完成回调里添加聚合点
JAVA
mBaiduMap.setOnMapLoadedCallback(new BaiduMap.OnMapLoadedCallback() {
    @Override
    public void onMapLoaded() {

        // 添加marker
        initCluster();
        addMarkers();

        // 设置初始中心点为北京
        LatLng center = new LatLng(39.963175, 116.400244);

        // 需要更新下地图状态,聚合点才会显示出来
        MapStatusUpdate mapStatusUpdate = MapStatusUpdateFactory.newLatLngZoom(center, 10);
        mBaiduMap.setMapStatus(mapStatusUpdate);
    }
});
                
复制
深色
复制成功
核心代码
1.初始化
JAVA
private void initCluster() {
    // 定义点聚合管理类ClusterManager
    mClusterManager = new ClusterManager<MyItem>(this, mBaiduMap);
    mBaiduMap.setOnMapStatusChangeListener(mClusterManager);
    mBaiduMap.setOnMarkerClickListener(mClusterManager);

    mClusterManager
            .setOnClusterClickListener(new ClusterManager.OnClusterClickListener<MyItem>() {

                @Override
                public boolean onClusterClick(Cluster<MyItem> cluster) {
                    Toast.makeText(ClusterMarkerActivity.this, "有" + cluster.getSize() + "个点",
                            Toast.LENGTH_SHORT).show();
                    return false;
                }
            });
    mClusterManager.setOnClusterItemClickListener(
            new ClusterManager.OnClusterItemClickListener<MyItem>() {
                @Override
                public boolean onClusterItemClick(MyItem item) {
                    Toast.makeText(ClusterMarkerActivity.this, "点击单个Item", Toast.LENGTH_SHORT)
                            .show();
                    return false;
                }
            });
}
                
复制
深色
复制成功
2.添加item
JAVA
/**
* 向地图添加Marker点
*/
public void addMarkers() {
    // 添加Marker点

    List<MyItem> items = getMaytiems();

    mClusterManager.addItems(items);
}
                
复制
深色
复制成功


  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

如发现文档错误,或对此文档有更好的建议,请在下方反馈。问题咨询请前往反馈平台提交工单咨询。

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消