apicloud apicloud

注册
查看: 3263|回复: 2

[APP开发技巧] APICloud使用baidumap的一些笔记

新手上路

UID:123710

主题:
7
帖子:
41
云币:
337

[APP开发技巧] APICloud使用baidumap的一些笔记

3263 2 | 发表于 2015-7-23 09:07:52 |阅读模式 | |
本帖最后由 nfer 于 2015-7-23 09:18 编辑

1. 声明一个全局变量bMap;
  1. var bMap;
复制代码
此处使用全局变量的原因是不需要在函数间再进行传值。

2. 在apiready时做一下初始化操作(可以封装到init函数中)
    2.1 实例化bMap,
  1.         bMap = api.require('baiduMap');
复制代码
   2.2 打开地图
  1.         bMap.open({params},callback(ret, err));
复制代码
   2.3 params部分
        x,y,w,h lon(经度),lat(纬度),fixedOn(把百度地图添加到指定窗口的名字,默认值:当前主窗口的名字),fixed(是否将模块视图固定到窗口上,不跟随窗口上下滚动)
        上面的所有参数都是可选参数
    2.4 callback部分
        ret成功消息,err失败消息,类型是JSON
3. 打开地图成功之后的处理(即bMap.open({params},callback(ret, err))的callback部分)
    3.1 设置是否要在地图上显示当前位置
  1.         bMap.showUserLocation({...});
复制代码
       参数是:isShow,trackingMode。
    3.2 trackingMode有三种模式:
            none //标准模式
            follow //跟踪模式
            compass //罗盘模式
        注:Android系统如果为follow和compass模式,此时往地图中添加图层(大头针,布告牌等…)地图会自动移到定位信息那里。模式为none没有这种情况。因此建议使用none模式
    3.3 开始定位
  1.         bMap.startLocation({params}, callback(ret, err))
复制代码
   3.4 params部分
        accuracy,精度(取值范围:10m,100m,1km,3km);filter,位置更新所需最小距离(单位米);autoStop,获取到位置信息后是否自动停止定位
    3.5 callback部分
        ret成功消息,err失败消息,类型是JSON
4. 定位成功之后的处理(bMap.startLocation({params}, callback(ret, err))的callback部分)
    4.1 成功返回的信息
        longitude:116.213                      //经度 deprecated
        latitude:39.213                        //纬度 deprecated
        lon:116.213                            //经度
        lat:39.213                             //纬度
        timestamp:1396068155591                //时间戳
    4.2 设置缩放等级
  1.         bMap.setZoomLevel({level: 16});
复制代码
       level:地图比例尺级别,在手机上当前可使用的级别为3-18级(数值越大越精确)
        注:这里使用了js的setTimeout(code,millisec)来延时缩放
    4.3 设置百度地图中心点
  1.         setCenter({params}),其中params包括lon和lat,具体值来自于ret参数的元素
复制代码
5. 搜索周围的信息
    5.1 根据单个关键字在指定圆圈区域内搜索兴趣点
  1.         bMap.searchNearBy({params}, callback(ret, err))
复制代码
   5.2 params部分
        key, lon, lat, radius(指定的区域半径,单位为m)
    5.3 callback部分
        ret成功消息,err失败消息,类型是JSON
6. 搜索成功之后的处理
    ret:
    类型:JSON对象
    内部字段:
    {
        status:                 //是否查找成功
        totalNum:               //本次搜索的总结果数
        currNum:                 //当前页的结果数
        totalPage:              //本次搜索的总页数
        pageIndex:              //当前页的索引
        resultArray:            //返回搜索结果列表,是一个数组
        内部字段:
            [{
                lon:                    //当前内容的经度
                lat:                    //当前内容的纬度
                name:                   //名称
                uid:                    //id
                addr:                   //地址
                city:                   //所在城市
                phone:                  //电话号码
                postCode:               //邮编
                poiType:                //POI类型,0:普通点 1:公交站 2:公交线路 3:地铁站 4:地铁线路
             }]
    }
7. 在地图上添加大头针
  1.     bMap.addAnnotations({params},callback(ret,err){});
复制代码
   7.1 params字段
        annoArray:数组[{id,lon,lat,title,subTitle,img,showBubble}]
        pinImg:字符串,自定义的大头针图片,若不传则显示默认红色大头针
    7.2 callback部分
        ret,JSON对象
        经测试包括以下几项:cbBubbleID,pinId,bubbleID,bubbleId,均为pinId;eventType为pin
8. 移除指定id的大头针或布告牌
  1.     removeAnnotations({params})
复制代码
   注意,addAnnotations的时候使用的是大头针具体信息的数组,而删除大头针时只需要id数组即可。

注:该笔记是从开源项目https://github.com/jinlong/didiShit学习,请自行前往围观学习。
贴一个我改过后的源码。

本帖子中包含更多资源    您需要 登录 才可以下载或查看,没有帐号?立即注册

1

查看全部评分

新手上路

UID:84955

主题:
0
帖子:
65
云币:
76
发表于 2015-8-13 19:33:44 |
谢谢你的分享

驾校小白

UID:160973

主题:
1
帖子:
17
云币:
106
发表于 2015-10-8 16:19:02 |
楼主好强
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表