帖子
帖子
用户
博客
课程
显示全部楼层
5
帖子
0
勋章
202
Y币

[App引擎] 关于baiduMap设置比例尺的问题-已解决

[复制链接]
发表于 2014-12-30 13:04:50
本帖最后由 szzss 于 2014-12-30 16:08 编辑

问题描述:            
      百度地图SDK设置比例尺方法:setZoomLevel({params})
      百度地图SDK设置中心点方法:setCenter({params})
      首先使用map.open方法打开百度地图,然后使用setCenter方法设置中心点,然后使用setZoomLevel设置比例尺
测试结果:
      安卓系统运行通过(使用海马模拟器测试)
      IOS系统测试发现比例尺设置生效,但是中心点设置没有效果(使用iphone5s IOS7.1.2测试)
相关代码:


var map;
function initPage() {
        map = api.require('baiduMap');        
        map.open({
                x : 0,
                y : 0,
                width : w,
                height : h,
                fixedOn : "map"
        }, function(ret, err) {
                if (ret.status) {
                        getLocation();
                }
        });
}

function getLocation() {
        
        map.setCenter({
                lon : 116.971971,
                lat : 36.620887
        });
        map.setZoomLevel({
                                level : 16
                        });        
}

出现问题的原因:
setCenter函数有0.3秒的动画,原先代码中setCenter之后立即setZoomLevel导致setCenter失效
解决方案:
setCenter执行后延迟0.3秒执行setZoomLevel操作
相关代码:
function getLocation() {        
       map.setCenter({         
                lon : 116.971971,
                lat : 36.620887
        });
        setTimeout("map.setZoomLevel({level : 16})",300);   
}

另外感谢产品咨询-靝靝,模块咨询-Turbo提供的技术支持





每次调用模块接口时必须先require
5
帖子
0
勋章
202
Y币
TurboZ 发表于 2014-12-30 15:06
每次调用模块接口时必须先require

我在最前面定义了全局变量map,在初始化页面的时候require了
4
帖子
0
勋章
40
Y币
不行啊,在setTimeout("map.setZoomLevel({level : 16})",300);   中map无效,我已经声明全局变量了C:\Users\瑶\Desktop\QQ截图20150423162505.png
4
帖子
0
勋章
40
Y币
不行啊,在setTimeout("map.setZoomLevel({level : 16})",300);   中map无效,我已经声明全局变量了
QQ截图20150423162505.png
11
帖子
0
勋章
104
Y币
瑶瑶 发表于 2015-4-23 16:30
不行啊,在setTimeout("map.setZoomLevel({level : 16})",300);   中map无效,我已经声明全局变量了 ...

setTimeout(function(){map.setZoomLevel(level:16});},300);
您需要登录后才可以回帖 登录

本版积分规则