我有一个我希望能够在地图上打印的位置数据库。理想情况下,每个要切换的位置都应该有一个带有多个引脚的地图。因此,单击位置X的按钮,它将显示在地图上。单击位置Y的按钮,它会在同一地图上显示 。再次点击X,隐藏地图。
目前我已经拥有它所以我点击X并且地图以X点为中心重新绘制。
以下是每个按钮的HTML:
<input type='button' data-lat='38.89864400' data-long='-77.05283400'
data-when='20 Aug at 2:00am' value='Location X' class='click' />
我使用的jQuery是:
jQuery(document).ready(
function initialize() {
jQuery("input.click").click(function() {
showOnMap(jQuery(this).data('lat'), jQuery(this).data('long'), jQuery(this).data('when'));
});
}
);
function showOnMap(lat, long, message) {
var myLatlng = new google.maps.LatLng(lat, long);
var mapOptions = {
zoom: 13,
center: myLatlng
}
var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
title: message
});
google.maps.event.addDomListener(window, 'load', showOnMap);
}
有没有一种简单的方法可以切换到我想要的东西?我已经搜索了一段时间,但似乎没有人在浏览器中询问这个用例,只是Android(我没做过)。
谢谢!
答案 0 :(得分:0)
如何隐藏/显示标记有一个example in the documentation。简而言之,标记是:
null
来隐藏map
为此,您需要单独访问每个标记。如果您有一定数量的位置,可以通过使用不同的名称命名它们(例如var markerLocationX
,var markerLocationY
等)。否则,标记需要存储在数组中。
假设您有一定数量的已知位置来切换标记,您的javascript代码可能如下所示:
function toggleMarker(markerName) {
if (markerName.getMap() == null) {
markerName.setMap(map);
} else {
markerName.setMap(null);
}
}