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

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

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

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

Ответы [ 9 ]

5 голосов
/ 22 февраля 2010

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

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

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

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

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

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

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

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

<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>
5 голосов
/ 22 февраля 2010

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

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

Я не знаю, достаточно ли это хорошо для вас.

3 голосов
/ 25 февраля 2010

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

Легко создать карту из бесплатного шейп-файла , который предоставлен в довольно высоком разрешении USGS .На самом деле, какой-то парень уже создал сценарий перевода shapefile-> svg , который сделает это за вас, но обратите внимание, что проект был перемещен в GitHub .

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

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

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

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

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

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

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

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

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

2 голосов
/ 22 февраля 2010

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

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

Изменить: Данные на карте находятся в Североамериканском датуме 1983 , но вы можете использовать электронную таблицу и формулы здесь для преобразования в Mercator (UTM).

1 голос
/ 24 февраля 2010

Вот ответ переполнения стека с 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

1 голос
/ 22 февраля 2010

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

1 голос
/ 22 февраля 2010

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

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

НТН.

edit : сталкивайтесь с ними при просмотре википедии:

1 голос
/ 22 февраля 2010

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

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

1 голос
/ 20 февраля 2010

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

...