sencha-touch中使用百度地图

1.在使用百度地图api时,在获取经纬度后,要想获取真实准确的数据,需要加上偏移,js中有两种获取的方法,如下:

方法一:

Ext.Ajax
     .request({
url : "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x="
+ 116.409+ "&" + "y=" +39.918+"&jsonp=?",
method : 'GET',
success : function(
response, opts) {
//response.setHeader("Access-Control-Allow-Origin", "*");
var obj = Ext
.decode(response.responseText);
var lat_con = obj.x;
var lng_con = obj.y;
console.log("the lat is:"+lat_con+",the lng is:"+lng_con);
onSuccess(lat_con, lng_con);
},
failure : function(
response, opts) {
alert("error");
}
});

提示:前两个红色部分为经纬度,后一个为最后获取的正确的经纬度信息。使用时,可能会出现error:

Origin null is not allowed by Access-Control-Allow-Origin。出现JS跨域问题,所以在此给出方法二。

方法二:

Ext.data.JsonP

.request({
url : "http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x="
+ lng + "&" + "y=" +lat,
callbackKey: 'callback',
success: function(result){
var lat_con = result.x;
var lng_con = result.y;
console.log("the lat is:"+lat_con+",the lng is:"+lng_con);
onSuccess(lat_con, lng_con);
}
});

提示:前两个红色部分为经纬度,后一个为最后获取的正确的经纬度信息。

2.使用百度地图时,直接使用使用控件显示的时候会有问题(第一次显示的地点是正确的,再次进入的时候不仅地图加载不全,而且位置也会有错误,貌似二次及以上进入时,显示的都是同一个image的东西,还没找到解决办法~),捷径解决办法:

在js中通过创建div的方式将地图mapCell,map,mapMarkers嵌进去,然后在每次显示地图时加进去,不显示时再remove掉。

提示:显示地图时,会加在底层控件的上方,所以需要修改mapCell的大小,以免覆盖其它控件。

3.百度地图绘制公交车路线

transit.setSearchCompleteCallback(function(results){    
if (transit.getStatus() == BMAP_STATUS_SUCCESS){   
var firstPlan = results.getPlan(0);         
 // 绘制公交线路   
  for (var i = 0; i < firstPlan.getNumLines(); i ++){    
    var line = firstPlan.getLine(i);    
    me.map.addOverlay(new BMap.Polyline(line.getPath()));    
  }    
}
});

提示:官网上写的是line.getPoints(),会报错,改成红色部分即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值