Я поднимаю этот комментарий на вопрос: как быстрее всего коснуться антиподов, а затем обратно. Чтобы упростить транзит, оставьте 100 км от фактического антипода, чтобы вам не нужно было идти пешком в глушь. Это из Окленда в Севилью? Или Малага? От Шанхая до Конкордии или около того в Аргентине?
Уже...
Сантьяго, Чили-Сиань, Китай. 26х5м. Антипод аэропорта Сантьяго находится к востоку от Чжэньань, Китай, который находится всего в 100 км от аэропорта Сиань. Летите по этому маршруту всего с одной удобной остановкой в CDG, и вы на месте.
Мне также нравится Окленд-Гибралтар (или Танжер или Малага, хотя рейсы кажутся самыми быстрыми в GIB, а их аэропорт гораздо веселее), так как аэропорты работают в пределах 100-километрового буфера (я нашел 31 час 55 минут до GIB через HKG и LHR).
Тайпай-Асунсьон, Парагвай — хорошая пара, но я не могу найти рейсы менее 34 часов 5 минут с помощью беглого поиска.
Шанхай-Буэнос-Айрес ужасно заманчиво, учитывая возможность соединения в одну остановку, но я не могу заставить его работать в пределах 100 км, а наземный транспорт, вероятно, убивает.
Это не совсем новый ответ (пока), но представляет собой набор данных противоположных аэропортов, которые кто-то может использовать для поиска лучшего маршрута. Читайте дальше, чтобы узнать о самых противоположных аэропортах и шокирующем открытии маршрута Сантьяго-Сиань.
Продолжая это исследование, я обращаюсь к работе a3nm, который ранее занимался каким-то дурачеством, связанным с антиподами в аэропортах. С помощью его указателя на базу данных OpenFlights (кому все кредиты предоставляются в соответствии с их лицензией), я могу получить файлы данных для аэропортов и воздушных маршрутов по всему миру.
Во-первых, я загружу данные аэропорта в таблицу PostgreSQL, используя эту процедуру , и включу поддержку PostGIS для этой таблицы, чтобы мы могли выполнять пространственные вычисления.
Мы создадим пару базовых столбцов, вычислим антипод для каждого аэропорта и преобразуем его в геометрию (возможно, есть лучший способ сделать это, если вы знаете, что делаете. т, на самом деле, знаю, что мы делаем):
update airports set antipode_latitude = -latitude;
update airports set antipode_longitude = 180+longitude;
update airports set antipode_longitude = antipode_longitude-360 where antipode_longitude > 180;
update airports SET antipode = ST_SetSRID(ST_MakePoint(antipode_longitude,antipode_latitude),4326);
И проверьте работоспособность результатов, основываясь на некоторых из тех, о которых мы уже знаем:
select airports.name, city, country, iata, ST_Distance_Sphere(airports.antipode, (select airports.geom from airports where iata='SCL')) as distance from airports order by distance limit 3;
Ankang Airport Ankang China AKA 80599.02914563
Xi\\'An Xiguan Xi\\'AN China SIA 109730.42018116
Xianyang Xi'an China XIY **124745.39283865**
О, нет! Мы раскрыли сокрушительную правду о моем предыдущем ответе. SCL-XIY на самом деле находится на 24 км дальше, чем для строгой квалификации. Это, вероятно, можно исправить, начав свое путешествие немного дальше в Сантьяго или Сиань и сев на какой-нибудь автобус до аэропорта (на что у вас будет достаточно времени, если вы совершаете 72-часовую поездку туда и обратно), но это действительно печальная находка.
select airports.name, city, country, iata, ST_Distance_Sphere(airports.antipode, (select airports.geom from airports where iata='AKL')) as distance from airports order by distance limit 5;
Ronda Airport Ronda Spain RRA 28932.88795948
Ronda Ronda Spain 30772.20555266
Moron Ab Sevilla Spain OZP 40636.98417791
Malaga Malaga Spain AGP 73182.10790714
Sevilla Sevilla Spain SVQ 75861.92508438
Хорошая новость заключается в том, что результаты кажутся разумными. Теперь мы можем найти самые противоположные аэропорты, а почему бы и нет? Давайте продолжим нашу тенденцию к тупому использованию базы данных, потому что это несколько проще, и создадим дубликат рабочей таблицы, чтобы мы могли выполнять запрос по двум таблицам. Мы также ограничим наш поиск аэропортами с кодами IATA, чтобы исключить большинство случайных железнодорожных станций в наборе данных и дать нам больше шансов найти аэропорты с легкодоступными коммерческими услугами:
create table airports2 (like airports including all);
insert into airports2 select * from airports;
select airports.name, airports.city, airports.country, airports.iata, airports2.name, airports2.city, airports2.country, airports2.iata, st_distance_sphere(airports.antipode, airports2.geom) as distance from airports, airports2 where airports.geom && ST_Expand(airports2.antipode, 25) and airports.iata <> '' and airports2.iata <> '' order by ST_DISTANCE(airports.geom, airports2.antipode) asc limit 1;
Sultan Mahmud Badaruddin Ii Palembang Indonesia PLM Benito Salas Neiva Colombia NVA 5810.60702928
И действительно, PLM и NVA довольно близки:
Если вам любопытно, а я знаю, что это так, PLM и NVA по-прежнему выигрывают, даже если убрать ограничение, согласно которому аэропорты должны иметь коды IATA.
Теперь мы запросим все противоположные аэропорты (с кодами IATA) в пределах 100 км, обрежем каждую вторую запись, поскольку они соответствуют парам, и создадим файл данных со списком 366 пар городов-кандидатов для исследования. Мы также можем сделать немного больший подход, если ослабим ограничение в 100 км на волосок и решим, что всегда можем немного пройтись, если ничего другого.
select airports.name, airports.city, airports.country, airports.iata, airports2.name, airports2.city, airports2.country, airports2.iata, st_distance_sphere(airports.antipode, airports2.geom) as error from airports, airports2 where airports.geom && ST_Expand(airports2.antipode, 25) and airports.iata <> '' and airports2.iata <> '' order by ST_DISTANCE_sphere(airports.antipode, airports2.geom) asc limit 1000;
В следующем выпуске мы посмотрим, сможем ли мы найти более быстрый маршрут.
Зак Липтон
Зак Липтон