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

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

[应用案例] [已解决]发现一个BUG,自定义窗体结合toolbar出现问题

[复制链接]
最佳答案
1 

4

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
跳转到指定楼层
楼主
发表于 2015-8-21 14:32:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
发表帖子
API/SDK版本号: 1.3.8
产品: 2D地图
手机型号:
使用接口:
<!DOCTYPE HTML>
<html>
<head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>自定义信息窗体</title>
        <style type="text/css">
                body{
                        margin:0;
                        height:100%;
                        width:100%;
                        position:absolute;
                }
                #mapContainer{
                        position: absolute;
                        top:0;
                        left: 0;
                        right:0;
                        bottom:0;
                }
                #tip{
                        height:30px;
                        background-color:#fff;
                        padding-left:10px;
                        padding-right:10px;
                        position:absolute;
                        font-size:12px;
                        right:10px;
                        bottom:20px;
                        border-radius:3px;
                        line-height:30px;
                        border:1px solid #ccc;
                }
                div.info-top {
                        position: relative;
                        background: none repeat scroll 0 0 #F9F9F9;
                        border-bottom: 1px solid #CCC;
                        border-radius:5px 5px 0 0;
                }
                div.info-top div {
                        display: inline-block;
                        color: #333333;
                        font-size:14px;
                        font-weight:bold;
                        line-height:31px;
                        padding:0 10px;
                }
                div.info-top img {
                        position: absolute;
                        top: 10px;
                        right: 10px;
                        transition-duration: 0.25s;
                }
                div.info-top img:hover{
                        box-shadow: 0px 0px 5px #000;
                }
                div.info-middle {
                        font-size:12px;
                        padding:10px;
                        line-height:21px;
                }
                div.info-bottom {
                        height:0px;
                        width:100%;
                        clear:both;
                        text-align:center;
                }
                div.info-bottom img{
                        position: relative;
                        z-index:104;
                }
        </style>
</head>
<body>
        <div id="mapContainer"></div>       
        <div id="tip">
                点击地图上的点标记,打开所添加的自定义信息窗体
        </div>
       
        <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script>
        <script type="text/javascript">
                //初始化地图对象,加载地图
                var map = new AMap.Map("mapContainer",{
                        resizeEnable: true,
                        //二维地图显示视口
                        view: new AMap.View2D({
                                //地图中心点
                                center:new AMap.LngLat(116.481181,39.989792),
                                //地图显示的缩放级别
                                zoom:13
                        })
                });
                //地图中添加地图操作ToolBar插件
                map.plugin(["AMap.ToolBar"], function(){               
                        var toolBar = new AMap.ToolBar({autoPosition:false, direction: false, offset:new AMap.Pixel(1000,400)});
                        map.addControl(toolBar);               
                });
               
                //地图初始化时,在地图上添加一个marker标记,鼠标点击marker可弹出自定义的信息窗体
            addMarker();
                //添加marker标记
                function addMarker(){
                   map.clearMap();
                   var marker = new AMap.Marker({                                          
                           map: map,                                         
                           //位置
                           position: new AMap.LngLat(116.481181,39.989792),
                           //复杂图标   
                           icon: "http://webapi.amap.com/images/0.png"   
                   });
                   //鼠标点击marker弹出自定义的信息窗体
                   AMap.event.addListener(marker,'click',function(){
                                 infoWindow.open(map,marker.getPosition());       
                   });       
                }
               
                //实例化信息窗体
                var infoWindow = new AMap.InfoWindow({
                                isCustom:true,  //使用自定义窗体
                                content:createInfoWindow('方恒假日酒店&nbsp;&nbsp;<span style="font-size:11px;color:#F00;">价格:318</span>',"<img src='http://tpc.googlesyndication.com/simgad/5843493769827749134' style='position:relative;float:left;margin:0 5px 5px 0;'>地址:北京市朝阳区阜通东大街6号院3号楼 东北 8.3 公里<br/>电话:010 64733333<br/><a href='http://baike.baidu.com/view/6748574.htm'>详细信息</a>"),
                                offset:new AMap.Pixel(16, -45)//-113, -140
                        });
               
                //构建自定义信息窗体       
                function createInfoWindow(title,content){
                        var info = document.createElement("div");
                        info.className = "info";
               
                        //可以通过下面的方式修改自定义窗体的宽高
                        //info.style.width = "400px";
               
                        // 定义顶部标题
                        var top = document.createElement("div");
                        var titleD = document.createElement("div");
                        var closeX = document.createElement("img");
                        top.className = "info-top";
                        titleD.innerHTML = title;
                        closeX.src = "http://webapi.amap.com/images/close2.gif";
                        closeX.onclick = closeInfoWindow;
                          
                        top.appendChild(titleD);
                        top.appendChild(closeX);
                        info.appendChild(top);
                       
                    
                        // 定义中部内容
                        var middle = document.createElement("div");
                        middle.className = "info-middle";
                        middle.style.backgroundColor='white';
                        middle.innerHTML = content;
                        info.appendChild(middle);
                       
                        // 定义底部内容
                        var bottom = document.createElement("div");
                        bottom.className = "info-bottom";
                        bottom.style.position = 'relative';
                        bottom.style.top = '0px';
                        bottom.style.margin = '0 auto';
                        var sharp = document.createElement("img");
                        sharp.src = "http://webapi.amap.com/images/sharp.png";
                        bottom.appendChild(sharp);       
                        info.appendChild(bottom);
                        return info;
                }
               
                //关闭信息窗体
                function closeInfoWindow(){
                        map.clearInfoWindow();
                }
        </script>
</div>
</body>
</html>       


官方示例 自定义窗体中把toolbar的offset定位到中间或者地图右边时(红色部分), 当点击地图中,位置在toolbar左边的marker时        弹出的窗口自动回靠至地图窗口边界,而toolbar左边的不会出现这种情况
                               


QQ20150821-1@2x.png (229.28 KB, 下载次数: 17)

1

1

QQ20150821-2@2x.png (183.97 KB, 下载次数: 15)

2

2
吃喝玩乐
回复

使用道具 举报

最佳答案
1 

4

主题

7

帖子

36

积分

新手上路

Rank: 1

积分
36
沙发
 楼主| 发表于 2015-8-21 14:34:07 | 只看该作者
如果toolbar不定位到地图右方(marker右方)就不会出现这种情况

上面是官方示例 我只修改了 红色部分(toolbar的位置)
吃喝玩乐
回复 支持 反对

使用道具 举报

最佳答案
131 

2

主题

1497

帖子

3816

积分

超级版主

Rank: 8Rank: 8

积分
3816
板凳
发表于 2015-8-21 18:39:54 | 只看该作者    本楼为最佳答案   
感谢反馈,我们这边来做验证,如果是APIbug会尽快修复
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

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