1jQuery( document ).ready(function($) { 2 3 jQuery.fn.filterListingByViewport = function ( options ) { 4 5 let settings = $.extend( { mapWidth: "50" }, options ); 6 7 let map_obj = jQuery(settings.wpgmp_map_selector).data("wpgmp_maps"); 8 9 var input = $(map_obj.container).find('[data-input="map-search-control"]')[0]; 10 11 var searchBox = new google.maps.places.Autocomplete(input); 12 13 if (wpgmp_local.wpgmp_country_specific && wpgmp_local.wpgmp_country_specific == true) { 14 searchBox.setComponentRestrictions({ 15 'country': wpgmp_local.wpgmp_countries 16 }); 17 } 18 19 var marker = new google.maps.Marker({ 20 icon: map_obj.settings.marker_default_icon, 21 draggable: false, 22 map: map_obj.map, 23 }); 24 map_obj.marker_bind(marker); 25 26 $(map_obj.container).on('click', '.categories_filter_reset_btn', function() { 27 map_obj.map_data.places = map_obj.places; 28 map_obj.update_filters(); 29 30 }); 31 32 let enable_viewport_filter = function(){ 33 34 var all_places = map_obj.places; 35 google.maps.event.addListener(map_obj.map, 'zoom_changed', function() { 36 filterListViewport(); 37 }); 38 39 google.maps.event.addListener(map_obj.map, 'dragend', function() { 40 filterListViewport(); 41 }); 42 43 google.maps.event.addListener(searchBox, 'place_changed', function() { 44 var place = searchBox.getPlace(); 45 if(map_obj.settings.zoom_level_after_search != undefined) { 46 map_obj.map.setZoom(parseInt(map_obj.settings.zoom_level_after_search)); 47 } else { 48 map_obj.map.setZoom(parseInt(10)); 49 } 50 map_obj.map.setCenter(place.geometry.location); 51 marker.setPosition(place.geometry.location); 52 marker.setVisible(true); 53 filterListViewport(); 54 55 56 }); 57 58 function filterListViewport(){ 59 60 var bounds = map_obj.map.getBounds(); 61 var bound_markers = []; 62 for(var i = 0; i< all_places.length; i++){ // looping through my Markers Collection 63 if(bounds.contains(all_places[i].marker.getPosition())){ 64 bound_markers.push(all_places[i]); 65 } 66 } 67 map_obj.show_places = bound_markers; 68 map_obj.map_data.places = map_obj.show_places; 69 70 if (map_obj.map_data.listing) { 71 72 if ($(map_obj.container).find('[data-filter="map-sorting"]').val()) { 73 var order_data = $(map_obj.container).find('[data-filter="map-sorting"]').val().split("__"); 74 var data_type = ''; 75 if (order_data[0] !== '' && order_data[1] !== '') { 76 77 if (typeof order_data[2] != 'undefined') { 78 data_type = order_data[2]; 79 } 80 map_obj.sorting(order_data[0], order_data[1], data_type); 81 } 82 } else { 83 if (map_obj.map_data.listing.default_sorting) { 84 var data_type = ''; 85 if (map_obj.map_data.listing.default_sorting.orderby == 'listorder') { 86 data_type = 'num'; 87 } 88 map_obj.sorting(map_obj.map_data.listing.default_sorting.orderby, map_obj.map_data.listing.default_sorting.inorder, data_type); 89 } 90 } 91 } 92 map_obj.update_filters(); 93 map_obj.update_places_listing(); 94 95 } 96 97 98 } 99 100 if (map_obj !== 'undefined' && map_obj.map_data.listing && map_obj.map_data.viewportfilter) { 101 enable_viewport_filter(); 102 } 103 104 return this; 105 }; 106 107 jQuery("div.wpgmp_map_container").each(function (index, element) { 108 109 let wpgmp_map_selector = "#"+$(this).attr('rel'); 110 let wpgmp_layout_args = {'wpgmp_map_selector' : wpgmp_map_selector}; 111 jQuery(wpgmp_map_selector).filterListingByViewport(wpgmp_layout_args); 112 113 }); 114 115});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.