$longitude = isset($vars['sf_radiussearch_lng']) ? $vars['sf_radiussearch_lng'] : 0; } if ($latitude and $longitude and $radius and $unit_id) { $unit = wpl_units::get_unit($unit_id); if ($unit) { $tosi = 6371 * 1000 / $unit['tosi']; $radius_si = $radius * $unit['tosi']; $query .= " AND (( " . $tosi . " * acos( cos( radians(" . $latitude . ") ) * cos( radians( googlemap_lt ) ) * cos( radians( googlemap_ln ) - radians(" . $longitude . ") ) + sin( radians(" . $latitude . ") ) * sin( radians( googlemap_lt ) ) ) ) < " . $radius . ") AND `show_address`='1'"; } } $done_this = true; } elseif ($format == 'polygonsearch' and wpl_global::check_addon('aps') and !$done_this) { /** importing library **/ _wpl_import('libraries.addon_aps'); $raw_points = isset($vars['sf_polygonsearchpoints']) ? $vars['sf_polygonsearchpoints'] : '[]'; if (version_compare(wpl_db::version(), '5.6.1', '>=')) { $sql_function = 'ST_Contains'; } else { $sql_function = 'Contains'; } $APS = new wpl_addon_aps(); $polygons = $APS->toPolygons($raw_points); $qq = array(); foreach ($polygons as $polygon) { $polygon_str = ''; foreach ($polygon as $polygon_point) { $polygon_str .= $polygon_point[1] . ' ' . $polygon_point[0] . ', '; } $polygon_str = trim($polygon_str, ', '); $qq[] = $sql_function . "(GeomFromText('Polygon((" . $polygon_str . "))'), geopoints) = 1"; }