Где я могу найти координаты, необходимые для рисования США в проекции Меркатора?

Итак, я пишу библиотеку Javascript, которая принимает координаты x, y и использует их для рисования карты США. Для этого мне нужно найти данные координат, необходимые для рисования каждого состояния. Эта карта в Википедии - отличный пример того, что мне нужно, потому что файл SVG содержит фигуры, составляющие каждое состояние, красиво помеченные: http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg

Еще у меня есть набор сайтов, которые мне нужно разместить на этой карте. Поскольку я знаю широту и долготу каждого участка, я могу использовать это, чтобы нарисовать каждый участок в соответствующем месте на карте. К сожалению, для того, чтобы это работало, моя карта должна использовать проекцию Меркатора, чтобы можно было легко сопоставить широту, долготу и координаты x, y в пикселях.

Карта Википедии, о которой я упоминал выше, использует другую проекцию, поэтому я не могу использовать ее для этой цели. Кто-нибудь знает, где я могу найти этот тип картографических данных в проекции Меркатора? Подойдет любой формат данных, если я могу программно получить координаты, которые используются для отрисовки каждого состояния, и определить, какие формы составляют каждое состояние.


person Eli Courtwright    schedule 19.02.2010    source источник
comment
Возможно, немного позже для вас, но, возможно, будет полезно для других, но если у вас есть данные в виде географических координат или в другой проекции, их можно преобразовать в вашу систему координат с помощью проекции Меркатора с помощью библиотеки JavaScript с открытым исходным кодом Proj4js.   -  person winwaed    schedule 23.11.2010


Ответы (9)


Кевин МакКерли создал несколько карты США, включая карту всех 50 состояния в проекции Меркатора. Если вы посмотрите на источник этой последней ссылки, он состоит из пар (широта, долгота) для контуров состояний, которые затем преобразуются в пары (x, y) для отображения в формате svg. Его разрешенное использование

Не стесняйтесь использовать эти файлы для собственного удовольствия, но я был бы признателен за то, что создал их. Наслаждаться...

Не знаю, достаточно ли этого для вас.

person A. Rex    schedule 22.02.2010
comment
Это было ТОЧНО то, что мне было нужно, спасибо. Я обязательно рассмотрю идеи шейп-файлов, представленные в других ответах в будущем, особенно когда такой файл недоступен. - person Eli Courtwright; 25.02.2010
comment
И тебе спасибо! Отличная находка. На карте мира Кевина были данные, которые я искал, в частности, контур 48 нижних штатов США. Мне пришлось просмотреть его SVG, чтобы найти то, что мне нужно. Это был список координат в формате LNG, LAT, и его легко было очистить в моем текстовом редакторе с помощью пары регулярных выражений для поиска / замены. - person Benny Jobigan; 09.08.2017

Это вопрос ГИС, и его будет нелегко решить, если вы не используете соответствующие инструменты.

  • Используйте QGIS, чтобы открыть Данные шейп-файла США

    ИЗМЕНИТЬ. В случае, если шейп-файлы, с которыми я связался, не совсем те, которые вы искали, Google поищите «шейп-файлы для США». Шейп-файлы на самом деле представляют собой группу геопространственных данных (а не только один файл).

  • Перепроецируйте слой в указанную проекцию

    РЕДАКТИРОВАТЬ, это может быть проблемой, но на всякий случай это не так. ogr (см. ниже) может перепроецировать. EPSG получены из пространственной привязки

  • Используйте ogr2ogr (cheatsheet) или плагин конвертера для преобразования ваших данных в KML. Это выведет ваши данные в формате Google maps / earth / human readable, в котором будут указаны координаты.

РЕДАКТИРОВАТЬ 2 Что вы используете для отображения онлайн-карт? рассматривали ли вы openlayers или API карт Google или mapserver

РЕДАКТИРОВАТЬ 3. Я протестировал свой метод на некоторых данных, которые у меня есть, и он работает. Вот пример вывода для одного многоугольника с использованием слоя «Состояние и эквивалент (текущий)»:

<Placemark>
      <name>American Samoa</name>
      <styleUrl>#PolyStyle00</styleUrl>
      <Snippet></Snippet>
      <MultiGeometry>
        <Polygon>
          <tessellate>1</tessellate>
          <extrude>0</extrude>
          <altitudeMode>clampToGround</altitudeMode>
          <outerBoundaryIs><LinearRing><coordinates> -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000100,0.000000 -0.001536,-0.000100,0.000000 -0.001536,-0.000100,0.000000 -0.001536,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000100,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001537,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000 -0.001536,-0.000099,0.000000</coordinates>
            </LinearRing>
          </outerBoundaryIs>
        </Polygon>
person dassouki    schedule 22.02.2010

Новая карта с нуля

Создать карту из бесплатного шейп-файла, который является предоставлено в довольно высоком разрешении Геологической службой США. Фактически, какой-то парень уже создал скрипт перевода шейп-файла-> svg это делает именно это за вас, но учтите, что проект был перемещен на GitHub .

К сожалению, шейп-файл находится в проекции NAD83, поэтому перед вами его нужно перепроецировать на Меркатор. запустить скрипт. Опять же, это уже решенная проблема, которую очень часто можно сделать в ГИС, и требуется только сделать один раз. Для этого я собираюсь предложить MapWindow, потому что это сделать тривиально.

Чтобы перепроецировать шейп-файлы в Меркатор, вам необходимо загрузить и установить MapWindow. Когда вы запустите программу, вы увидите меню Плагины в главном окне, и вам нужно будет включить плагин Инструменты ГИС. Затем вы щелкаете зеленый символ «плюс», чтобы добавить шейп-файл в MapWindow, и он должен отобразить США на экране.

Когда вы импортировали шейп-файл в MapWindow, вы перепроецируете его. Для этого вы нажимаете Инструменты ГИС -> Вектор -> Перепроецируйте шейп-файл, и должно открыться диалоговое окно.

Первый диалог, который вы видите, спрашивает, какую проекцию вы хотите:

  • Категория: Прогнозируемые системы координат
  • Группа: Мир
  • Имя: Меркатор (мир)

Второй может не появиться, но если он появится, он спросит о текущей проекции:

  • Категория: географические системы координат
  • Группа: Северная Америка
  • Название: Североамериканский датум 1983 г.

Этот процесс должен создать новый шейп-файл с именем statesp020_reprojected или что-то в этом роде.

Теперь вам нужно перевести файл shpaefile в SVG с помощью сценарий выше. Я не собираюсь писать инструкции по этому поводу, потому что я не пробовал раньше, но я уверен, что вы сможете понять это!

person hannson    schedule 25.02.2010

Здесь: http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm
вы можете загрузить shp файл с данными. Формат shape включает dbf с некоторыми атрибутами, включая координаты для каждого состояния.

Кроме того, вы можете использовать shp2text для извлечения всей информации.

Изменить: данные на карте указаны в датуме Северной Америки 1983 года, но вы можете использовать Таблица и формулы здесь для преобразования в Меркатор (UTM).

person Carlos Gutiérrez    schedule 22.02.2010

Вы смотрели продукцию NIMA? http://egsc.usgs.gov/nimamaps/ и https://www1.nga.mil/ProductsServices/Pages/default.aspx У них есть множество карт, форматы и т. д., и все это оплачивается нами, налогоплательщиками, поэтому многое доступно для общественности. Хорошая первая остановка для карт.

person DarenW    schedule 20.02.2010
comment
Спасибо за ссылки, но я не могу найти загружаемый набор координат, который можно было бы использовать для рендеринга карт. Я буду помнить об этом в будущем, но я не могу найти на этих веб-сайтах ничего близкого к тому, что мне нужно сейчас. - person Eli Courtwright; 22.02.2010

Я никогда не выполнял ту работу, о которой вы спрашиваете, но мне кажется, что эти данные инженерного корпуса армии США будут вам полезны:

http://crunch.tec.army.mil/software/corpscon/corpscon.html

person Pops    schedule 22.02.2010
comment
Возможно, я просто тупой, но эта утилита и ее файлы кажутся наиболее полезными для преобразования между несколькими разными форматами, ни один из которых мне не нужен. Таким образом, хотя эти файлы данных выглядят так, как будто они могут содержать нужную мне информацию, я не знаю, как получить ее каким-либо способом, который был бы полезен для меня, поскольку я нигде не вижу спецификации формата файла, и даже если У меня был такой, и мне все равно пришлось бы написать программу для анализа двоичного файла, чтобы извлечь нужные мне данные. - person Eli Courtwright; 22.02.2010

На сайте visokio.com есть загружаемые коллекции векторных карт: http://www.visokio.com/maps большинство из них поддерживают десятичные координаты широты и долготы.

однако похоже, что все они находятся в собственном формате, доступном для просмотра только с их собственным программным обеспечением. доступна пробная версия программного обеспечения.

hth.

изменить: при просмотре Википедии встречаются:

person widyakumara    schedule 22.02.2010
comment
Спасибо за предложение - это действительно хороший программный пакет, и данные карты действительно содержат то, что мне нужно (проекция Меркатора США с линиями состояний). Однако, похоже, нет никакого способа экспортировать координаты, которые они используют для рисования карты. Вы можете импортировать / экспортировать дополнительные элементы, которые вы рисуете на существующих картах, но не сами данные карты. А поскольку их формат является как двоичным, так и проприетарным, мне пришлось бы его перепроектировать, что было бы технически сложно и сомнительно законно. - person Eli Courtwright; 22.02.2010

Вот ответ stackoverflow с математикой JS от широты до меркатора

Преобразовать широту / долготу в координаты X / Y

загрузите один из этих шейп-файлов, перечисленных выше, а затем используйте OGR, чтобы выполнить ogr2ogr для преобразования в CSV

получить OGR здесь

http://www.gdal.org/ogr/index.html

Вот документ для OGR

http://www.gdal.org/ogr2ogr.html

Вот название выходных форматов

http://www.gdal.org/ogr/ogr_formats.html

Учитывая вашу репутацию, я знаю, что вы справитесь с этим, как только перейдете в CSV

person TheSteve0    schedule 24.02.2010

Indieprojector должен иметь возможность создавать нужные вам файлы. Это бесплатный онлайн-инструмент, который воспроизводит любой шейп-файл и снова экспортирует его в .svg. У них даже есть США, включенные в онлайн, так что вам не придется возиться с шейп-файлом.

person tordal    schedule 22.02.2010