처음으로 Google지도를 가지고 놀고 있습니다. CSS 트릭을 통해 멋진 자습서를 보았습니다. http://css-tricks.com/google-maps-slider/ jQuery를 pure JS보다 더 좋아합니다. 이 자습서는지도의 마커를 표시하는 목록에서 장소를 클릭하는 좋은 방법입니다.Google Maps API v3 : DOM 요소를 클릭하면 정보 창이 닫힙니다.
나는 그런 식으로 좋아하지만 마커에 infowindows를 추가해야합니다. 내가 한 일은 아니지만 목록에있는 장소를 클릭하면지도가 사라지고 정보 창이 열립니다! 나는 "#locations li"을 클릭하는 이벤트에 infowindow.close()를 붙여야하기 때문이라고 생각합니다. 각 마커에 대한 새로운 InfoWindow
를 만드는 것처럼
$(function() {
var chicago = new google.maps.LatLng(41.924832, -87.697456),
pointToMoveTo,
first = true,
curMarker = new google.maps.Marker({}),
$el;
var myOptions = {
zoom: 10,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map($("#map_canvas")[0], myOptions);
$("#locations li").click(function() {
$el = $(this);
if (!$el.hasClass("hover")) {
$("#locations li").removeClass("hover");
$el.addClass("hover");
if (!first) {
// Clear current marker
curMarker.setMap();
// Set zoom back to Chicago level
// map.setZoom(10);
}
// Move (pan) map to new location
function move(){
pointToMoveTo = new google.maps.LatLng($el.attr("data-geo-lat"), $el.attr("data-geo-long"));
map.panTo(pointToMoveTo);
}
move();
// Add new marker
curMarker = new google.maps.Marker({
position: pointToMoveTo,
map: map
});
// Infowindow: contenido
var contentString = '<p>'+$el.find("h3").html()+'</p>';
contentString += 'hola' ;
var infowindow = new google.maps.InfoWindow(
{
size: new google.maps.Size(150,50),
content: contentString
});
// On click, zoom map
google.maps.event.addListener(curMarker, 'click', function() {
//map.setZoom(14);
infowindow.open(map,curMarker);
});
위대한 팁! 완벽하게 작동합니다! Daniel에게 도움을 주셔서 감사합니다. – Landitus
정보 주셔서 감사합니다! – Martin
저는 Google Maps API를 일년에 한 번씩 사용하고 있습니다. 매년 한 개의 'InfoWindow'만 표시하는 방법을 잊어 버립니다. 감사! :) –