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

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

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

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

Ответы

Ответ 1

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

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

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

Ответ 2

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

  • Используйте QGIS, чтобы открыть US Данные файла Shapefile

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

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

    EDIT, это может быть проблемой, но на всякий случай, это не 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>

Ответ 3

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

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

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

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

Когда вы импортируете шейп файл в MapWindow, вы собираетесь его перепрограммировать. Для этого вы нажимаете на GIS Tools → Vector → Reproject Shapefile и открываете диалоговое окно.

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

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

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

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

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

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

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

НТН.

изменить: встретите их при просмотре википедии:

Ответ 8

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

Ответ 9

Вот ответ stackoverflow с математикой JS от lat long to mercator

Преобразование Lat/Longs в координаты 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