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

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

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

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

16
задан winwaed 22 November 2010 в 21:48
поделиться

9 ответов

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

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

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

5
ответ дан 30 November 2019 в 22:17
поделиться

Использование символа * отменяет назначение указателя, поэтому для доступа к полям можно использовать синтаксис точек. Если указатель не отменяется, для доступа к полям используется - >. Вы можете использовать все, что пожелаете.

-121--4166965-

Для обобщения изучите приоритет оператора C:

Здесь оператор "". "обрабатывается перед символом" * "- > отсюда необходимость в скобках

-121--4166963-

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

1
ответ дан 30 November 2019 в 22:17
поделиться

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

  • Используйте QGIS для открытия US Shapefile данных

    EDIT В случае, если шейп-файлы, на которые я дал ссылку, не совсем те, которые вы искали, то наберите в Google "US shapefiles". Shapefiles - это группа геопространственных данных (а не просто один файл).

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

    EDIT это может быть хлопотно, но на всякий случай, это не ogr (см. ниже) может перепроецировать. EPSG получены из пространственной привязки

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

EDIT 2. Что вы используете для отображения онлайн карт? Вы рассматривали openlayers или Google maps API или mapserver

EDIT 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>
5
ответ дан 30 November 2019 в 22:17
поделиться

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

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

1
ответ дан 30 November 2019 в 22:17
поделиться

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

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

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

2
ответ дан 30 November 2019 в 22:17
поделиться

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

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

hth.

edit: наткнулся на это при просмотре википедии:

1
ответ дан 30 November 2019 в 22:17
поделиться

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

1
ответ дан 30 November 2019 в 22:17
поделиться

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

Преобразовать широту / долготу в X / Y Co -ordinates

загрузите один из перечисленных выше шейп-файлов и затем используйте 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
ответ дан 30 November 2019 в 22:17
поделиться

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

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

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

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

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

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

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

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

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

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

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

3
ответ дан 30 November 2019 в 22:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: