Дано: известны координаты 377 пунктов пропуска на территории РФ и Таможенного союза, вычислена матрица расстояний между ними по прямой (по формуле для сферы).

Задача: получить более реалистичные оценки расстояний между пунктами пропуска, чтобы корректно определять ближайших к заданному.

Google Maps API предоставляет инструменты работы с картами и маршрутами. В R доступ к нужной составляющей API – Distance Matrix – реализован в пакете gmapsdistance(CRAN, github). Distance Matrix имеет ограничения на количество запросов: не более 2500 в сутки от одного приложения. Сбор данных проводился с учётом этого ограничения в два этапа:

  1. По матрице расстояний между пунктами пропуска по прямой для каждого пункта были найдены по 3 ближайших по каждому из четырёх типов транспорта (морской, железнодорожный, автомобильный, воздушный).

  2. Затем через API Distance Matrix были загружены расстояния от каждого пропускного пункта до 12 ближайших.

Количество запросов – это не единственное ограничение. Инструмент предоставляет доступ к стандартному набору опций Google маршрутов. Это означает, что маршрут из точки А в точку Б можно построить для путешествия пешком, для автомобиля, общественным либо авиа транспортом. Таким образом, с видами транспорта по классификации ФТС совпадают только два. Поскольку точное определение расстояний наиболее критично для автомобильных пунктов пропуска, для которых в силу рельефа расстояние по прямой может сильно отличаться от реального, на втором этапе сбора данных для всех пунктов пропуска использовалась одна и та же опция: маршрут автомобильным транспортом. Ниже на картах линиями показаны несуществующие маршруты. Можно убедиться, что причина этих пропусков – чисто географическая.

Нет ни одного наземного маршрута до трёх ближайших портов

В таблице ниже приводятся пункты пропуска, для которых расстояние до трёх ближайших по прямой морских портов не определено. Расшифровка столбцов этой и следующих таблиц:

name_pp code_tra closest_10_1_NA closest_10_2_NA closest_10_3_NA
Северо-Курильск 10 Октябрьский Петропавловск-Камчатский Курильск
Курильск 10 Южно-Курильск Пригородное Корсаков
Южно-Курильск 10 Курильск Пригородное Корсаков
Москальво 10 Николаевск-на-Амуре Де-Кастри Поронайск
Магадан 10 Охотск Москальво Октябрьский
Магадан (Сокол) 40 Охотск Москальво Октябрьский
Анадырь 10 Провидения Магадан Петропавловск-Камчатский
Анадырь (Угольный) 40 Провидения Магадан Петропавловск-Камчатский
Провидения 10 Анадырь Магадан Петропавловск-Камчатский
Провидения 10 Анадырь (Угольный) Магадан Петропавловск-Камчатский
Охотск 10 Магадан Москальво Николаевск-на-Амуре
Дудинка 10 Нарьян-Мар Мезень Архангельск
Ханты-Мансийск 40 Дудинка Мезень Архангельск

Наведите мышь на точку, чтобы увидеть подпись

Нет ни одного наземного маршрута до трёх ближайших ж/д пунктов пропуска

name_pp code_tra closest_10_1_NA closest_10_2_NA closest_10_3_NA
Курильск 10 Пограничный (ж/д, Приморский край) Махалино Хасан
Москальво 10 Пограничный (ж/д, Приморский край) Махалино Хасан
Октябрьский 10 Пограничный (ж/д, Приморский край) Махалино Хасан
Петропавловск-Камчатский 10 Пограничный (ж/д, Приморский край) Махалино Хасан
Петропавловск-Камчатский (Елизово) 40 Пограничный (ж/д, Приморский край) Махалино Хасан
Северо-Курильск 10 Пограничный (ж/д, Приморский край) Махалино Хасан
Южно-Курильск 10 Пограничный (ж/д, Приморский край) Махалино Хасан
Анадырь 10 Пограничный (ж/д, Приморский край) Махалино Забайкальск (ж/д)
Анадырь (Угольный) 40 Пограничный (ж/д, Приморский край) Махалино Забайкальск (ж/д)
Провидения 10 Пограничный (ж/д, Приморский край) Махалино Забайкальск (ж/д)
Охотск 10 Пограничный (ж/д, Приморский край) Забайкальск (ж/д) Соловьевск (ж/д)
Дудинка 10 Карасук Кулунда Локоть (Алтайский край)
Ханты-Мансийск 40 Карасук Карталы (Тобыл) Кулунда

Наведите мышь на точку, чтобы увидеть подпись

Нет ни одного наземного маршрута до трёх ближайших а/м пунктов пропуска

name_pp code_tra closest_10_1_NA closest_10_2_NA closest_10_3_NA
Курильск 10 Марково Нижнеленинское (смешанный) Турий Рог
Октябрьский 10 Нижнеленинское (смешанный) Марково Амурзет
Петропавловск-Камчатский 10 Нижнеленинское (смешанный) Марково Амурзет
Петропавловск-Камчатский (Елизово) 40 Нижнеленинское (смешанный) Марково Амурзет
Северо-Курильск 10 Нижнеленинское (смешанный) Марково Амурзет
Южно-Курильск 10 Марково Турий Рог Нижнеленинское (смешанный)
Охотск 10 Кани-Курган Поярково Нижнеленинское (смешанный)
Москальво 10 Покровка (Хабаровский край) Амурзет Поярково
Анадырь 10 Кани-Курган Благовещенск (смешанный) Поярково
Анадырь (Угольный) 40 Кани-Курган Благовещенск (смешанный) Поярково
Провидения 10 Кани-Курган Поярково Благовещенск (смешанный)
Дудинка 10 Петухово (а/м) Павловка (Новосибирская обл.) Павловка (Алтайский край)
Ханты-Мансийск 40 Исилькуль (а/м) Воскресенское Достык (а/м)

Наведите мышь на точку, чтобы увидеть подпись

Нет ни одного наземного маршрута до трёх ближайших аэропортов

name_pp code_tra closest_10_1_NA closest_10_2_NA closest_10_3_NA
Курильск 10 Хабаровск (Новый) Петропавловск-Камчатский (Елизово) Владивосток (Кневичи)
Охотск 10 Петропавловск-Камчатский (Елизово) Хабаровск (Новый) Южно-Сахалинск (Хомутово)
Анадырь 10 Магадан (Сокол) Петропавловск-Камчатский (Елизово) Южно-Сахалинск (Хомутово)
Анадырь (Угольный) 40 Магадан (Сокол) Петропавловск-Камчатский (Елизово) Южно-Сахалинск (Хомутово)
Провидения 10 Магадан (Сокол) Петропавловск-Камчатский (Елизово) Южно-Сахалинск (Хомутово)
Октябрьский 10 Магадан (Сокол) Южно-Сахалинск (Хомутово) Хабаровск (Новый)
Северо-Курильск 10 Магадан (Сокол) Южно-Сахалинск (Хомутово) Хабаровск (Новый)
Южно-Курильск 10 Хабаровск (Новый) Владивосток (Кневичи) Петропавловск-Камчатский (Елизово)
Москальво 10 Хабаровск (Новый) Магадан (Сокол) Петропавловск-Камчатский (Елизово)
Дудинка 10 Сургут Ханты-Мансийск Красноярск (Емельяново)
Ханты-Мансийск 40 Сургут Тюмень (Рощино) Нижневартовск
Петропавловск-Камчатский 10 Магадан (Сокол) Южно-Сахалинск (Хомутово) Анадырь
Петропавловск-Камчатский 10 Магадан (Сокол) Южно-Сахалинск (Хомутово) Анадырь (Угольный)
Петропавловск-Камчатский (Елизово) 40 Магадан (Сокол) Южно-Сахалинск (Хомутово) Анадырь
Петропавловск-Камчатский (Елизово) 40 Магадан (Сокол) Южно-Сахалинск (Хомутово) Анадырь (Угольный)

Наведите мышь на точку, чтобы увидеть подпись