Hi,
Is it possible to search by place and if place itself isn't found that it will give results of people around the entered place?
Kind regards
$fields = array('locatie_voor_verwijslijst','locatie_2','locatie_3'); /* Change the strings alias1, alias2 and alias3 with alias of your Google map fields */
$where = array();
foreach ($fields as $f){
$where[] = '( '.$const.' * acos( cos( radians('.JFactory::getApplication()->input->get($field->alias.'_lat',null,'raw').') ) * cos( radians( b.'.$db->quoteName($f.'_lat').' ) ) * cos( radians( b.'.$db->quoteName($f.'_lng').' ) - radians('.JFactory::getApplication()->input->get($field->alias.'_lng',null,'raw').') ) + sin( radians('.JFactory::getApplication()->input->get($field->alias.'_lat',null,'raw').') ) * sin( radians( b.'.$db->quoteName($f.'_lat').' ) ) ) ) < '.$radius;
}
$query->where('('.implode(' OR ',$where).')');
So do I need to change all the place text fields to Google Maps field?No, from your user list page I can see that you already have a field of type Google Map with alias "locatie_voor_verwijslijst". You should set this field to be searchable in the your search module.
These fields already have values from users, is it possible to change this field type afterwards?No, this is not possible.
$query->where('( '.$const.' * acos( cos( radians('.JFactory::getApplication()->input->get($field->alias.'_lat',null,'raw').') ) * cos( radians( b.'.$db->quoteName($field->alias.'_lat').' ) ) * cos( radians( b.'.$db->quoteName($field->alias.'_lng').' ) - radians('.JFactory::getApplication()->input->get($field->alias.'_lng',null,'raw').') ) + sin( radians('.JFactory::getApplication()->input->get($field->alias.'_lat',null,'raw').') ) * sin( radians( b.'.$db->quoteName($field->alias.'_lat').' ) ) ) ) < '.$radius);
with this $fields = array('alias1','alias2','alias3'); /* Change the strings alias1, alias2 and alias3 with alias of your Google map fields */
$where = array();
foreach ($fields as $f){
$where[] = '(( '.$const.' * acos( cos( radians('.JFactory::getApplication()->input->get($f.'_lat',null,'raw').') ) * cos( radians( b.'.$db->quoteName($f.'_lat').' ) ) * cos( radians( b.'.$db->quoteName($f.'_lng').' ) - radians('.JFactory::getApplication()->input->get($f.'_lng',null,'raw').') ) + sin( radians('.JFactory::getApplication()->input->get($f.'_lat',null,'raw').') ) * sin( radians( b.'.$db->quoteName($f.'_lat').' ) ) ) ) < '.$radius.')';
}
$query->where(implode(' OR ',$where));