我正在开发一个在地图上显示一些照片的wordpress 插件。详细信息显示在信息框/信息窗口中。
这适用于 bing 地图 6.3,信息框超出了地图的边界。
示例:http ://www.denktfrei.de/?p=805
现在我不想添加对 Google 地图 3 和 Bing 地图 7 的支持。这两个 API 都不支持此类信息框,信息框/信息窗口不能大于地图。无论如何,我怎样才能创建这样的信息框?
我正在开发一个在地图上显示一些照片的wordpress 插件。详细信息显示在信息框/信息窗口中。
这适用于 bing 地图 6.3,信息框超出了地图的边界。
示例:http ://www.denktfrei.de/?p=805
现在我不想添加对 Google 地图 3 和 Bing 地图 7 的支持。这两个 API 都不支持此类信息框,信息框/信息窗口不能大于地图。无论如何,我怎样才能创建这样的信息框?
如评论中所述,我建议使用从地图控件本身添加到 DOM 的自定义信息框。这样您就不会被限制在地图控件的 DIV 容器中。
有关示例,请参见下面的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript" charset="UTF-8" src="http://ecn.dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=7.0">
</script>
<script type="text/javascript">
var map = null;
function getMap() {
map = new Microsoft.Maps.Map(
document.getElementById('myMap'),
{
credentials: 'YOURKEY',
showCopyright: false
});
// Create the pushpin
var pushpin = new Microsoft.Maps.Pushpin(new Microsoft.Maps.Location(47.5, 2.75));
// Add the pushpin to the map
map.entities.push(pushpin);
// Bind the click event on the pushpin
Microsoft.Maps.Events.addHandler(pushpin, 'click', function(e) {
if (e.targetType == 'pushpin') {
var box = document.getElementById('infobox');
box.style.top = e.pageY + 'px';
box.style.left = e.pageX + 'px';
box.style.visibility = 'visible';
}
});
}
</script>
</head>
<body onload="getMap();">
<div id="container" style="position:relative;"></div>
<div id="myMap" style="position: absolute;z-index:1; width: 800px; height: 600px;">
</div>
<div id="infobox" style="float:left;z-index:2; visibility:hidden;position:absolute; width:500px; height: 300px; background-color:White; border: 1px solid #333;">Sample content for an infobox which should be larger than the map control.</div>
</body>
</html>