Как определить проекцию svg-карты России и переводить географические координаты в декартовы для неё?

Приветствую!
Есть задача наносить точки и вообще раскрашивать определёнными данными российскую версию карты России.
Нашёл пару svg-карт: здесь и здесь.

Ни там ни там нет указания на используемую проекцию, поэтому очень затрудняюсь, как пересчитывать гео-координаты в декартовы, для нанесения на карту. А проекций разных много.

Задача также в том, что всё должно работать на локальном сервере (Яндекс Карты не годятся), svg контуров вполне достаточно.

Например, я собрал несколько точек с известными координатами и сопоставил с первой svg-картой:
var coords=[
{geo:[54.46250,19.63861],svg:[30.157770999999997,170.82351]}, //Западная точка, Калининград
{geo:[41.18528,47.78167],svg:[71.29541499999999,457.89915999999994]}, // Дагестан, южнейшая точка
{geo:[50.869726, 156.474716],svg:[965.96521,390.81618000000003]}, // Сахалинская обл., верх
{geo:[64.316611,108.425197],svg:[597.00888,330.63882]} // Иркутская область, верх
];

Но едва ли есть такая программа, которая подберёт функцию и параметры по значениям аргументов. Или есть?

Поделитесь, пожалуйста, мнением, опытом.
  • Вопрос задан
  • 3509 просмотров
Пригласить эксперта
Ответы на вопрос 2
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
Проще всего взять карту известной проекции, пригодной для Ваших целей, и экспортировать её в SVG. Или найти свободно распространяемую карту в "географической проекции" (почти все файлы SHP в ней и создаются) и спроектировать её в удобную Вам и потом уже в SVG. Сделать это можно в любой ГИС (ArcGIS, MapInfo и т.д.).

Теперь трансформируйте координаты своих точек в искомую проекцию и работайте.

А обсуждаемые программы есть. И уже давно. Но не в широком использовании. Представляют они чисто научный интерес. Если и искать их, то в учебных заведениях с картографическим профилем (кафедра картографии МГУ, например).
Ответ написан
@Zombieff
Нечто похожее, но без перевода координат, там данные по областям заданы:
bl.ocks.org/KoGor/5685876
Используются d3.js и topojson.

В принципе, эта статья — половина решения. Для перевода координат, скорее всего, нужен geojson, и может быть, опять topojson. Сам ничего подобного не делал, но проекты открытые и достаточно хорошо документированы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы