我想制作2个外部链接:转发并返回我的Google地图。 我已经搜索过它,但它会很好用一个例子: 这是我的代码:
<!DOCTYPE html>
<head>
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1
/jquery.min.js"></script>
<script src="loadgpx.js" type="text/javascript"></script>
<script type="text/javascript">
function infoOpen(retning)
{
r = r + retning;
google.maps.event.trigger(gmarkers[r], 'click');
}
var gmarkers = [];
var markers = [];
var r, retning;
markers = [
['0', 'Marker 1', 13.988719, 100.617909],
['1', 'Marker 2', 13.662811, 100.43758],
['2', 'Marker 3', 13.744961, 100.535073],
['3','Marker 4', 13.801981, 100.613864],
['4', 'Marker 5', 13.767507, 100.644024]];
$(document).ready(function () {
var myOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var image = new google.maps.MarkerImage('img/marker.png',
new google.maps.Size(65, 32),
new google.maps.Point(0, 0),
new google.maps.Point(18, 42));
var infowindow = new google.maps.InfoWindow();
var marker, i;
var bounds = new google.maps.LatLngBounds();
for (i = 0; i < markers.length; i++) {
var pos = new google.maps.LatLng(markers[i][2], markers[i][3]);
var content = markers[i][1];
bounds.extend(pos);
marker = new google.maps.Marker({
position: pos,
map: map
});
gmarkers.push(marker);
google.maps.event.addListener(marker, 'click', (function(marker, content) {
return function() {
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker, content));
}
map.fitBounds(bounds);
});
</script>
<style>
body {
text-align: center
}
#map {
width:640px;
height: 480px;
border:6px solid #6f5f5e;
margin:20px auto 30px auto;
}
</style>
</head>
<body>
<div>
<a href="javascript:void(0);" onclick="infoOpen(1);">back</a>
<a href="javascript:void (0);" onclick="infoOpen('+1');">forward</a>
<div id="map"> </div>
</div>
</body>
</html>
我只能找到每个标记有链接的示例,但我需要一个前进和后退链接。
答案 0 :(得分:0)
这里有一些问题。
您需要为r
设置默认值并删除链接中的引号:infoOpen('+1');
。向后应该只有infoOpen(1);
和infoOpen(-1);
:
function infoOpen(retning) {
r = r + retning;
// Don't get out of bounds
if (r >= gmarkers.length) r = 0;
if (r < 0) r = gmarkers.length - 1;
google.maps.event.trigger(gmarkers[r], 'click');
}
var gmarkers = [];
var r = 0, retning;
var markers = [
['0', 'Marker 1', 13.988719, 100.617909],
['1', 'Marker 2', 13.662811, 100.43758],
['2', 'Marker 3', 13.744961, 100.535073],
['3', 'Marker 4', 13.801981, 100.613864],
['4', 'Marker 5', 13.767507, 100.644024]
];
$(document).ready(function () {
var myOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var image = new google.maps.MarkerImage('img/marker.png',
new google.maps.Size(65, 32),
new google.maps.Point(0, 0),
new google.maps.Point(18, 42));
var infowindow = new google.maps.InfoWindow();
var marker, i;
var bounds = new google.maps.LatLngBounds();
for (i = 0; i < markers.length; i++) {
var pos = new google.maps.LatLng(markers[i][2], markers[i][3]);
var content = markers[i][1];
bounds.extend(pos);
marker = new google.maps.Marker({
position: pos,
map: map
});
gmarkers.push(marker);
google.maps.event.addListener(marker, 'click', (function (marker, content) {
return function () {
infowindow.setContent(content);
infowindow.open(map, marker);
}
})(marker, content));
}
map.fitBounds(bounds);
});
我还在infoOpen
函数中添加了2行,这些行将使gmarkers
中的索引保持在边界内。
和你的按钮:
<a href="javascript:void(0);" onclick="infoOpen(-1);">back</a>
<a href="javascript:void(0);" onclick="infoOpen(1);">forward</a>