API Карт Google V3: как перейти к определенному маркеру извне карты?
У меня есть карта с двумя маркерами.
В исходном виде карты отображается только один маркер, и я хочу предоставить ссылку рядом с картой, которая будет перемещать карту во 2-й маркер при нажатии.
Вот демо того, что я хочу, используя v2 API: http://arts.brighton.ac.uk/contact-university-of-brighton-faculty-of-arts (обратите внимание на ссылки ниже карты)
Вот что я до сих пор:
<script type="text/javascript">
function initialize() {
var latlng = new google.maps.LatLng(50.823817, -0.135634);
var myOptions = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControlOptions: {
style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
} ,
scaleControl: false
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
// 1st marker
var marker1 = new google.maps.Marker({ position: new google.maps.LatLng(50.823817, -0.135634), map: map, title: 'my title' });
var infowindow = new google.maps.InfoWindow({ content: 'my window content' });
google.maps.event.addListener(marker1, 'click', function() { infowindow.open(map, marker1); });
// 2nd marker
var marker2 = new google.maps.Marker({ position: new google.maps.LatLng(51.5262405, -0.074549), map: map, title: 'my 2nd title'});
var infowindow2 = new google.maps.InfoWindow({ content: 'content for my 2nd window' });
google.maps.event.addListener(marker2, 'click', function() { infowindow2.open(map, marker2); });
}
</script>
Итак, что я хотел бы добавить, это ссылка на marker2
, чтобы переместить карту примерно на 50 с лишним миль вверх,
например <a href="#marker2">Second location</a>
.
Как мне это сделать?
Ответы
Ответ 1
Используйте addDomListener
, чтобы добавить событие клика к ссылке, которая переместит карту на этот маркер (вам также нужно добавить идентификатор к тегу ссылки, чтобы вы могли ссылаться на него в коде):
Изменить: установить событие в функции инициализации:
<head>
<script type="text/javascript">
function initialize() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker2 = new google.maps.Marker({ position: new google.maps.LatLng(51.5262405, -0.074549), map: map, title: 'my 2nd title'});
google.maps.event.addDomListener(document.getElementById("linkID"), "click", function(ev) {
map.setCenter(marker2.getPosition());
}
}
</script>
</head>
<body style="margin:0px; padding:0px;" onload="initialize()">
<a href="javascript:function() { return false; }" id="location2">Second place</a>
<div id="map_canvas" style="width:100%; height:100%"></div>
</body>
Ответ 2
Я нашел эту статью о том, как получить Охват круга как маркер для Карт Google. Надеюсь, это поможет!