내 페이지에 마커가있는 Google지도를 만들려고합니다. 각 항목에 위도, 경도 및 제목에 대한 데이터 속성이있는 정렬되지 않은 목록이 있습니다. JQuery를 사용하여 목록의 각 항목에 대해이 값을 가져 와서지도에서 마커를 생성합니다. 지도가 펼쳐지는대로 Google지도가 타일을로드하지 않는다는 점을 제외하면 모든 것이 정상적으로 작동하는 것 같습니다. 내가 maps.event.addListener를 사용했다()와지도가 순간적으로 작동하고 완전히 응답하지 않을 것입니다 전에 - 참고이벤트 리스너를 추가하면 Google지도가 고정됩니다.
var map;
// initialize google map
$(function() {
var myOptions = {
zoom: 10,
center: new google.maps.LatLng(CoordinatesLat, CoordinatesLong),
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
}
// initiate map
map = new google.maps.Map($("#map")[0], myOptions);
// when map is loaded, add events and behaviors to it
google.maps.event.addListenerOnce(map, 'tilesloaded', addEventsToMap(".event")); //commenting this line prevents GMAP problems
});
:
이 내가지도를 초기화하는 방법입니다. maps.event.addListenerOnce()로 변경하면 얼어 붙기가 중지되었지만 여전히 타일 로딩 문제가 있습니다. 이 원인이 될 수있는 것을
//add events from event list to map. add behavior to events ie. mouseover
function addEventsToMap(selector) {
$(selector).each(function (i, $e) {
$e = $($e);
var latlng;
if ($e.attr("data-geo-lat") && $e.attr("data-geo-long")) {
latlng = new google.maps.LatLng($e.attr("data-geo-lat"), $e.attr("data-geo-long"));
$e.marker = new google.maps.Marker({
position: latlng,
map: map,
title: $e.attr("data-title")
});
google.maps.event.addListener($e.marker, 'click', function() { window.location = $e.attr("data-href"); });
google.maps.event.addListener($e.marker, 'mouseover', function() { $e.addClass("event-hover"); });
google.maps.event.addListener($e.marker, 'mouseout', function() { $e.removeClass("event-hover"); });
//when mouse hovers over item in list, center map on it's marker
$e.mouseenter(function() {
map.panTo(latlng);
});
}
});
}
어떤 생각 :
는 그리고 이것은 분명히 내가 뭔가 잘못 한 콜백을입니까?
#map 요소가 바로 표시 되나요? 그 시점에 숨겨진 요소에서지도를 시작할 때 문제가있었습니다. –
예지도 요소가 바로 표시됩니다. 숨겨진 게 아니야. – wycleffsean