imitronov

imitronov

Кто я?

Веб разработчик. Работаю с WordPress, 1C-Bitrix, modX, OctoberCMS. Делаю обзоры онлайн сервисов и малоизвестных CMS.


О чем я пишу


Свежие записи

Черное море на карте

Получаем координаты полигона Черного моря для дальнейшей работы с Яндекс Картами. Нанесение полигона с указанием текстовой метки.

  1. Запрашиваем данные:
    https://nominatim.openstreetmap.org/search.php?q=black+sea&polygon_geojson=1&format=json
  2. Ищем в результатах «Черное море». Отличительная характеристика:
    "type":"sea"
  3. В свойстве geojson -> coordinates хранится наш полигон. Обратите внимание, что все координаты точек даны в формате: [долгота, широта], а для Яндекса требуется обратное: [широта, долгота]
  4. Преобразуем в формат для Яндекса:
    var a = [[[...]]]; // поместим в переменную "a" координаты из openstreetmap
    var b = [[]]; // сюда запишем готовый результат
    a[0].forEach(function(e){ b[0].push([e[1], e[0]]) }); // переставляем местами координаты
    console.log(JSON.stringify(b)); // выводим в консоль

Готовый образец:

Скачать готовый код