Search Based on latitude and longitude

 echo "SELECT {$wpdb->prefix}posts.post_title, {$wpdb->prefix}posts.ID,( 3959 * acos( cos( radians( ".$latitude." ) ) * cos( radians( CONVERT( latitude.meta_value, DECIMAL( 10, 6 ) ) ) ) * cos( radians( CONVERT( longitude.meta_value, DECIMAL( 10, 6 ) ) ) - radians( ".$longitude." ) ) + sin( radians( ".$latitude." ) ) * sin( radians( CONVERT( latitude.meta_value, DECIMAL( 10, 6 ) ) ) ) ) ) AS distance FROM {$wpdb->prefix}posts LEFT JOIN {$wpdb->prefix}postmeta AS latitude ON ( {$wpdb->prefix}posts.ID = latitude.post_id AND latitude.meta_key = 'driver_latitude' ) LEFT JOIN {$wpdb->prefix}postmeta AS longitude ON ( {$wpdb->prefix}posts.ID = longitude.post_id AND longitude.meta_key = 'driver_longitude' ) $leftJoin WHERE {$wpdb->prefix}posts.post_status = 'publish' $licence_type_where HAVING distance < $distance ORDER BY distance";
SELECT hgv_posts.post_title, hgv_posts.ID,( 3959 * acos( cos( radians( 51.5073509 ) ) * cos( radians ( CONVERT( latitude.meta_value, DECIMAL( 10, 6 ) ) ) ) * cos( radians( CONVERT( longitude.meta_value , DECIMAL( 10, 6 ) ) ) - radians( -0.1277583 ) ) + sin( radians( 51.5073509 ) ) * sin( radians( CONVERT ( latitude.meta_value, DECIMAL( 10, 6 ) ) ) ) ) ) AS distance FROM hgv_posts LEFT JOIN hgv_postmeta AS  latitude ON ( hgv_posts.ID = latitude.post_id AND latitude.meta_key = 'driver_latitude' ) LEFT JOIN hgv_postmeta AS longitude ON ( hgv_posts.ID = longitude.post_id AND longitude.meta_key = 'driver_longitude'  )  LEFT JOIN hgv_postmeta AS licence_type ON ( hgv_posts.ID = licence_type.post_id AND licence_type.meta_key = 'licence__type' )  LEFT JOIN hgv_postmeta AS driverstatus ON ( hgv_posts.ID = driverstatus.post_id AND driverstatus.meta_key = 'driver_status' )  WHERE hgv_posts.post_status = 'publish'  AND driverstatus.meta_value != 'deactivate'  HAVING distance < 50 ORDER BY distance