小云菜
小云菜
  • 发布:2015-05-27 19:55
  • 更新:2015-05-27 19:55
  • 阅读:11656

搞一搞百度定位

分类:HTML5+

如果有版式问题,移步到这phillyx

关于百度定位

  1. 这是官方定位的解释:geolocation
  2. 地图插件配置
  3. 我在问答里面找到了这位童鞋的百度定位,地址变更提醒
    不过,童鞋倒是给具体的示例啊,木有\~\~\~\~(>_<)\~\~\~\~  
    官方的插件配置也看的懵懵懂懂,一塌糊涂  
    ok,自己搞,搞了大半天基本上弄清楚了,下面就总结一下自己的心血历程吧!!!~~~~~  

  4. 首先要到百度lbs开放平台注册开发者账号
  5. 在应用里面创建应用我的应用
  6. 服务器、Android、ios、浏览器逐个建立一个遍
    • 安卓和ios的安全码采用dcloud官方的“BA:AD:09:3A:82:82:9F:B4:32:A7:B2:8C:B4:CC:F0:E9:F3:7D:AE:58;io.dcloud.HBuilder”
    • 服务器和浏览器的Refer白名单默认“*”
  7. 下面就是挖坑填坑的经历了
    • 刚开始的使用JavaScript API大众版, 根据demo:helloworld照葫芦画瓢,可是太尼玛慢
    • 接着看到了JavaScript API极速版, ok 这次快了好多,能不能更快呢,当然可以O(∩_∩)O~
    • 秘诀就是这Web服务API
      使用Geocoding API
      通过逆地理编码服务获取数据
      我们可以将以下链接放到浏览器地址栏中试一下
      http://api.map.baidu.com/geocoder/v2/?ak=E4805d16520de693a3fe707cdc962045&callback=renderReverse&location=39.983424,116.322987&output=json&pois=1

      到这终于可以松一口气了,差多搞定了,下面就是码转了,为了方便,直接贴代码了

<!--废弃-->  
<!--<script type="text/javascript" src="http://api.map.baidu.com/api?type=quick&ak=你的key&v=1.0"></script>-->
(function($) {  
    /**  
     * @description 获取百度定位信息  
     * @param {Function} callback  
     */  
    function getPosition(callback) {  
        try {  
            plus.geolocation.getCurrentPosition(function(position) {  
                console.log(JSON.stringify(position));  
                var codns = position.coords; //获取地理坐标信息;  
                //              var geoc = new BMap.Geocoder();  
                //              var pt = new BMap.Point(codns.longitude, codns.latitude);  
                //              geoc.getLocation(pt, function(rs) {  
                //                  var addComp = rs.addressComponents;  
                //                  console.log(JSON.stringify(addComp));  
                //                  var lo =addComp.province+','+addComp.city;  
                //                  callback(lo);  
                //              });  
                var req = 'http://api.map.baidu.com/geocoder/v2/';  
                var parms = {  
                    ak: '你的key',  
                    callback: 'renderReverse',  
                    output: 'json',  
                    location: codns.latitude + ',' + codns.longitude  
                    //,pois:1(周边poi数组) //不建议要,周边数据太杂,不需要  
                };  
                mui.ajax(req, {  
                    data: parms,  
                    dataType: 'json', //服务器返回json格式数据  
                    type: 'post', //HTTP请求类型  
                    timeout: 10000, //超时时间设置为10秒;  
                    success: function(data) {  
                        console.log(JSON.stringify(data));  
                        myStorage.setItem('geolocation',data);  
                        if (data.status == 0) {  
                            var lo = data.result.addressComponent.province + ',' + data.result.addressComponent.city;  
                            callback(lo);  
                        } else {  
                            callback(false);  
                        }  
                    },  
                    error: function(xhr, type, errorThrown) {  
                        callback(false);  
                    }  
                });  
            }, function(e) {  
                console.log("获取定位位置信息失败:" + e.message);  
                callback(false);  
            }, {  
                provider: 'baidu'  
            });  

        } catch (e) {  
            callback(false);  
            console.error(e.message);  
        }  
    }  
    $.getbaiduposition = getPosition;  
}(mui));
tip:帖子使用[Haroopad](http://pad.haroopress.com/user.html)构建,狂拽酷炫吊炸天  
5 关注 分享
fer2005 uptonking 天行 小蚂蚁 8***@qq.com

要回复文章请先登录注册

云钦

云钦

你这不叫百度定位,应该是想实现地址和坐标的转换吧
2016-03-03 21:10
zksryb

zksryb

回复 zksryb :
不能运行。
2015-12-29 10:57
zksryb

zksryb

没写全 ? 不能允许
2015-12-29 10:03