SELECT id, ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20;
$path = MODX_CORE_PATH . 'components/markers/';
$result = $modx->addPackage('markers',$path . 'model/','zen_');
$crit = $modx->newQuery('TeacherMarker');
$crit->sortby('distance','ASC');
$crit->limit(0 , 20);$crit = $modx->newQuery('TeacherMarker');
$crit->select(array(
'id',
'distance' => '( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) )'
));
$crit->having(array(
'distance:<' => 25
));
$crit->sortby('distance','ASC');
$crit->limit(0 , 20);
$collection = $modx->getCollection('TeacherMarker', $crit);
// ... continue to process the output<?php
$sentLat = floatval($_GET['sentlat']);
$sentLng = floatval($_GET['sentlng']);
$path = MODX_CORE_PATH . 'components/teachers/';
$result = $modx->addPackage('teachers',$path . 'model/','zen_');
$crit = $modx->newQuery('Teacher');
$crit->select(array(
'id',
'distance' => '( 3959 * acos( cos( radians('.$sentLat.') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('.$sentLng.') ) + sin( radians('.$sentLat.') ) * sin( radians( lat ) ) ) )'
));
$crit->having('distance < 100');
$crit->sortby('distance','ASC');
$crit->limit(0 , 15);
$Teachers = $modx->getCollection('Teacher', $crit);
foreach($Teachers as $Teacher) {
$fields = $Teacher->toArray();
$output .= $modx->getChunk('ShowTeacher', $fields);
}
return $output;