Благодаря Wikileaks, здесь, в Великобритании, мы можем теперь получить доступ к нашим координатам долготы и широты для каждого почтового кода wikileaks postcodes uk ВАЖНО. Не используйте эти данные в общедоступных приложениях. Существует опасение, что данные были намеренно повреждены, и вы можете считаться нарушающими закон об авторском праве. Попробуйте использовать данные с сайта с открытым исходным кодом, как этот Postcode UK siteКак эффективно использовать значения долготы/широты в Mysql?
Теперь, можно вычислить расстояния между каждой точкой, используя следующий расчет (первоначально из тонкой книги Pro Mysql):
Расстояние d между двумя точки (x1, y1) и (x2, y2) могут быть вычислены по следующему уравнению (до тех пор, пока значения x являются широтой, а значения y являются долгота в радианах, r - радиус сферы, которая составляет 3956 дюймов):
d = acos (sin x1) * sin (x2) + cos (x1) * cos (x2) * cos (y2-y1)) * r
Теперь это достаточно хорошо, или я должен использовать новые типы и функции данных ГИС, и если да, то как мне преобразовать ссылки долготы и широты в тип данных точки? Я понимаю, что, поскольку Земля не идеальная сфера, поэтому расчет расстояния, который я цитирую выше, не является совершенным; однако это достаточно хорошо для моих целей. Будет ли использовать новую функциональность ГИС: а) сделать расчет расстояния быстрее b) сделать расчет расстояния более точным?
Фантастический - я всегда был поклонником денормализации хранилища данных, где он помогает вычислять время. благодаря! – DBMarcos99
Интересно, что вы используете 6367 в качестве фигуры радиуса Земли в километрах. Эта цифра колеблется между 6356 и 6378 по разным источникам. Во всяком случае, я отмечаю это как принятый ответ – DBMarcos99
@ DBMarcos99 Средний радиус (как используется здесь) обычно определяется как '((2 * SemiMajorAxis) + SemiMinorAxis)/3.0', для которого значения могут быть найдены для вашей [предпочтительной геодезической system] (http://en.wikipedia.org/wiki/World_Geodetic_System#A_new_World_Geodetic_System:_WGS_84) –