Как осуществляется картирование городов на карте страны? (чтобы пользователи могли искать объявления рядом со своими городами)

0

У меня есть сайт для объявлений. Сначала пользователи должны указать свою "область поиска"...

Я хочу добавить функцию, в которой пользователи также могут установить флажок, чтобы найти "закрыть" объявления в их выбранном 'area'.

Но я не знаю, как "mapp" или "связывать" области вместе умным способом. Мне нужно несколько советов о том, как это сделать...

Например, как "радиус-поиск миль" выполняется на веб-сайтах, где вы можете искать объявления?

Спасибо

BTW Я использую PHP для запроса MYSQL для получения результатов. И в настоящее время все области имеют свои собственные имена в поле (Nevada = Nevada в значении поля таблицы). Таким образом, запрос выполняется путем получения значения выпадающего списка и поиска этого значения в таблице mysql.

3 ответа

0
Лучший ответ

Для этого вам придется использовать поиск радиуса script. Также вам нужна база данных из графств/городов с информацией в ней, например, город/страна, longitute, latiture и т.д.

Существует довольно несколько скриптов поиска радиуса, вам нужно немного найти Google.

0

Это тот, который мы используем. Sql Server снова, но очень легко изменить.

Множество других примеров в Интернете дали изворотливые результаты....

ALTER function [dbo].[udf_Haversine](@lat1 float, @long1 float, @lat2 float, @long2 float) returns float begin
    declare @dlon float, @dlat float, @rlat1 float, @rlat2 float, @rlong1 float, @rlong2 float, @a float, @c float, @R float, @d float, @DtoR float

    select @DtoR = 0.017453293
    select @R = 3937 --3976

    select 
        @rlat1 = @lat1 * @DtoR,
        @rlong1 = @long1 * @DtoR,
        @rlat2 = @lat2 * @DtoR,
        @rlong2 = @long2 * @DtoR

    select 
        @dlon = @rlong1 - @rlong2,
        @dlat = @rlat1 - @rlat2

    select @a = power(sin(@dlat/2), 2) + cos(@rlat1) * cos(@rlat2) * power(sin(@dlon/2), 2)
    select @c = 2 * atn2(sqrt(@a), sqrt(1-@a))
    select @d = @R * @c

    return @d 
end
0

Следующая ссылка написана специально для Microsoft SQL Server, но я подозреваю, что было бы не так сложно преобразовать ее в MySQL.

Почтовый индекс Поиск по широте и долготе

Ещё вопросы

Сообщество Overcoder
Наверх
Меню