|
发表帖子
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('方恒假日酒店 <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左边的不会出现这种情况
|
|