Изменение проекции шейп-файла для визуализации с помощью D3

Я пытаюсь создать визуализацию с использованием карты Великобритании и всех ее ~ 650 избирательных округов. Я нарисовал карту, следуя этому превосходному руководству http://bost.ocks.org/mike/map/ и это прекрасно работает. Однако единственный источник, который я могу найти для избирательных округов, — это Управление боеприпасов (у Natural Earth есть округа, но не округа). Проблема в том, что файлы избирательных округов ОС не содержат координаты того же типа (как вы можете сказать, я не эксперт по ГИС), они используют поперечную проекцию Меркатора. Вот свойства файла .prj данных, которые я пытаюсь преобразовать:

PROJCS["British_National_Grid",GEOGCS["GCS_OSGB_1936",DATUM["D_OSGB_1936",SPHEROID["Airy_1830",6377563.396,299.3249646]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",400000],PARAMETER["False_Northing",-100000],PARAMETER["Central_Meridian",-2],PARAMETER["Scale_Factor",0.999601272],PARAMETER["Latitude_Of_Origin",49],UNIT["Meter",1]]

Мой вопрос: как я могу преобразовать это для проекции в D3? У меня установлены ogr2ogr и TopJson, но я не уверен, что они могут это сделать, и я нигде не могу найти информацию, так как у меня недостаточно базовых знаний.

ТИА


person toby    schedule 19.03.2013    source источник
comment
Я был в том же месте, что и вы, пару дней назад, правильным инструментом был действительно ogr2ogr. Мне прислали этот фрагмент ogr2ogr output.shp input.shp -t_srs "+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0", но я понятия не имею, относится ли это к вашему делу. Надеюсь, кто-то может придумать лучший ответ. Если нет, попробуйте gis.stackexchange.com.   -  person methodofaction    schedule 20.03.2013
comment
Большое спасибо, это сработало. Не могли бы вы добавить в качестве ответа   -  person toby    schedule 20.03.2013
comment
это скорее совпадение, чем ответ, я добавлю награду, когда это будет возможно (48 часов), чтобы это было правильно объяснено, поскольку мне тоже любопытен ответ.   -  person methodofaction    schedule 21.03.2013


Ответы (1)


Пространственные данные задаются в заданной системе координат. Эта система координат используется для проецирования координат в определенную точку пространства, например на холст карты. Существуют буквально сотни различных систем координат для географических данных. Одна из причин этого заключается в том, что Земля плохо себя ведет в отношении проекций — это не идеальная сфера, и разные системы координат имеют тенденцию работать лучше всего в разных местах («лучше всего работать» означает, насколько они точны, если вы спроецировать точку на поверхность земли). Дополнительную информацию можно найти в Википедии.

Определение системы координат и проекции не обязательно должно быть сложным или трудоемким, но это необходимо сделать, прежде чем их можно будет использовать. Это причина, по которой вы не могли использовать свои данные «из коробки» — они используют систему координат, о которой D3 не знает (British National Grid). Таким образом, вы можете преобразовать его в то, о котором D3 знает, или внедрить вашу систему координат в D3. . Первый путь почти всегда проще.

Команда ogr2ogr output.shp input.shp -t_srs "+proj=longlat +ellps=WGS84 +no_defs +towgs84=0,0,0" преобразует входной шейп-файл (формат файла для географических данных) input.shp в формат Universal Transverse Mercator (UTM) WGS84 (именно это означает строка t_srs, подробнее в Википедии) в output.shp независимо от системы координат, используемой во входных данных.

Аргумент целевой системы координат, переданный t_srs, может быть явным определением (как в приведенном выше примере), ссылкой на известную систему координат или файл, содержащий определение. Список известных систем координат можно найти, например, здесь.

person Lars Kotthoff    schedule 24.03.2013