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

文档全面上新

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

体验新版
(以“{{samplescenter-sidebar}} <div id="examples_center"> <!-- 页面标题 --> <div class="title-hd"></div><!-- 标题下子标题及简介,可有多个 --> ...”为内容创建页面)
 
 
(未显示1个用户的12个中间版本)
第1行: 第1行:
{{samplescenter-sidebar}}
+
<div id="examples_center"><!-- 页面标题 --><div class="title-hd">出行场景的多路线规划</div><!-- 标题下子标题及简介,可有多个 --><div class="title-mi">使用场景</div><div class="wrap-mi">根据起终点规划多条路线,结合路线特点,帮助用户选择合适路线。</div><!--  --></div><div class="demos_wrap"><div class="header"><div class="andiord-header active">Android</div><div class="ios-header">iOS</div></div><div class="andiord-wrap wrap"><div class="wrap-wp"><div class="wrap_left"><div class="left-video"><div class="img-bg-and"></div><div class="phone-android"><div class="video-wrap infor"><div class="video-control"></div><!-- 安卓视频位置 (不写协议)--><pre>//mapopen-website-wiki.bj.bcebos.com/demos/AndroidVideos/多路线规划.mp4</pre>
<div id="examples_center">
+
</div><div class="video-icon-and"><div class="play play-and"></div><div class="stop stop-and"></div></div></div><div class="progressWrap-hide-and"></div><div id="videoControls-and"><div id="progressWrap-and"><div id="playProgress-and"></div></div></div></div><div class="left-qrCode"><!-- 安卓二维码位置 --><div class="qrCode-and">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/newqrcodes/多路线.png</div><div>扫码体验</div></div></div><div class="wrap_right"><div class="wrap_right_nav"><div class="wrap_right_nav_l"><div>使用产品</div><div><!-- 安卓使用产品下选项,可有多个 --><div class="documentA">Android导航SDK|/index.php?title=android-navsdk</div><div>></div><div class="documentA">驾车页|/index.php?title=android-navsdk/guide/routeresult</div></div></div><div class="wrap_right_nav_r">下载源码</div><!-- 安卓源码地址 --><div class="github-url-and">//mapopen-website-wiki.bj.bcebos.com/demos/location/ONSDKDemo.zip</div></div><div class="wrap_table"><div class="table_nav"><div class="left-icon"></div><div>核心接口</div></div><div class="table_wrap"><div class="table_wrap_title"><div>类</div><div>接口</div><div>描述</div></div><!-- 表格接口,可有多个 --><div class="table_wrap_con"><div class="table_wrap_w"><div><div class="table-wrap-className">BaiduNaviManagerFactory</div></div><div><div>getBaiduNaviManager()</div></div><div><div>获取导航管理类实例</div></div></div><!--  --><div class="table_wrap_w"><div><div class="table-wrap-className">BaiduNaviManagerFactory</div></div><div><div>getMapManager()</div></div><div><div>获取基础地图管理类示例</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BaiduNaviManagerFactory</div></div><div><div>getTTSManager()</div></div><div><div>获取语音播放管理类实例</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BaiduNaviManagerFactory</div></div><div><div>getRoutePlanManager()</div></div><div><div>获取路径规划类实例</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BaiduNaviManagerFactory</div></div><div><div>getRouteGuideManager()</div></div><div><div>获取导航管理类实例</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">IBNMapManager</div></div><div><div>attach(ViewGroup viewGroup);</div></div><div><div>地图底图attach到ViewGroup</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">IBNMapManager</div></div><div><div>detach(ViewGroup viewGroup)</div></div><div><div>地图地图从ViewGroup detach</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">IBaiduNaviManager</div></div><div><div>init(Context context, String dataDir,String appFolderName, INaviInitListener listener)</div></div><div><div>导航初始化接口</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">IBNTTSManager</div></div><div><div>initTTS(Context context, String sdcardDir, String appFolderName, String ttsAppID);</div></div><div><div>初始化语音播报引擎</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">IBNRoutePlanManager</div></div><div><div>routeplan(List&lt;BNRoutePlanNode&gt; var1, int var2, Bundle var3, Handler var4);</div></div><div><div>进行算路</div></div></div></div></div></div></div></div><div class="pre-nav"><div class="left-icon"></div><div>重点关注</div></div><div class="pre-nav" style="margin-left: 10px;"><div>需要在BaiduNaviManagerFactory.getBaiduNaviManager().init 完成,并且回调initSuccess后,再初始化语音播报引擎以及进行routePlan算路。</div></div><div class="pre-nav"><div class="left-icon"></div><div>核心代码</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">/**
    <!-- 页面标题 -->
+
    <div class="title-hd"></div><!-- 标题下子标题及简介,可有多个 -->
+
    <div class="title-mi">出行场景的多路线规划</div>
+
    <div class="wrap-mi"></div><!--  -->
+
</div>
+
<div class="demos_wrap">
+
    <div class="header">
+
        <div class="andiord-header active">Android</div>
+
        <div class="ios-header hide">iOS</div>
+
    </div>
+
    <div class="andiord-wrap wrap">
+
        <div class="wrap-wp">
+
            <div class="wrap_left">
+
                <div class="left-video">
+
                    <div class="img-bg-and"></div>
+
                    <div class="phone-android">
+
                        <div class="video-wrap infor">
+
                            <div class="video-control"></div><!-- 安卓视频位置 (不写协议)-->
+
                            <pre></pre>
+
                        </div>
+
                        <div class="video-icon-and">
+
                            <div class="play play-and"></div>
+
                            <div class="stop stop-and"></div>
+
                        </div>
+
                    </div>
+
                    <div class="progressWrap-hide-and"></div>
+
                    <div id="videoControls-and">
+
                        <div id="progressWrap-and">
+
                            <div id="playProgress-and"></div>
+
                        </div>
+
                    </div>
+
                </div>
+
                <div class="left-qrCode">
+
                    <!-- 安卓二维码位置 -->
+
                    <div class="qrCode-and">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/qrcodes/多路线.png</div>
+
                    <div>扫码体验</div>
+
                </div>
+
            </div>
+
            <div class="wrap_right">
+
                <div class="wrap_right_nav">
+
                    <div class="wrap_right_nav_l">
+
                        <div>使用产品</div>
+
                        <div>
+
                            <!-- 安卓使用产品下选项,可有多个 -->
+
                            <!-- 产品1|/index.php?title=test -->
+
                            <div class="documentA">产品1|/index.php?title=test</div>
+
                            <div >></div>
+
                            <div class="documentA">产品2|/index.php?title=test</div>
+
                        </div>
+
                    </div>
+
                    <div class="wrap_right_nav_r">下载源码</div><!-- 安卓源码地址 -->
+
                    <div class="github-url-and">//mapopen-pub-androidsdk.cdn.bcebos.com/map/sample/BaiduLBS_AndroidSDK_Sample.zip</div>
+
                </div>
+
                <div class="wrap_table">
+
                    <div class="table_nav">
+
                        <div class="left-icon"></div>
+
                        <div>核心接口</div>
+
                    </div>
+
                    <div class="table_wrap">
+
                        <div class="table_wrap_title">
+
                            <div>类</div>
+
                            <div>接口</div>
+
                            <div>描述</div>
+
                        </div>
+
                        <!-- 表格接口,可有多个 -->
+
                        <div class="table_wrap_con">
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BaiduNaviManagerFactory</div>
+
                                </div>
+
                                <div>
+
                                    <div>getBaiduNaviManager()</div>
+
                                </div>
+
                                <div>
+
                                    <div>获取导航管理类实例</div>
+
                                </div>
+
                            </div><!--  -->
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BaiduNaviManagerFactory</div>
+
                                </div>
+
                                <div>
+
                                    <div>getMapManager()</div>
+
                                </div>
+
                                <div>
+
                                    <div>获取基础地图管理类示例</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BaiduNaviManagerFactory</div>
+
                                </div>
+
                                <div>
+
                                    <div>getTTSManager()</div>
+
                                </div>
+
                                <div>
+
                                    <div>获取语音播放管理类实例</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BaiduNaviManagerFactory</div>
+
                                </div>
+
                                <div>
+
                                    <div>getRoutePlanManager()</div>
+
                                </div>
+
                                <div>
+
                                    <div>获取路径规划类实例</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BaiduNaviManagerFactory</div>
+
                                </div>
+
                                <div>
+
                                    <div>getRouteGuideManager()</div>
+
                                </div>
+
                                <div>
+
                                    <div>获取导航管理类实例</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">IBNMapManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>attach(ViewGroup viewGroup);</div>
+
                                </div>
+
                                <div>
+
                                    <div>地图底图attach到ViewGroup</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">IBNMapManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>detach(ViewGroup viewGroup)</div>
+
                                </div>
+
                                <div>
+
                                    <div>地图地图从ViewGroup detach</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">IBaiduNaviManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>init(Context context, String dataDir,String appFolderName, INaviInitListener listener)</div>
+
                                </div>
+
                                <div>
+
                                    <div>导航初始化接口</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">IBNTTSManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>initTTS(Context context, String sdcardDir, String appFolderName, String ttsAppID);</div>
+
                                </div>
+
                                <div>
+
                                    <div>初始化语音播报引擎</div>
+
                                </div>
+
                            </div>
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">IBNRoutePlanManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>routeplan(List<BNRoutePlanNode> var1, int var2, Bundle var3, Handler var4);</div>
+
                                </div>
+
                                <div>
+
                                    <div>进行算路</div>
+
                                </div>
+
                            </div>
+
                           
+
                        </div>
+
                    </div>
+
                </div>
+
 
+
            </div>
+
        </div>
+
 
+
 
+
        <div class="pre-nav">
+
            <div class="left-icon"></div>
+
            <div>重点关注</div>
+
        </div>
+
        <div class="pre-nav">
+
            <div>一定要再BaiduNaviManagerFactory.getBaiduNaviManager().init 完成,并且回调initSuccess后,在初始化语音播报引擎以及进行routePlan算路</div>
+
        </div>
+
     
+
 
+
 
+
        <div class="pre-nav">
+
            <div class="left-icon"></div>
+
            <div>核心代码</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">
+
/**
+
 
* 算路规划
 
* 算路规划
 
*
 
*
第252行: 第46行:
 
}               
 
}               
 
                 </pre>
 
                 </pre>
                <div class="pre-btn">
+
<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><div class="ios-wrap wrap" style="display: none;"><div class="wrap-wp"><div class="wrap_left"><div class="left-video"><div class="img-bg-ios"></div><div class="phone-ios"><div class="video-wrap infor"><div class="video-control"></div><!-- ios视频位置 --><pre>//mapopen-website-wiki.bj.bcebos.com/demos/iosVideos/iOS多路线规划.mov</pre>
                    <div class="pre-btn-copy-and">复制</div>
+
</div><div class="video-icon-ios"><div class="play play-ios"></div><div class="stop stop-ios"></div></div></div><div class="progressWrap-hide-ios"></div><div id="videoControls-ios"><div id="progressWrap-ios"><div id="playProgress-ios"></div></div></div></div><div class="left-qrCode iosqrCode"><!-- ios二维码位置 --><div class="qrCode-ios">1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/ioscodes/出行场景的多路线规划@1xios.png</div><div>扫码体验</div></div></div><div class="wrap_right"><div class="wrap_right_nav"><div class="wrap_right_nav_l"><div>使用产品</div><div><!-- IOS使用产品下选项,可有多个 --><div class="documentA">iOS导航SDK|/index.php?title=ios-navsdk</div><!--  --><div>></div><div class="documentA">驾车页|/index.php?title=ios-navsdk/guide/DrivePage</div></div></div><div class="wrap_right_nav_r">下载源码</div><!-- IOS源码地址 --><div class="github-url-ios">//mapopen-website-wiki.bj.bcebos.com/demos/iosVideos/iOS多路线规划.zip</div></div><div class="wrap_table"><div class="table_nav"><div class="left-icon"></div><div>核心接口</div></div><div class="table_wrap"><div class="table_wrap_title"><div>类</div><div>接口</div><div>描述</div><div>备注</div></div><!-- ios表格接口内容,可有多个 --><!-- 表格接口,可有多个 --><div class="table_wrap_con"><div class="table_wrap_w"><div><div class="table-wrap-className">BMKMultiRouteSelectedView</div></div><div><div>- (void)configData:(NSArray&lt;BNCarOneRouteModel *&gt; *)routes</div></div><div><div>配置路线数据</div></div><div><div></div></div></div><!--  --><div class="table_wrap_w"><div><div class="table-wrap-className">BMKMultiRouteSelectedView</div></div><div><div>- (void)multiRouteSelected:(NSUInteger)index;</div></div><div><div>设置选中第几条route</div></div><div><div></div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BMKMultiRouteSelectedView</div></div><div><div>- (void)routeSelected:(void(^)(NSUInteger index))selectedBlock;</div></div><div><div>方案选中回调</div></div><div><div></div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BNaviService</div></div><div><div>- (void)startNaviRoutePlan:(BNRoutePlanMode)eMode naviNodes:(NSArray*)naviNodes time:(BNaviCalcRouteTime*)naviTime delegete:(id&lt;BNNaviRoutePlanDelegate&gt;)delegate userInfo:(NSDictionary*)userInfo</div></div><div><div>发起算路</div></div><div><div>V4.8.0起</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BNaviService</div></div><div><div>- (void)routePlanDidFinished:(NSDictionary*)userInfo;</div></div><div><div>算路成功回调</div></div><div><div>V4.8.0起</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BNaviService</div></div><div><div>- (void)routePlanDidFailedWithError:(NSError *)error andUserInfo:(NSDictionary*)userInfo;</div></div><div><div>算路失败回调</div></div><div><div>V4.8.0起</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BNaviService</div></div><div><div>-(void)routePlanDidUserCanceled:(NSDictionary*)userInfo;</div></div><div><div>算路取消回调</div></div><div><div>V4.8.0起</div></div></div><div class="table_wrap_w"><div><div class="table-wrap-className">BNaviService</div></div><div><div>- (void)onHandleTouchRouteAtIndex:(NSUInteger)routeIndex;</div></div><div><div>用户在地图上点击了某条路线回调</div></div><div><div>V4.8.0起</div></div></div></div></div></div></div></div><div class="pre-nav"><div class="left-icon"></div><div>核心代码</div></div><div class="pre-wrap"><div class="pre-wrap-nav"><div>Objective-C</div></div><div class="pre-wrap-w pre-wrap-w-ios code_container"><!-- ios示例代码位置 --><pre class="prettyprint prettyprinted pre-ios">/** 发起算路. */
                    <div class="pre-btn-cb-and">深色</div>
+
- (void)startRoutePlan {
                </div>
+
     if (self.nodes.count >= 2) {
                <div class="success">复制成功</div>
+
         BNaviService_RoutePlan.disableOpenUrl = YES;
 
+
         [BNaviService_RoutePlan startNaviRoutePlan:BNRoutePlanMode_Recommend naviNodes:self.nodes time:nil delegete:self userInfo:nil];
            </div>
+
        </div>
+
     
+
 
+
 
+
 
+
    </div>
+
    <div class="ios-wrap wrap" style="display: none;">
+
        <div class="wrap-wp">
+
            <div class="wrap_left">
+
                <div class="left-video">
+
                    <div class="img-bg-ios"></div>
+
                    <div class="phone-ios">
+
                        <div class="video-wrap infor">
+
                            <div class="video-control"></div><!-- ios视频位置 -->
+
                            <pre>//mapopen-website-wiki.bj.bcebos.com/demos/iosVideos/iOS多路线规划.mov</pre>
+
                        </div>
+
                        <div class="video-icon-ios">
+
                            <div class="play play-ios"></div>
+
                            <div class="stop stop-ios"></div>
+
                        </div>
+
                    </div>
+
                    <div class="progressWrap-hide-ios"></div>
+
                    <div id="videoControls-ios">
+
                        <div id="progressWrap-ios">
+
                            <div id="playProgress-ios"></div>
+
                        </div>
+
                    </div>
+
                </div>
+
                <div class="left-qrCode">
+
                    <!-- ios二维码位置 -->
+
                    <div class="qrCode-ios">//mapopen-website-wiki.bj.bcebos.com/demos/play.png</div>
+
                    <div>扫码手机观看</div>
+
                </div>
+
            </div>
+
            <div class="wrap_right">
+
                <div class="wrap_right_nav">
+
                    <div class="wrap_right_nav_l">
+
                        <div>使用产品</div>
+
                        <div>
+
                            <!-- IOS使用产品下选项,可有多个 -->
+
                            <!-- 产品1|/index.php?title=test -->
+
                            <div class="documentA">产品1|/index.php?title=test</div><!--  -->
+
                            <div >></div>
+
                            <div class="documentA">产品2|/index.php?title=test</div>
+
                        </div>
+
                    </div>
+
                    <div class="wrap_right_nav_r">下载源码</div><!-- IOS源码地址 -->
+
                    <div class="github-url-ios">//mapopen-website-wiki.bj.bcebos.com/demos/iosVideos/iOS多路线规划.zip</div>
+
                </div>
+
                <div class="wrap_table">
+
                    <div class="table_nav">
+
                        <div class="left-icon"></div>
+
                        <div>核心接口</div>
+
                    </div>
+
                    <div class="table_wrap">
+
                        <div class="table_wrap_title">
+
                            <div>类</div>
+
                            <div>接口</div>
+
                            <div>描述</div>
+
                            <div>备注</div>
+
                        </div><!-- ios表格接口内容,可有多个 -->
+
                        <!-- 表格接口,可有多个 -->
+
                        <div class="table_wrap_con">
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BMKClusterManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>- (void)clearClusterItems;</div>
+
                                </div>
+
                                <div>
+
                                    <div>清除标注集群items</div>
+
                                </div>
+
                                <div>
+
                                    <div>V4.0.0起</div>
+
                                </div>
+
   
+
                            </div><!--  -->
+
                            <div class="table_wrap_w">
+
                                <div>
+
                                    <div class="table-wrap-className">BMKClusterManager</div>
+
                                </div>
+
                                <div>
+
                                    <div>- (NSArray&lt;BMKCluster *&gt; *)getClusters:(CGFloat)zoomLevel;</div>
+
                                </div>
+
                                <div>
+
                                    <div>根据地图缩放级别获取标注集群</div>
+
                                </div>
+
                                <div>
+
                                    <div>V4.0.0起</div>
+
                                </div>
+
   
+
                            </div>
+
                           
+
 
+
                        </div>
+
                    </div>
+
                </div>
+
 
+
            </div>
+
        </div>
+
        <div class="pre-nav">
+
            <div class="left-icon"></div>
+
            <div>核心代码</div>
+
        </div>
+
        <div class="pre-wrap">
+
            <div class="pre-wrap-title">1.第一步</div>
+
            <div class="pre-wrap-nav">
+
                <div>Objective-C</div>
+
            </div>
+
           
+
            <div class="pre-wrap-w pre-wrap-w-ios code_container">
+
                <!-- ios示例代码位置 -->
+
                <pre class="prettyprint prettyprinted pre-ios">
+
1
+
/** 更新标注展示. */
+
- (void)updateClusters {
+
_clusterZoom = (NSInteger)_mapView.zoomLevel;
+
@synchronized(_clusterManager.clusterCaches) {
+
    NSMutableArray *clusters = [_clusterManager.clusterCaches objectAtIndex:(_clusterZoom - 3)];
+
     if (clusters.count > 0) {
+
 
+
         // 移除一组标注
+
        [_mapView removeAnnotations:_mapView.annotations];
+
        //将一组标注添加到当前地图View中
+
        [_mapView addAnnotations:clusters];
+
    } else {
+
    __weak typeof(self) weakSelf = self;
+
         dispatch_async(dispatch_get_global_queue(0, 0), ^{
+
            // 获取聚合后的标注
+
            __block NSArray *array = [weakSelf.clusterManager getClusters:weakSelf.clusterZoom];
+
            dispatch_async(dispatch_get_main_queue(), ^{
+
                for (BMKCluster *item in array) {
+
                    ClusterAnnotation *annotation = [[ClusterAnnotation alloc] init];
+
                    // 设置标注的经纬度坐标
+
                    annotation.coordinate = item.coordinate;
+
                    annotation.size = item.size;
+
                    // 设置标注的标题
+
                    annotation.title = [NSString stringWithFormat:@"我是%lu个", (unsigned long)item.size];
+
                    [clusters addObject:annotation];
+
                }
+
                // 移除一组标注
+
                [weakSelf.mapView removeAnnotations:weakSelf.mapView.annotations];
+
                // 将一组标注添加到当前地图View中
+
                [weakSelf.mapView addAnnotations:clusters];
+
            });
+
        });
+
 
     }
 
     }
 
}
 
}
 +
/** 屏幕适配. */
 +
- (void)showRouteViewAll {
 +
    BNMargin margin = {80, 20, CGRectGetHeight(self.view.frame) - (KScreenHeight-[self bottomPaneHeight]-(kRAButtonHeight*2+1)-5), 20};
 +
    [BNaviService_DriveRoute showRouteViewAll:margin animated:YES];
 
}
 
}
 
+
#pragma mark - BNNaviRoutePlanDelegate
                </pre>
+
/** 算路成功回调. */
                <div class="pre-btn">
+
- (void)routePlanDidFinished:(NSDictionary*)userInfo {
                    <div class="pre-btn-copy-ios">复制</div>
+
    NSLog(@"算路成功回调 =%@", userInfo);
                    <div class="pre-btn-cb-ios">深色</div>
+
     [self showRouteViewAll];
                </div>
+
    [self initMapSubView];
                <div class="success">复制成功</div>
+
     BNCarRouteModel *route = userInfo[BNDriveRouteDataKey];
            </div>
+
    if (route) {
        </div>
+
        self.carRoute = route;
        <div class="pre-wrap">
+
            <div class="pre-wrap-title">2.第二步</div>
+
            <div class="pre-wrap-nav">
+
                <div>Objective-C</div>
+
            </div>
+
           
+
            <div class="pre-wrap-w pre-wrap-w-ios code_container">
+
                <!-- ios示例代码位置 -->
+
                <pre class="prettyprint prettyprinted pre-ios">
+
2
+
/** 更新标注展示. */
+
- (void)updateClusters {
+
_clusterZoom = (NSInteger)_mapView.zoomLevel;
+
@synchronized(_clusterManager.clusterCaches) {
+
    NSMutableArray *clusters = [_clusterManager.clusterCaches objectAtIndex:(_clusterZoom - 3)];
+
     if (clusters.count > 0) {
+
 
+
        // 移除一组标注
+
        [_mapView removeAnnotations:_mapView.annotations];
+
        //将一组标注添加到当前地图View中
+
        [_mapView addAnnotations:clusters];
+
     } else {
+
    __weak typeof(self) weakSelf = self;
+
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
+
            // 获取聚合后的标注
+
            __block NSArray *array = [weakSelf.clusterManager getClusters:weakSelf.clusterZoom];
+
            dispatch_async(dispatch_get_main_queue(), ^{
+
                for (BMKCluster *item in array) {
+
                    ClusterAnnotation *annotation = [[ClusterAnnotation alloc] init];
+
                    // 设置标注的经纬度坐标
+
                    annotation.coordinate = item.coordinate;
+
                    annotation.size = item.size;
+
                    // 设置标注的标题
+
                    annotation.title = [NSString stringWithFormat:@"我是%lu个", (unsigned long)item.size];
+
                    [clusters addObject:annotation];
+
                }
+
                // 移除一组标注
+
                [weakSelf.mapView removeAnnotations:weakSelf.mapView.annotations];
+
                // 将一组标注添加到当前地图View中
+
                [weakSelf.mapView addAnnotations:clusters];
+
            });
+
        });
+
 
     }
 
     }
}
+
    // 配置路线数据
}
+
    [self.multiRouteView configData:self.carRoute.carRoutes];
 
+
     // 默认选中第一条
                </pre>
+
    [self.multiRouteView multiRouteSelected:0];
                <div class="pre-btn">
+
   
                    <div class="pre-btn-copy-ios">复制</div>
+
    // 路线选中回调
                    <div class="pre-btn-cb-ios">深色</div>
+
                </div>
+
                <div class="success">复制成功</div>
+
            </div>
+
        </div>
+
        <div class="pre-wrap">
+
            <div class="pre-wrap-title">3.名字</div>
+
            <div class="pre-wrap-nav">
+
                <div>Objective-C</div>
+
            </div>
+
           
+
            <div class="pre-wrap-w pre-wrap-w-ios code_container">
+
                <!-- ios示例代码位置 -->
+
                <pre class="prettyprint prettyprinted pre-ios">
+
3
+
/** 更新标注展示. */
+
- (void)updateClusters {
+
_clusterZoom = (NSInteger)_mapView.zoomLevel;
+
@synchronized(_clusterManager.clusterCaches) {
+
    NSMutableArray *clusters = [_clusterManager.clusterCaches objectAtIndex:(_clusterZoom - 3)];
+
     if (clusters.count > 0) {
+
 
+
        // 移除一组标注
+
        [_mapView removeAnnotations:_mapView.annotations];
+
        //将一组标注添加到当前地图View中
+
        [_mapView addAnnotations:clusters];
+
    } else {
+
 
     __weak typeof(self) weakSelf = self;
 
     __weak typeof(self) weakSelf = self;
        dispatch_async(dispatch_get_global_queue(0, 0), ^{
+
    [self.multiRouteView routeSelected:^(NSUInteger index) {
            // 获取聚合后的标注
+
        [weakSelf routeSelectIndex:index needSelectRoute:YES];
            __block NSArray *array = [weakSelf.clusterManager getClusters:weakSelf.clusterZoom];
+
    }];
            dispatch_async(dispatch_get_main_queue(), ^{
+
                for (BMKCluster *item in array) {
+
                    ClusterAnnotation *annotation = [[ClusterAnnotation alloc] init];
+
                    // 设置标注的经纬度坐标
+
                    annotation.coordinate = item.coordinate;
+
                    annotation.size = item.size;
+
                    // 设置标注的标题
+
                    annotation.title = [NSString stringWithFormat:@"我是%lu个", (unsigned long)item.size];
+
                    [clusters addObject:annotation];
+
                }
+
                // 移除一组标注
+
                [weakSelf.mapView removeAnnotations:weakSelf.mapView.annotations];
+
                // 将一组标注添加到当前地图View中
+
                [weakSelf.mapView addAnnotations:clusters];
+
            });
+
        });
+
    }
+
 
}
 
}
}
 
 
 
                 </pre>
 
                 </pre>
                <div class="pre-btn">
+
<div class="pre-btn"><div class="pre-btn-copy-ios">复制</div><div class="pre-btn-cb-ios">深色</div></div><div class="success">复制成功</div></div></div></div></div>
                    <div class="pre-btn-copy-ios">复制</div>
+
                    <div class="pre-btn-cb-ios">深色</div>
+
                </div>
+
                <div class="success">复制成功</div>
+
            </div>
+
        </div>
+
        <div class="more-nav">
+
            <div class="left-icon"></div>
+
            <div>更多功能</div>
+
        </div>
+
        <div class="more-wrap">
+
            <!-- IOS更多功能下选项 -->
+
            <!-- 点标记动画|/index.php?title=test -->
+
            <div>
+
                <div class="point"></div>
+
                <div class="documentA">点标记动画|/index.php?title=test</div>
+
            </div>
+
            <div>
+
                <div class="point"></div>
+
                <div class="documentA">点融合|/index.php?title=test</div>
+
            </div>
+
            <div>
+
                <div class="point"></div>
+
                <div class="documentA">添加文字和信息窗|/index.php?title=test</div>
+
            </div>
+
        </div>
+
    </div>
+
</div>
+

2022年2月25日 (五) 17:40的最后版本

出行场景的多路线规划
使用场景
根据起终点规划多条路线,结合路线特点,帮助用户选择合适路线。
Android
iOS
//mapopen-website-wiki.bj.bcebos.com/demos/AndroidVideos/多路线规划.mp4
1590746640|//mapopen-website-wiki.bj.bcebos.com/demos/newqrcodes/多路线.png
扫码体验
使用产品
Android导航SDK|/index.php?title=android-navsdk
>
驾车页|/index.php?title=android-navsdk/guide/routeresult
下载源码
//mapopen-website-wiki.bj.bcebos.com/demos/location/ONSDKDemo.zip
核心接口
接口
描述
BaiduNaviManagerFactory
getBaiduNaviManager()
获取导航管理类实例
BaiduNaviManagerFactory
getMapManager()
获取基础地图管理类示例
BaiduNaviManagerFactory
getTTSManager()
获取语音播放管理类实例
BaiduNaviManagerFactory
getRoutePlanManager()
获取路径规划类实例
BaiduNaviManagerFactory
getRouteGuideManager()
获取导航管理类实例
IBNMapManager
attach(ViewGroup viewGroup);
地图底图attach到ViewGroup
IBNMapManager
detach(ViewGroup viewGroup)
地图地图从ViewGroup detach
IBaiduNaviManager
init(Context context, String dataDir,String appFolderName, INaviInitListener listener)
导航初始化接口
IBNTTSManager
initTTS(Context context, String sdcardDir, String appFolderName, String ttsAppID);
初始化语音播报引擎
IBNRoutePlanManager
routeplan(List<BNRoutePlanNode> var1, int var2, Bundle var3, Handler var4);
进行算路
重点关注
需要在BaiduNaviManagerFactory.getBaiduNaviManager().init 完成,并且回调initSuccess后,再初始化语音播报引擎以及进行routePlan算路。
核心代码
JAVA
/**
* 算路规划
*
* @param sNode
* @param eNode
*/
private void routePlan(BNRoutePlanNode sNode, BNRoutePlanNode eNode) {
    List<BNRoutePlanNode> list = new ArrayList<>();
    list.add(sNode);
    list.add(eNode);

    BaiduNaviManagerFactory.getRoutePlanManager().routeplan(
            list,
            IBNRoutePlanManager.RoutePlanPreference.ROUTE_PLAN_PREFERENCE_DEFAULT,
            null,
            new Handler(Looper.getMainLooper()) {
                @Override
                public void handleMessage(Message msg) {
                    switch (msg.what) {
                        case IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_START:
                            Log.d(TAG, "算路开始!");
                            break;
                        case IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_SUCCESS:
                            Log.d(TAG, "成功!");
                            mFl_retry.setVisibility(View.GONE);

                            FragmentManager fm = getSupportFragmentManager();
                            FragmentTransaction tx = fm.beginTransaction();
                            DemoRouteResultFragment fragment = new DemoRouteResultFragment();
                            tx.add(R.id.fragment_content, fragment, "RouteResult");
                            tx.commit();
                            break;
                        case IBNRoutePlanManager.MSG_NAVI_ROUTE_PLAN_FAILED:
                            mFl_retry.setVisibility(View.VISIBLE);
                            Toast.makeText(getApplicationContext(),
                                    "算路失败", Toast.LENGTH_SHORT).show();
                            break;
                        default:
                            // nothing
                            break;
                    }
                }
            });
}
}              
                
复制
深色
复制成功
  • 文档根本没法用

  • 文档水平很差

  • 文档水平一般

  • 文档不错

  • 文档写的很好

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

提交反馈

拖动标注工具

添加矩形标注

添加箭头标注

完成

取消