|
ios中获得的坐标系为gps(wgs84),直接用它获得的坐标点去百度地图API转换为地址偏差是相当大的,所以要先将其转换为百度坐标系bd09ll,再解析为详细地址信息百度地图API申请地址
http://lbsyun.baidu.com/index.php?title=%E9%A6%96%E9%A1%B5file:///C:/Users/ShaoYi/Documents/My%20Knowledge/temp/6908e5cd-196c-47b8-b1a5-cd8203b796ee/128/index_files/abab510c649b502e523240a6a607917b.jpg得到AK
1.坐标转换代码
- /**
- * 百度地图API:其他坐标系转换为百度坐标系
- *
- * @param type(转换类型)
- * @param point(带转换坐标,point={"longitude":经度,"latitude":纬度})
- * @param successCallback(成功回调函数)
- * @param errorCallback(失败回调函数)
- */
- Model.prototype.bMapTransform = function(type, point, successCallback, errorCallback) {
- require([ "http://api.map.baidu.com/api?v=2.0&ak=你自己的AK&callback=_baiduInit" ], function(e) {
- if (window.BMap) {
- var count = 0;// 计时数
- // 计时器
- var load_setInterval = setInterval(function() {
- count++;
- if (window.BMap.version) {
- // 转换类型
- if (type == "wgs84-bd09ll") {
- // wgs84(gps坐标系)转bd09ll(百度坐标系)
- // GPS坐标
- var ggPoint = new BMap.Point(point.longitude, point.latitude);
- // 坐标转换完之后的回调函数
- var translateCallback = function(result) {
- if (result.status === 0) {
- // 示例返回参数
- var sample_result = {
- "status" : 0,
- "points" : [ {
- "lng" : 113.3,
- "lat" : 23.1
- } ]
- };
- successCallback(result);
- } else {
- errorCallback("坐标系转换失败。");
- }
- };
- setTimeout(function() {
- var convertor = new BMap.Convertor();
- var pointArr = [];
- pointArr.push(ggPoint);
- convertor.translate(pointArr, 1, 5, translateCallback);
- }, 1000);
- } else {
- // 其他类型,待开拓
- }
- // Test
- console.log(count * 10);
- // 清除计时器
- clearInterval(load_setInterval);
- } else if (count > 3000) {
- // 超时主动关闭,默认3秒初始化时间
- errorCallback("百度地图实例未能正确初始化。");
- // 清除计时器
- clearInterval(load_setInterval);
- }
- }, 10);
- } else {
- errorCallback("百度地图实例未能正确初始化。");
- }
- });
- };
复制代码 2.解析坐标为详细地址代码
- /**
- * 百度地图API:通过坐标解析得到地址信息
- *
- * @param point(带转换坐标,point={"longitude":经度,"latitude":纬度})
- * @param successCallback(成功回调函数)
- * @param errorCallback(失败回调函数)
- */
- Model.prototype.bMapGetAddress = function(point, successCallback, errorCallback) {
- require([ "http://api.map.baidu.com/api?v=2.0&ak=你自己的AK&callback=_baiduInit" ], function(e) {
- if (window.BMap) {
- // 计时数
- var count = 0;
- // 计时器
- var load_setInterval = setInterval(function() {
- count++;
- if (window.BMap.version) {
- var _point = new BMap.Point(point.longitude, point.latitude);
- var geoc = new BMap.Geocoder();
- geoc.getLocation(_point, function(result) {
- if (result) {
- // 示例返回参数
- var sample_result = {
- "point" : {
- "lng" : 113.11,
- "lat" : 23.1
- },
- "address" : "广东省广州市海珠区新港中路999号",
- "addressComponents" : {
- "streetNumber" : "999号",
- "street" : "新港中路",
- "district" : "海珠区",
- "city" : "广州市",
- "province" : "广东省",
- "surroundingPois" : [ {} ]
- }
- };
- successCallback(result);
- } else {
- errorCallback("地址解析失败。");
- }
- });
- // Test
- console.log(count * 10);
- // 清除计时器
- clearInterval(load_setInterval);
- } else if (count > 3000) {
- // 超时主动关闭,默认3秒初始化时间
- errorCallback("百度地图实例未能正确初始化。");
- // 清除计时器
- clearInterval(load_setInterval);
- }
- }, 10);
- }
- });
- };
复制代码
|
-
-
评分
-
查看全部评分
|