Я пытаюсь этот запрос, но он дает мне только на расстоянии.
Например pune latitude=18.52043
а также longitude =73.85674
,
Это показывает мне ближайшее местоположение и его хорошо.
Проблема заключается в том, что, если пользователь ищет страну Индии, он должен получить все широты и долготы страны Индии.
Пожалуйста, помогите мне разобраться с этой проблемой.
SELECT
(
6373 *
acos(
cos( radians(18.52043) ) *
cos( radians( `latitude` ) ) *
cos(
radians( `longitude` ) - radians(73.85674)
) +
sin(radians(18.52043)) *
sin(radians(`latitude`))
)
) `distance`
FROM
`caw_user_meal`
HAVING
`distance` < 50
ORDER BY
`distance`
Вы должны сначала определить все границы всех стран мира. Вы можете скачать эти данные бесплатно здесь Естественная земля
После этого вы должны проверить, попадает ли данный лонг в пределы определенной страны.
Надеюсь, это поможет.
Нажмите на это ссылка на сайт, Выполните поиск (Ctl + F) для Индии, и вы увидите группу координат в столбце JSON_4236. Вставьте их в свою базу данных с таблицей, имеющей один атрибут как Индия. Запустите приведенный выше запрос с предложением WHERE
SELECT
(
6373 *
acos(
cos( radians(18.52043) ) *
cos( radians( `latitude` ) ) *
cos(
radians( `longitude` ) - radians(73.85674)
) +
sin(radians(18.52043)) *
sin(radians(`latitude`))
)
) `distance`
FROM
`caw_user_meal`
WHERE
`country` = India