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

StackOverflow https://stackoverflow.com/questions/2298769

Вопрос

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

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

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

Это было полезно?

Решение

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

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

Я не знаю, достаточно ли это для тебя.

Другие советы

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

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

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

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

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

  • Использовать ogr2ogr (шпаргалка) или плагин конвертера для преобразования ваших данных в KML.Это выведет ваши данные в удобочитаемом формате Google Maps/Earth/Human, в котором будут содержаться координаты.

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

РЕДАКТИРОВАТЬ 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>

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

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

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

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

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

В первом диалоговом окне, которое вы видите, спрашивается, какую проекцию вы хотите:

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

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

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

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

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

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

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

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

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

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

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

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

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

хт.

редактировать:наткнулся на них, просматривая Википедию:

Вот ответ 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.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top