March 5

GEOINT #121 - Проходная пешка

Определить координаты места съемки с точностью до 10 метров

Фотография подозрительно напомнила стритвью, хотя водяных знаков гугла найти не удалось. Местность похожа на США, судя по пальмам, где-то в южном штате. Единственное, что необычно - голубой указатель названия дороги. В США обычно зелёные указатели.

Внимание привлекла мачта светофоров. Побродив по южным штатам, нашёл нечто похожее в Калифорнии, даже указатели синие.

Но там мачты совмещены с фонарём, поэтому надо искать дальше. Поискал мачту линзой и нашёл пост на реддите.

Вот он https://www.reddit.com/r/mildlyinteresting/comments/8w6yjy/weve_had_a_tropical_storm_and_the_tops_of_the/

А там ссылка на фото и указание, что фото было сделано на Гуаме.

Погулял по Гуаму, мачты прямо такие, но на них вообще нет указателей улиц.

Гуам находится в архипелаге Марианских островов, все они являются территорией США. Решил проверить другие острова архипелага. Стритвью было только на острове Сайпан, втором по численности населения после Гуама.

И на Сайпане я нашёл матчы с синими указателями, прямо как в задании.

Остров небольшой, можно было бы поискать руками. Но я это не люблю, а люблю автоматизацию. Поэтому написал скрипт для overpass, который приведу полностью ниже.

// Ищем на Северных Марианских островах (все кроме Гуама)
area[name="Northern Mariana Islands"]->.a;

// Это дорога, которая примыкает слева, раз сделали светофор, 
// она вероятно не локальная.
way[highway~"^(trunk|primary|secondary|tertiary)quot;](area.a)->.left_ways;

// Перебираем найденные дороги.
foreach.left_ways->.left_way{
  // Берём конечные узлы, чтобы нашлись в основном Т-образные перекрёстки.
  (
    node(w.left_way:1,1);
    node(w.left_way:1,-1);
  )->.left_way_end;
  
  // На перекрёстке ищем светофор
  node[highway=traffic_signals](around.left_way_end:10)->.sig;
  // и отбираем только перекрёстки со светофором.
  node.left_way_end(around.sig:10)->.left_way_end;
  
  // Это дорога, примыкающая справа, там где знак STOP, 
  // метров 200 до неё не больше. Она как раз локальная.
  way[highway~"^(residential|unclassified|service)quot;](around.left_way_end:200)->.right_ways;

  // Также берём её конечные узлы (Т-образные перекрёстки).
  (
    node(w.right_ways:1,1);
    node(w.right_ways:1,-1);
  )->.right_ways_end;
  
  // Ищем связанные перекрёстком дороги с первой
  way(bn.left_way_end)->.left_linked_ways;
  // и со второй дорогами.
  way(bn.right_ways_end)->.right_linked_ways;
  // Берём пересечение найденных дорог, так как это должна быть одна и
  // та же дорога, она не локальная, но и не выделенная трасса (motorway).
  // Односторонняя, так как потоки разделены.
  way.left_linked_ways.right_linked_ways[highway~"^(trunk|primary|secondary|tertiary)quot;][oneway=yes]->.linked_ways;

  // И показываем искомый перекрёсток на карте.
  node(w.linked_ways)->.linked_ways_nodes;
  node.linked_ways_nodes.left_way_end;
  out;
}

Скрипт выдал несколько точек, все на о. Сайпан, которые легко было проверить руками. Одна из них была искомой.

А фотография действительно оказалась скрином стритвью.

15.151590, 145.737385