网址:www.cnblogs.com/phillyx/p/4534268.html
关于百度定位
- 这是官方定位的解释:geolocation
- 地图插件配置
- 我在问答里面找到了这位童鞋的百度定位,地址变更提醒
***
不过,童鞋倒是给具体的示例啊,木有~~~~(>_<)~~~~
官方的插件配置也看的懵懵懂懂,一塌糊涂
ok,自己搞,搞了大半天基本上弄清楚了,下面就总结一下自己的心血历程吧!!!~~~~~
*** - 首先要到百度lbs开放平台注册开发者账号
- 在应用里面创建应用我的应用
- 服务器、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白名单默认“*”
- 下面就是挖坑填坑的经历了
- 刚开始的使用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));