получить ближайшую широту и долготу

У меня есть широта и долгота в этом формате:
15.1393658,76.92150059999994,13.0873783,77.41112120000003,14.7017498,77.59016529999997

Если я ввожу другую Широту и долготу, например, широта = 13.0874193, лан = 77.41100640000002, они должны указать ближайший широтный интервал выше лан.
Я использовал формулу Haversine,
$ connection = Yii :: $ app-> getDb ();

    $command = $connection->createCommand('
SELECT fpro_userid, 6371 * 2 * ASIN(SQRT( POWER(SIN(('.$user_lat.' - abs('.$new_string.')) * pi()/180 / 2),2) + COS('.$user_lan.' * pi()/180 ) * COS( abs('.$new_string.') * pi()/180) * POWER(SIN(('.$user_lan.' - '.$new_string.') * pi()/180 / 2), 2) )) as distance FROM farm_profile having distance < 19.2 ORDER BY distance
');

$result = $command->queryAll();

в php но не работает.
Поэтому, пожалуйста, кто-нибудь, помогите решить эту проблему

-1

Решение

Вам нужно перевести расстояние в градусы долготы и широты, отфильтровать их, чтобы ограничить записи, которые примерно находятся в ограничительной рамке, а затем выполнить более точный фильтр расстояния. Вот отличная статья, которая объясняет, как все это сделать:
http://www.scribd.com/doc/2569355/Geo-Distance-Search-with-MySQL

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]