Forum Webscript.Ru
Программирование => PHP => Тема начата: kiruxa от 21 Ноября 2005, 11:56:03
-
Добрый день,
Появилась задачка:
есть база данных MySQL с обьектами в Штатах, и указан ZIP code каждого обьекта,
надо найти все обьекты на расстоянии 25-100 миль (по выбору) от указаного ЗИП кода в базе
Кто-нибудь сталкивался с таким делами для США? ищу скрипты, а они все очень платные :(
Спасибо
-
Хех.
Храни X, Y для каждого штата, и вычисляй расстояние как SQRT(SQR(X)+SQR(Y))
=)
-
не пройдет :(
если бы все так просто...
нашел базу по зипам но, как у них там все считаеться незнаю :(
-
В каком виде эта база? Без информации о координатах ничего не посчитаешь.
-
Вот чтото типа этого
[PHP] CREATE TABLE zip_code (
zip_code int(10) unsigned NOT NULL default \'0\',
lattitude float NOT NULL default \'0\',
longitude float NOT NULL default \'0\',
city varchar(25) NOT NULL default \'\',
state_prefix char(2) NOT NULL default \'\',
zip_class varchar(20) NOT NULL default \'\',
PRIMARY KEY (zip_code)
) TYPE=MyISAM;
INSERT INTO zip_code VALUES (501, 40.9223, -72.6371, \'HOLTSVILLE\', \'NY\', \'UNIQUE\');
INSERT INTO zip_code VALUES (601, 18.1653, -66.7226, \'ADJUNTAS\', \'PR\', \'STANDARD\');
-
lattitude, longitude - то, что вам нужно.
Осталось только перевести это все в километры :) Для каждой широты свое соотношение градус/км, и его нужно вычислять. Времени эти все операции займут уйму. Возможно, следует подумать о целесообразности.
-
Уже подумал, сделал, теперь тестирую :) вроде работает пока.
Пока платят надо делать :)
Спасибо за совет