The code beneath found at: /includes/search/functions/ajax.php line: 1489
This is what populates the map on any given page with the pins based on the search fields selected...
Can anybody help me figure out how to limit this search to specific radius so that every pin on the map is not loaded?
For now all the pins are loading on the map which consumes allot cpu power and could eventually crash the browser when more than 1000 pins are loading immediately.
/////////////////////////////////////////////////////////////////
//// ACTUALLY DOES THE QUERY
/////////////////////////////////////////////////////////////////
$sQ = new WP_Query($args);
//// STARTS OUR POST ARRAY - EVERY FOUND POST IS INSERTED IN HERE IN ORDER TO ADD THE PINS
$return['posts'] = array();
$return['post_ids'] = array();
/// LOOPS POSTS
if($sQ->have_posts()) { while($sQ->have_posts()) { $sQ->the_post();
///// GETS REQUIRED FIELDS TO INSERT IN THE ARRAY
$latitude = get_spot_latitude(get_the_ID());
$longitude = get_spot_longitude(get_the_ID());
$pin = get_spot_pin(get_the_ID());
$featured = 'false';
$thumb = '';
//// IF FEATURED OVERLAYS ARE SET
if(ddp('map_featured_overlay') == 'on') {
//// IF THIS IS FEATURED
if(get_post_meta(get_the_ID(), 'featured', true) == 'on') { $featured = 'true'; }
$thumb = ddTimthumb(btoa_get_featured_image(get_the_ID()), 150, 150);
}
//// ONLY ADDS TO THE ARRAY IN CASE WE HAVE A LATITUDE AND LONGITUDE
if($latitude != '' && $longitude != '') {
$return['posts'][] = array(
'title' => get_the_title(),
'id' => get_the_ID(),
'latitude' => $latitude,
'longitude' => $longitude,
'pin' => $pin,
'permalink' => get_permalink(),
'featured' => $featured,
'thumb' => $thumb,
);
$return['post_ids'][] = get_the_ID();
} else {
$return['posts'][] = array(
'title' => get_the_title(),
'error' => 'NO LATITUDE OR LONGITUDE'
);
}//// ENDS IF POST HAS LATITUDE AND LONGITUDE
} }
This is part of the search field:
<input type="hidden" id="_sf_enable_radius_search" value="false" name="_sf_enable_radius_search" />
<input type="hidden" id="_sf_radius_lat_from" value="" name="_sf_radius_lat_from" />
<input type="hidden" id="_sf_radius_lat_to" value="" name="_sf_radius_lat_to" />
<input type="hidden" id="_sf_radius_lng_from" value="" name="_sf_radius_lng_from" />
<input type="hidden" id="_sf_radius_lng_to" value="" name="_sf_radius_lng_to" />
<input type="hidden" id="_sf_radius_center_lat" value="" name="_sf_radius_center_lat" />
<input type="hidden" id="_sf_radius_center_lng" value="" name="_sf_radius_center_lng" />
<input type="hidden" id="_sf_radius_field" value="false" name="_sf_radius_field" />
<input type="hidden" id="_sf_radius_field_id" value="false" name="_sf_radius_field_id" />
<input type="hidden" id="_sf_post_ids" value="" name="_sf_post_ids" />
<input type="hidden" id="_sf_radius_distance" value="" name="_sf_radius_distance" />
<input type="hidden" name="is_taxonomy" value="true" id="_sf_search_is_taxonomy" />