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

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

[已解决]室内地图功能实现

[复制链接]
最佳答案
0 

1

主题

2

帖子

17

积分

新手上路

Rank: 1

积分
17
跳转到指定楼层
楼主
发表于 2016-6-21 16:20:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

我的代码:
<!DOCTYPE html>
<html lang="en">
<head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <title>室内地图</title>
        <link type="text/css" href="[img]file:///C:\Users\ADMINI~1\AppData\Local\Temp\[5UQ[BL(6~BS2JV6W}N6[%S.png[/img]http://indoorweb.amap.com/indoormap-1.0.css" rel="stylesheet" />
        <script  src="[img]file:///C:\Users\ADMINI~1\AppData\Local\Temp\[5UQ[BL(6~BS2JV6W}N6[%S.png[/img]http://indoorweb.amap.com/indoormap-1.0.js"></script>
        <style type="text/css">
      h3{
        font-size: 1.17em;
        line-height: 1.4;
        font-weight: bold;
        margin: 2px;
      }
      hr{
        margin: 1px;
      }
      html,body{
        width: 100%;
        height: 100%;
        margin: 0px;
      }
      .map{
        height: 100%;
        width: 100%;
        float: left;
      }
     #mapDiv .amap-indoormap-floorbar-control{bottom:10%}
    </style>
</head>
<body>
        <div id="mapDiv" class="map"></div>
</body>
<script>
        //示例 初始化地图
        var map = new Indoor.Map('mapDiv',{
                key:'dfd6908aa7c513714d462f049ab58040',
                buildingId:'B000A7AFF1'
        });
        //由于地图数据使用了异步加载,为避免出错请把所有的逻辑放在mapready事件内
        map.once('mapready',function(){
                console.log(map.getFloor());
        })
</script>
</html>

上面代码的效果是有搜索框,然后我选择卫生间,就会标识卫生间。
我想要的效果是进入室内地图页面,显示搜索框,并且展示默认楼层的卫生间,如果默认楼层没有卫生间,会有提示,当我切换到别的楼层时,又显示相应楼层的卫生间,当然如果没有卫生间也会提示。而当用户搜索商铺或者设施时,只展示用户搜索的设施项目,不展示卫生间,当切换到别的楼层时,又显示相应楼层用户搜索的设施项目。请问如何实现呢?


回复

使用道具 举报

最佳答案
14 

0

主题

17

帖子

94

积分

新手上路

Rank: 1

积分
94
沙发
发表于 2016-6-22 10:19:54 | 只看该作者    本楼为最佳答案   
1、取消搜索,初始化参数 searchBarControl:false
2、
  //获取所有洗手间的数据 接口:
  var  wcData= map.getFacilityData('AM1004');

  //高亮
  function highlightWC(){
    //这里根据 wcData数据判断做提示

    //取消所有高亮
    map.cancelAllHightLight();
    var curFloor = map.getFloor();
    for(var i=0;i<wcData.data.length;i++){
      if(wcData.data[i].floor == curFloor){
         //高亮
         map.hightLightFacility(wcData.data[i].ft_sourceid)
      }
    }
  }
  //切换楼层事件
  map.on('floorchanged',highlightWC);
  highlightWC();

注:不能保留搜索的控件,否则2个逻辑之间没办法反复切换
回复 支持 反对

使用道具 举报

最佳答案
0 

1

主题

2

帖子

17

积分

新手上路

Rank: 1

积分
17
板凳
 楼主| 发表于 2016-6-22 15:00:41 | 只看该作者
百世经纶 梵天 发表于 2016-6-22 10:19
1、取消搜索,初始化参数 searchBarControl:false
2、
  //获取所有洗手间的数据 接口:

我试着让搜索框也存在,在搜索时除了搜索的设施项目高亮卫生间也一直高亮,切换貌似没问题

没有办法把两个逻辑隔开吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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