{apply_filters('glm-member-db-front-members-detail-pageTop', '', $member.id)}
{if $haveMember}
-<!-- <script src="http://maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>-->
+
{if $settings.detail_show_map}
<!-- <div id="glm-locationMap-container" class="row">
- <div id="glm-locationMap" class="glm-map small-12 columns">(map loads here)</div>
+ <div id="glm-locationMap" class="glm-map glmgrid-small-12 glmgrid-columns">(map loads here)</div>
+ </div>-->
+ {/if}
+ {if $settings.detail_show_directions}
+<!-- <div id="glm-directionsMap-container" class="glm-hidden">
+ <div id="glm-directionsMap" class="glm-map">(directions load here)</div>
+ <div id="directions-panel"></div>
+ </div>
+
+ <div class="row">
+ <div id="glm-directions" class="small-12 glmgrid-columns glm-member-entry-container">
+ <div class="row">
+ <div class="small-12 glmgrid-medium-4 glmgrid-columns">
+ Directions type:
+ <select id="directionsType" name="directionsType">
+ <option value="DRIVING">Driving</option>
+ <option value="WALKING">Walking</option>
+ <option value="BICYCLING">Bicycling</option>
+ <option value="TRANSIT">Transit Services</option> - Doesn't seem to work
+ </select>
+ </div>
+ <div class="small-12 glmgrid-medium-8 glmgrid-columns">
+ Enter address to show directions ...
+ <input id="glm-startLocation" type="text" name="startLocation" class="glm-form-text-input" placeholder=""><br>
+ </div>
+ </div>
+ <div class="row">
+ <div style="text-align: center;">
+ <input type="submit" id="glm-showDirectionsButton" class="button button-secondary glm-button glm-member-button" value="Show Directions">
+ <input type="submit" id="glm-showLocationButton" class="button button-secondary glm-button glm-hidden glm-member-button" value="Show {$terms.term_member_cap} Location">
+ </div>
+ </div>
+ </div>
</div>-->
{/if}
<a id="topAnchor"></a>
<a id="glm-member-detail-website-link" class="small-12 button glm-button" data-member-id="{$member.member_pointer}" data-member-slug="{$member.member_slug}" href="{$member.url}"{if $settings.detail_show_url_newtarget} target="_blank"{/if}>Visit Website</a>
<input type="hidden" id="glm-member-detail-click-logged" value="0">
{/if}
-
+
<div id="glm-member-detail-contact-info">
<!-- Member name, address, and basic information -->
</div>
</div>
- {if $settings.detail_show_map}
- <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
+ {if $settings.detail_show_map}
+
<div id="glm-locationMap-container">
- <div id="glm-locationMap" class="glm-map small-12 columns">(map loads here)</div>
+ {if $settings.selected_map_interface == 1}
+ <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
+ <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
+ <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
+ <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+ <div id="LeafletMapContainer" style="height: 250px; width: 100%;">(map loads here)</div>
+ {/if}
+ {if $settings.selected_map_interface == 2}
+ <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
+ <script type="text/javascript">var enableDraggable = true;</script>
+ <div id="glm-locationMap" class="glm-map glmgrid-small-12 glmgrid-columns">(map loads here)</div>
+ {/if}
</div>
<div id="glm-member-detail-map-button" class="button map-button">view map</div>
<input type="submit" class="button map-button text-center" id="MemberDrivingDirectionSubmit" name="MemberDrivingDirectionSubmit" value="Directions">
</form>
- {/if}
+ {/if}
</div>
<!-- Attributes: amenitities, credit cards, etc -->
<div id="glm-member-detail-descr-row" class="small-12 medium-8 columns">
{apply_filters('glm-member-db-front-members-detail-attributesTop', '', $member.id)}
-
{if $featuredImage}
<div class="glm-member-detail-featured-image-wrapper small-12 columns">
<img src="{$glmPluginMediaUrl}/images/large/{$featuredImage}">
<a class="glm-member-detail-link-to-top">Back to top</a>
</div>
</div>
-
{apply_filters('glm-member-db-front-members-detail-descriptionAfter', '', $member.id)}
{apply_filters('glm-member-db-front-members-detail-imageGalleryBefore', '', $member.id)}
{if $settings.detail_show_imagegallery && $haveImageGallery}
$(this).html(mapBtnTxt);
});
+ {if $settings.selected_map_interface == 1}
+
+ /*
+ * Leaflet Map
+ * API reference: https://leafletjs.com/reference-1.3.2.html
+ */
+
+ // Get member location if available, otherwise use this site's default locatgion
+ var myLocation = false;
+ {if $member.lat != 0 && $member.lon != 0}
+ var memberLat = {$member.lat};
+ var memberLon = {$member.lon};
+ {else}
+ var memberLat = {$settings.maps_default_lat}};
+ var memberLon = {$settings.maps_default_lon}};
+ {/if}
+
+ function initMap() {
+
+ var leafletMap = L.map('LeafletMapContainer').setView([memberLat, memberLon], {$settings.maps_default_zoom});
+ var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+ var leafletMinZoom = 5;
+ var leafletMaxZoom = 18;
+ var geocoder;
+
+
+ // Tile server
+ L.tileLayer(leafletTileServer, {
+ attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
+ minZoom: leafletMinZoom,
+ maxZoom: leafletMaxZoom,
+ id: 'nothot'
+ }).addTo(leafletMap);
+
+ var loadingControl = L.Control.loading({
+ separate: true,
+ delayIndicator: 500
+ });
+ leafletMap.addControl(loadingControl);
+
+ // Marker
+ var leafletMarker = L.marker([memberLat, memberLon]).addTo(leafletMap);
+
+ }
+
+ {/if}
+
+ {if $settings.selected_map_interface == 2}
+
/*
* Google Maps
* API reference: https://developers.google.com/maps/documentation/javascript/reference
*/
var myLocation = false;
- {if $member.lat != 0 && $member.lon != 0}
+ {if $member.lat != 0 && $member.lon != 0}
var memberlocation = new google.maps.LatLng({$member.lat}, {$member.lon});
- {else}
+ {else}
var memberlocation = new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon});
- {/if}
+ {/if}
function initMap() {
});
// Create a marker for this member
- {if $member.lat != 0 && $member.lon != 0}
+ {if $member.lat != 0 && $member.lon != 0}
var marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng({$member.lat}, {$member.lon}),
animation: google.maps.Animation.DROP,
title: '{$member.member|escape}'
});
- {/if}
- // Don't Try HTML5 to get user geolocation
- //if(navigator.geolocation) {
- //navigator.geolocation.getCurrentPosition(function(position) {
- //myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
- //var pinIcon = new google.maps.MarkerImage(
- //'https://maps.google.com/mapfiles/kml/shapes/man.png',
- //null, /* size is determined at runtime */
- //null, /* origin is 0,0 */
- //null, /* anchor is bottom center of the scaled image */
- //new google.maps.Size(30, 30)
- //);
- //var myMarker = new google.maps.Marker({
- //map: map,
- //position: myLocation,
- //draggable: false,
- //animation: google.maps.Animation.DROP,
- //title: 'My Location',
- //icon: pinIcon,
- //zIndex: 100
- //});
- //$('#glm-startLocation').attr('placeholder', 'Leave blank for your current location or enter address here.');
- //});
- //}
+ {/if}
}
// Load map
google.maps.event.addDomListener(window, 'load', initMap);
-
+ {/if}
+
{/if} {*detail_show_map*}
-
-// Direction code is below, but since we're sending them offsite to google maps this is no longer necessary.
-//
-// {if $settings.detail_show_directions}
-//
-// var directionsDisplay;
-// var directionsService = new google.maps.DirectionsService();
-//
-// // Display map with route from specified location to member location
-// function calcRoute() {
-//
-// // If an address was input, use that, otherwise use detected location if available
-// var start = $('#glm-startLocation').val();
-// if (start == '' ) {
-// if (myLocation != false) {
-// start = myLocation;
-// }
-// }
-//
-// // If no start location available, tell user
-// if (start == '') {
-// alert('No starting location. Please enter address.');
-// return;
-// }
-//
-// // Switch to directions map being visible
-// $('#glm-directionsMap-container').removeClass('glm-hidden');
-// $('#glm-locationMap-container').addClass('glm-hidden');
-// $('#glm-showLocationButton').removeClass('glm-hidden');
-//
-// // Initialize the directions map with a default center location
-// directionsDisplay = new google.maps.DirectionsRenderer();
-// var mapOptions = {
-// zoom:7,
-// center: memberlocation
-// }
-// directionsMap = new google.maps.Map(document.getElementById("glm-directionsMap"), mapOptions);
-// directionsDisplay.setMap(directionsMap);
-//
-// // Get directions type selected
-// var directionsType = $('#directionsType').find(':selected').val();
-//
-// // Specify origin and destination then get route
-// var request = {
-// origin: start,
-// destination: memberlocation,
-// travelMode: google.maps.TravelMode[directionsType]
-// };
-// directionsService.route(request, function(result, status) {
-// if (status == google.maps.DirectionsStatus.OK) {
-// directionsDisplay.setDirections(result);
-// $('#directions-panel').html('');
-// directionsDisplay.setPanel(document.getElementById('directions-panel'));
-// }
-// });
-//
-// // Check for first map idle (completely loaded) - Check max initial zoom
-// var mapLoadedListener = google.maps.event.addListener(directionsMap, 'idle', function() {
-// if (directionsMap.getZoom() > 16) {
-// this.setZoom(16);
-// }
-// google.maps.event.removeListener(mapLoadedListener);
-// });
-//
-// }
-//
-// // Trigger route map either by button or input of address
-// $('#glm-showDirectionsButton' ).click( function() {
-// calcRoute();
-// });
-// $('#glm-startLocation' ).change( function() {
-// calcRoute();
-// });
-//
-// // Switch back to member location map
-// $('#glm-showLocationButton').click( function() {
-// $('#glm-directionsMap-container').addClass('glm-hidden');
-// $('#glm-locationMap-container').removeClass('glm-hidden');
-// $('#glm-showLocationButton').addClass('glm-hidden');
-// });
-//
-// {/if} {*detail_show_directions*}
+
+ $(window).load(function(){
+ initMap();
+ });
}); // jquery
{if $settings.list_map_show_opened}map-opened{else}map-closed{/if}
{if $settings.list_show_search_filters_opened}filters-opened{else}filters-closed{/if}
">
+
+ {if $settings.selected_map_interface == 1}
+ <!-- Leaflet Map -->
+ <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.3/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""/>
+ <script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js" integrity="sha512-tAGcCfR4Sc5ZP5ZoVz0quoZDYX5aCtEm/eu1KhSLj2c9eFrylXZknQYmxUssFaVJKvvc0dJQixhGjG2yXWiV9Q==" crossorigin=""></script>
+ <link rel="stylesheet" href="{$jsUrl}/LeafletMarkerCluster/dist/MarkerCluster.Default.css" />
+ <script src="{$jsUrl}/LeafletMarkerCluster/dist/leaflet.markercluster-src.js"></script>
+ <link rel="stylesheet" href="{$jsUrl}/Leaflet.loading/src/Control.Loading.css" />
+ <script src="{$jsUrl}/Leaflet.loading/src/Control.Loading.js"></script>
+ {/if}
+
+ {if $settings.selected_map_interface == 2}
+ <!-- Google Map -->
+ <script src="//maps.googleapis.com/maps/api/js?&key={$settings.google_maps_api_key}"></script>
+ {/if}
+
+
+
{include file='front/members/header.html'}
{apply_filters('glm-member-db-front-members-list-pageTop', '')}
<div class="glm-member-list-inner-wrapper">
</div> <!-- glm-member-list-wrapper -->
{/if} {*list_show_search*}
{if $settings.list_show_map}
- <script src="//maps.googleapis.com/maps/api/js?sensor=true&key={$settings.google_maps_api_key}"></script>
+
{apply_filters('glm-member-db-front-members-list-mapTop', '')}
<div id="glm-locationMap-container">
- <div id="glm-locationMap" class="glm-map">(map loads here)</div>
+
+ {if $settings.selected_map_interface == 1}
+ <!-- Leaflet Map -->
+ <div id="LeafletMapContainer" style="height: 400px; width: 100%; border: 1px black solid; z-index: +0;"></div>
+ {/if}
+
+ {if $settings.selected_map_interface == 2}
+ <!-- Google Map -->
+ <div id="glm-locationMap" class="glm-map">(map loads here)</div>
+ {/if}
+
</div>
{apply_filters('glm-member-db-front-members-list-mapBottom', '')}
{/if}
});
{/if} // settings.list_show_search
- {if $settings.list_show_map}
- /*
- * Google Maps
- * API reference: https://developers.google.com/maps/documentation/javascript/reference
- */
-
-
- // Create a Google Map object
- var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
- center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
- zoom: {$settings.maps_default_zoom},
- disableDefaultUI: false,
- mapTypeId: google.maps.MapTypeId.MAP,
- });
-
- $("#glm-member-list-map-toggle").click( function() {
- $(".glm-member-db-{$view}-view").toggleClass("map-opened");
- $(".glm-member-db-{$view}-view").toggleClass("map-closed");
- var center = map.getCenter();
- google.maps.event.trigger(map, "resize");
- map.setCenter(center);
-
- var currentScroll = $(window).scrollTop(); // get current position
- var mapTop = $("#glm-locationMap-container").offset().top-10;
- {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
- if (currentScroll >= mapTop) {
- $('body,html').animate({
- scrollTop: $("#glm-locationMap-container").offset().top-100
- }, 50);
- } else {
- $('body,html').animate({
- scrollTop: $("#glm-locationMap-container").offset().top-100
- }, 400);
- }
- });
- var geocoder = new google.maps.Geocoder();
- var bounds = new google.maps.LatLngBounds();
- var infowindow = new google.maps.InfoWindow();
-
- // Don't Try HTML5 to get user geolocation
- //if(navigator.geolocation) {
- //navigator.geolocation.getCurrentPosition(function(position) {
- //var myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
- //var pinIcon = new google.maps.MarkerImage(
- //'https://maps.google.com/mapfiles/kml/shapes/man.png',
- //null, /* size is determined at runtime */
- //null, /* origin is 0,0 */
- //null, /* anchor is bottom center of the scaled image */
- //new google.maps.Size(30, 30)
- //);
- //var myMarker = new google.maps.Marker({
- //map: map,
- //position: myLocation,
- //draggable: false,
- //animation: google.maps.Animation.DROP,
- //title: 'My Location',
- //icon: pinIcon,
- //zIndex: 100
- //});
- //});
- //}
-
-
- {if $mapItems}
- var markers = [];
- {foreach $mapItems as $m}
- {if $m.lat != 0 && $m.lon != 0}
-
- // Create a marker for this member
- var marker = new google.maps.Marker({
- map: map,
- position: new google.maps.LatLng({$m.lat}, {$m.lon}),
- draggable: false,
- animation: google.maps.Animation.DROP,
- title: '{$m.member_name|escape:quotes}',
- descr: $('#map_info_' + {$m.id}).html(),
- memberID: {$m.member}
- });
-
- // Add a click listener for this marker
- marker.addListener('click', function() {
- infowindow.setOptions({
- content: this.descr
- });
- infowindow.open(map,this);
- });
-
- markers.push(marker);
-
- // Extend the map bounds to include this marker
- bounds.extend(marker.position);
-
- {/if}
- {/foreach}
-
- {if $settings.use_cluster_markers}
- var markerCluster = new MarkerClusterer(map, markers,
- {
- imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
- gridSize: 30,
- maxZoom: 14,
- minimunClusterSize: 3
- });
- {/if}
-
- // Fit map to bounds of all markers
- map.fitBounds(bounds);
-
- // Check for first map idle (completely loaded) - Check max zoom
- var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
- if (map.getZoom() > 14) {
- this.setZoom(14);
- }
- google.maps.event.removeListener(mapLoadedListener);
- });
-
- {else}
-
-
- {/if} // havemembers
-
+ {if $settings.list_show_map}
- {/if} // settings.list_show_map
+ /*
+ * Map operations
+ */
+
+ var startLat = $('#glmLat').val();
+ var startLon = $('#glmLng').val();
+ var defZoom = Number({$settings.maps_default_zoom});
+
+ {if $settings.selected_map_interface == 1}
+
+ /*
+ * Leaflet Map
+ * API reference: https://leafletjs.com/reference-1.3.2.html
+ */
+
+ function initMap() {
+
+ var leafletMap = L.map('LeafletMapContainer').setView([{$settings.maps_default_lat}, {$settings.maps_default_lon}], defZoom);
+ var leafletTileServer = '{$settings.leaflet_tile_server}/{$settings.leaflet_tile_server_key}/' + {literal}'{z}/{x}/{y}.png'{/literal};
+ var leafletMinZoom = 3;
+ var leafletMaxZoom = 19;
+ var clusterRadiusMax = 40;
+ var geocoder;
+
+ // Loading features
+ var loadingControl = L.Control.loading({
+ separate: true,
+ delayIndicator: 500
+ });
+ leafletMap.addControl(loadingControl);
+
+ // Init Map
+ L.tileLayer(leafletTileServer, {
+ attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, <a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="https://www.gaslightmedia.com/">Gaslight Media</a>',
+ minZoom: leafletMinZoom,
+ maxZoom: leafletMaxZoom,
+ id: 'nothot'
+ }).addTo(leafletMap);
+
+
+ {if $mapItems}
+
+ {if $settings.use_cluster_markers}
+ var markerGroup = L.markerClusterGroup({
+ maxClusterRadius: clusterRadiusMax
+ });
+ {else}
+ var markerGroup = L.featureGroup({
+ maxClusterRadius: clusterRadiusMax
+ });
+ {/if}
+
+
+ {foreach $mapItems as $m}
+ {if $m.lat != 0 && $m.lon != 0}
+
+ // Create marker for this member and and to Feature Group
+ var leafletMarker = L.marker([{$m.lat}, {$m.lon}], { title: '{$m.member_name|escape:quotes}' })
+ .bindPopup($('#map_info_' + {$m.id}).html())
+ .addTo(markerGroup);
+
+ {/if}
+ {/foreach}
+
+ leafletMap.addLayer(markerGroup);
+
+ // Get outer bounds of all markers in the Feature Group
+ leafletMap.fitBounds(markerGroup.getBounds());
+
+ {/if} // havemembers
+
+ // When a marker is clicked, display the pop-up near the center of the map.
+
+ leafletMap.on('popupopen', function(e) {
+ var px = leafletMap.project(e.popup._latlng);
+ px.y -= e.popup._container.clientHeight/2;
+ leafletMap.panTo(leafletMap.unproject(px),{ animate: true });
+ });
+
+
+ }
+
+ {/if}
+
+ {if $settings.selected_map_interface == 2}
+
+ /*
+ * Google Maps
+ * API reference: https://developers.google.com/maps/documentation/javascript/reference
+ */
+
+ function initMap() {
+
+ // Create a Google Map object
+ var map = new google.maps.Map(document.getElementById('glm-locationMap'), {
+ center: new google.maps.LatLng({$settings.maps_default_lat}, {$settings.maps_default_lon}),
+ zoom: {$settings.maps_default_zoom},
+ disableDefaultUI: false,
+ mapTypeId: google.maps.MapTypeId.MAP,
+ });
+
+ var center = map.getCenter();
+ google.maps.event.trigger(map, "resize");
+ map.setCenter(center);
+
+ var currentScroll = $(window).scrollTop(); // get current position
+ var mapTop = $("#glm-locationMap-container").offset().top-10;
+ {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
+ if (currentScroll >= mapTop) {
+ $('body,html').animate({
+ scrollTop: $("#glm-locationMap-container").offset().top-100
+ }, 50);
+ } else {
+ $('body,html').animate({
+ scrollTop: $("#glm-locationMap-container").offset().top-100
+ }, 400);
+ }
+
+ var geocoder = new google.maps.Geocoder();
+ var bounds = new google.maps.LatLngBounds();
+ var infowindow = new google.maps.InfoWindow();
+
+ // Don't Try HTML5 to get user geolocation
+ //if(navigator.geolocation) {
+ //navigator.geolocation.getCurrentPosition(function(position) {
+ //var myLocation = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
+ //var pinIcon = new google.maps.MarkerImage(
+ //'https://maps.google.com/mapfiles/kml/shapes/man.png',
+ //null, /* size is determined at runtime */
+ //null, /* origin is 0,0 */
+ //null, /* anchor is bottom center of the scaled image */
+ //new google.maps.Size(30, 30)
+ //);
+ //var myMarker = new google.maps.Marker({
+ //map: map,
+ //position: myLocation,
+ //draggable: false,
+ //animation: google.maps.Animation.DROP,
+ //title: 'My Location',
+ //icon: pinIcon,
+ //zIndex: 100
+ //});
+ //});
+ //}
+
+
+ {if $mapItems}
+ var markers = [];
+ {foreach $mapItems as $m}
+ {if $m.lat != 0 && $m.lon != 0}
+
+ // Create a marker for this member
+ var marker = new google.maps.Marker({
+ map: map,
+ position: new google.maps.LatLng({$m.lat}, {$m.lon}),
+ draggable: false,
+ animation: google.maps.Animation.DROP,
+ title: '{$m.member_name|escape:quotes}',
+ descr: $('#map_info_' + {$m.id}).html(),
+ memberID: {$m.member}
+ });
+
+ // Add a click listener for this marker
+ marker.addListener('click', function() {
+ infowindow.setOptions({
+ content: this.descr
+ });
+ infowindow.open(map,this);
+ });
+
+ markers.push(marker);
+
+ // Extend the map bounds to include this marker
+ bounds.extend(marker.position);
+
+ {/if}
+ {/foreach}
+
+ {if $settings.use_cluster_markers}
+ var markerCluster = new MarkerClusterer(map, markers,
+ {
+ imagePath: '{$baseUrl}/js/googleMapsMarkerClusterer/images/m',
+ gridSize: 30,
+ maxZoom: 14,
+ minimunClusterSize: 3
+ });
+ {/if}
+
+ // Fit map to bounds of all markers
+ map.fitBounds(bounds);
+
+ // Check for first map idle (completely loaded) - Check max zoom
+ var mapLoadedListener = google.maps.event.addListener(map, 'idle', function() {
+ if (map.getZoom() > 14) {
+ this.setZoom(14);
+ }
+ google.maps.event.removeListener(mapLoadedListener);
+ });
+ } // initMap
+
+ {else}
+
+
+ {/if} // havemembers
+
+ {/if}
+
+ {/if} // settings.list_show_map
+
+ // Handle Map View/Hide
+ var mapInitialized = false;
+ $("#glm-member-list-map-toggle").click( function() {
+ $(".glm-member-db-{$view}-view").toggleClass("map-opened");
+ $(".glm-member-db-{$view}-view").toggleClass("map-closed");
+ if (!mapInitialized) {
+ initMap();
+ mapInitialized = true;
+ }
+ var currentScroll = $(window).scrollTop(); // get current position
+ var mapTop = $("#glm-locationMap-container").offset().top-10;
+ {if $settings.list_show_search}fixmeTop = $('#glm-member-list-filters-button').offset().top;{/if}
+ if (currentScroll >= mapTop) {
+ $('body,html').animate({
+ scrollTop: $("#glm-locationMap-container").offset().top-100
+ }, 50);
+ } else {
+ $('body,html').animate({
+ scrollTop: $("#glm-locationMap-container").offset().top-100
+ }, 400);
+ }
+ });
+ {if $settings.list_map_show_opened}
+ // Start with map opened
+ initMap();
+ mapInitialized = true;
+ {/if}
+
// Processes click-through counts for website links
$('.glm-member-list-website-link').on('click', function() {