自2018年10月18日起,高德开发者论坛除车机板块外,其他板块将停止发帖与维护,如您有使用问题请 提交工单 联系我们,感谢您的理解。

查看: 882|回复: 2
打印 上一主题 下一主题

[已解决]关于室内地图的楼层切换

[复制链接]
最佳答案
1 

14

主题

29

帖子

118

积分

新手上路

Rank: 1

积分
118
跳转到指定楼层
楼主
发表于 2016-6-12 15:10:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
室内地图绑定了楼层切换的事件
  1. //切换楼层
  2.                                 myIndoormap.on("floorchanged",floorchange);
复制代码
在这个事件里有两个方法
  1.   function floorchange(){
  2.                         clearMarker(); //清除地图上marker
  3.                         showMarker();//显示当前楼层的marker
  4.                 }
复制代码

这里的showMarker里面有循环,显示当前楼层的marker但是现在测试,所以只是循环后打印出一些数据。在控制台我设置了断点查看,当showMarker()里的for循环走完,就执行indoormap-1.0.js里面的方法,具体也看不懂,然后完了就又再次执行showMarker,这样执行了好几遍,导致我打印的数据都是重复的,而且我发现scada.scadaConfig[floorNum]里面的元素越多,反复执行的次数就越多,这是为什么?
  1.   function showMarker(){
  2.         var floorNum = myIndoormap.getFloor();
  3.         if(scada.scadaConfig[floorNum]){
  4.              for(var i=0;i<scada.scadaConfig[floorNum].length;i++){
  5.                     var location=scada.scadaConfig[floorNum][i].location;
  6.                     var dataIcon=scada.scadaConfig[floorNum][i].icon;
  7.                     var dataName=scada.scadaConfig[floorNum][i].dataName;
  8.                     var deviceName=scada.scadaConfig[floorNum][i].deviceName;
  9.                     var dataId=scada.scadaConfig[floorNum][i].dataId;
  10.                     var titleContent=deviceName+"-->"+dataName;

  11.                    console.info(scada);
  12.                    console.info(location);
  13.                    console.info(dataIcon);
  14.                    console.info(titleContent);
  15.                  }               
  16.            }
  17.                 }
复制代码




回复

使用道具 举报

最佳答案
14 

0

主题

17

帖子

94

积分

新手上路

Rank: 1

积分
94
沙发
发表于 2016-6-12 17:00:04 | 只看该作者    本楼为最佳答案   
myIndoormap.on("floorchanged",floorchange);
检查下这个事件是否注册了多次。
回复 支持 反对

使用道具 举报

最佳答案
1 

14

主题

29

帖子

118

积分

新手上路

Rank: 1

积分
118
板凳
 楼主| 发表于 2016-6-12 17:53:32 | 只看该作者
百世经纶 梵天 发表于 2016-6-12 17:00
myIndoormap.on("floorchanged",floorchange);
检查下这个事件是否注册了多次。

应该是的  每次点击地图后添加marker就执行绑定事件,但是我要是把这个移出去的话就会出现别的错误了,好在现在看来这个错误不重要
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|高德开发者论坛

Copyright ©2014 高德开发者论坛.All Rights Reserved |京ICP证070711号

意见反馈 常见问题 服务条款 联系我们
快速回复 返回顶部 返回列表