diff --git a/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml b/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml index b72c1eaf0f5f88ee440ebdcb671be7b1a070978a..5dd739a8482d50bfabf3150f9e8e6953ee888ab8 100644 --- a/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml +++ b/themes/bootstrap3/templates/Recommend/ResultGoogleMapAjax.phtml @@ -95,100 +95,104 @@ var latlng; var myOptions; var map; var infowindow = new google.maps.InfoWindow({maxWidth: 480, minWidth: 480}); - function initialize() { - var url = VuFind.path+'/AJAX/json?method=getMapData&<?=$searchParams ?>'; - //alert('go: ' + url); - $.getJSON(url, function(data){ - //alert(data); - markersData = data['data']; - if (markersData.length <= 0){ - return; - } - latlng = new google.maps.LatLng(0, 0); - myOptions = { - zoom: 1, - center: latlng, - mapTypeControl: true, - mapTypeControlOptions: { - style: google.maps.MapTypeControlStyle.DROPDOWN_MENU - }, - mapTypeId: google.maps.MapTypeId.ROADMAP - }; - map = new google.maps.Map(document.getElementById("map_canvas"), - myOptions); - - var useGmm = document.getElementById('usegmm'); - google.maps.event.addDomListener(useGmm, 'click', refreshMap); - - var checkbx = document.getElementById("useCluster"); - var wrap = document.getElementById("mapWrap"); - wrap.style.display = "block"; - checkbx.style.display = "block"; - - showMarkers(); - }); - } - function showMarkers(){ - markers = []; - deleteOverlays(); - if (mc) { - mc.clearMarkers(); +function initialize() { + var url = VuFind.path+'/AJAX/json?method=getMapData&<?=$searchParams ?>'; + //alert('go: ' + url); + $.getJSON(url, function(data){ + //alert(data); + markersData = data['data']; + if (markersData.length <= 0){ + return; } + latlng = new google.maps.LatLng(0, 0); + myOptions = { + zoom: 1, + center: latlng, + mapTypeControl: true, + mapTypeControlOptions: { + style: google.maps.MapTypeControlStyle.DROPDOWN_MENU + }, + mapTypeId: google.maps.MapTypeId.ROADMAP + }; + map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); + + var useGmm = document.getElementById('usegmm'); + google.maps.event.addDomListener(useGmm, 'click', refreshMap); + + var checkbx = document.getElementById("useCluster"); + var wrap = document.getElementById("mapWrap"); + wrap.style.display = "block"; + checkbx.style.display = "block"; - for (var i = 0; i<markersData.length; i++){ - var disTitle = markersData[i].title; - var iconSize = "0.5"; - if (disTitle>99){ - iconSize = "0.75"; - } - var markerImg = "https://chart.googleapis.com/chart?chst=d_map_spin&chld="+iconSize+"|0|F44847|10|_|" + disTitle; - var labelXoffset = 1 + disTitle.length * 4; - var latLng = new google.maps.LatLng(markersData[i].lat , markersData[i].lon) - var marker = new google.maps.Marker({//MarkerWithLabel - loc_facet: markersData[i].location_facet, - position: latLng, - map: map, - title: disTitle, - icon: markerImg - }); - google.maps.event.addListener(marker, 'click', function() { - infowindow.close(); - //infowindow.setContent(this.html); - //infowindow.open(map, this); - load_content(this); - }); - markers.push(marker); - } - if (document.getElementById("usegmm").checked) { - mc = new MarkerClusterer(map, markers); - } else { - for (var i = 0; i < markers.length; i++) { - markers[i].setMap(map); - } - } + showMarkers(); + }); +} + +function showMarkers(){ + markers = []; + + deleteOverlays(); + if (mc) { + mc.clearMarkers(); } - function load_content(marker){ - var ajaxUrl = VuFind.path+'/AJAX/ResultGoogleMapInfo?limit=5&filter[]=long_lat%3A"' + marker.loc_facet+'"&<?=$searchParams ?>'; - $.ajax(ajaxUrl, { dataType: 'html' }).done(function (html) { - infowindow.setContent(html); - infowindow.open(map, marker); + + for (var i = 0; i<markersData.length; i++){ + var disTitle = markersData[i].title; + var iconSize = "0.5"; + if (disTitle>99){ + iconSize = "0.75"; + } + var markerImg = "https://chart.googleapis.com/chart?chst=d_map_spin&chld="+iconSize+"|0|F44847|10|_|" + disTitle; + var labelXoffset = 1 + disTitle.length * 4; + var latLng = new google.maps.LatLng(markersData[i].lat , markersData[i].lon) + var marker = new google.maps.Marker({//MarkerWithLabel + loc_facet: markersData[i].location_facet, + position: latLng, + map: map, + title: disTitle, + icon: markerImg + }); + google.maps.event.addListener(marker, 'click', function() { + infowindow.close(); + //infowindow.setContent(this.html); + //infowindow.open(map, this); + load_content(this); }); + markers.push(marker); } - function deleteOverlays() { - if (markers) { - for (i in markers) { - markers[i].setMap(null); - } - markers.length = 0; - } + if (document.getElementById("usegmm").checked) { + mc = new MarkerClusterer(map, markers); + } else { + for (var i = 0; i < markers.length; i++) { + markers[i].setMap(map); + } } - function refreshMap() { - deleteOverlays(); - showMarkers(); +} + +function load_content(marker){ + var ajaxUrl = VuFind.path+'/AJAX/ResultGoogleMapInfo?limit=5&filter[]=long_lat%3A"' + marker.loc_facet+'"&<?=$searchParams ?>'; + $.ajax(ajaxUrl, { dataType: 'html' }).done(function (html) { + infowindow.setContent(html); + infowindow.open(map, marker); + }); +} + +function deleteOverlays() { + if (markers) { + for (i in markers) { + markers[i].setMap(null); + } + markers.length = 0; } +} + +function refreshMap() { + deleteOverlays(); + showMarkers(); +} - google.maps.event.addDomListener(window, 'load', initialize); +google.maps.event.addDomListener(window, 'load', initialize); </script> <div id="mapWrap" onload="initialize()" style="height:479px;display:none;margin-bottom:1em" class="clearfix"> <div id="map_canvas" style="width: 100%; height: 100%"></div>