Где я могу найти координаты, необходимые для рисования США в проекции Меркатора?
поэтому я пишу библиотеку Javascript,которая принимает координаты x, y и использует их для рисования карты США. Для этого мне нужно найти координатные данные, необходимые для рисования каждого состояния. Эта карта в Википедии-отличный пример того, что мне нужно, потому что файл SVG содержит фигуры, которые составляют каждое состояние с красивой надписью:http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg
У меня тоже есть набор сайтов, которые нужно разместить на этой карте. Так как я знаю широту и долготу каждого участка, я могу использовать это, чтобы нарисовать каждый участок в соответствующем месте на карте. К сожалению,для этого моя карта должна использовать проекцию Меркатора, чтобы можно было легко отобразить координаты LAT,long to x, y pixel.
карта Википедии, о которой я упоминал выше, использует другую проекцию, поэтому я не могу использовать ее для этой цели. Кто-нибудь знает, где я могу найти этот тип картографических данных в проекции Меркатора? Любой формат данных хорошо, пока я могу программно получить координаты, которые используются для рисования каждого состояния и определить, какие формы составляют каждое состояние.
9 ответов
Кевин McCurley создал карты Соединенных Штатов, включая карту все 50 состояний, в проекции Меркатора. Если вы посмотрите на источник этой конечной ссылки, она состоит из пар (широта, долгота) для контуров состояний, которые затем преобразуются в пары (x, y) для отображения в формате svg. Его допустимое использование
Не стесняйтесь использовать эти файлы в собственное удовольствие, но я был бы признателен получение кредита за создание их. Наслаждаться...
Я не знаю, достаточно ли этого для вас.
это вопрос ГИС и не будет легко решен, если вы не используете соответствующие инструменты.
-
использовать в QGIS открыть данные Шейп-файла США
редактировать в случае, если шейп-файлы, с которыми я связан, не совсем те, которые вы искали, то Google для "US shapefiles". Шейп-файлы на самом деле являются группой геопространственных (а не только один файл).
-
перепроектировать слой в указанная проекция
редактировать это может быть хлопот, но на всякий случай, это не ogr (см. ниже) может перепроектировать. EPSG получены от пространственной привязки
- использовать ogr2ogr (cheatsheet) или плагин конвертера для преобразования ваших данных в KML. Это выведет ваши данные в формате Google maps/earth/human readable, который будет иметь координаты в них
изменить 2 Что вы используете для отображения онлайн-карт? вы подумали openlayers или Google maps API или 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>
новая карта с нуля
легко создать карту из свободного шейп - что это при условии в довольно высоком разрешении USGS. На самом деле, какой-то парень уже создал шейп-файл - > SVG Translation script что делает это для вас, но обратите внимание, что проект перенесен в GitHub.
к сожалению шейп в проекция nad83 в поэтому ему нужно быть перепроектированным в Mercator перед запуском сценария. Опять же, это уже проблема и очень распространенная вещь, чтобы сделать в ГИС и только нужно сделать один раз. Для этого я собираюсь предложить MapWindow потому что это тривиально, чтобы сделать это.
для перепроектирования шейп-файлов в Mercator необходимо скачать и установить MapWindow. При запуске программы вы можете увидеть Плагины меню в главном окне, и вы нужно будет включить ГИС плагин. Затем вы нажимаете зеленый символ "плюс", чтобы добавить шейп-файл в MapWindow, и он должен отображать США на экране.
когда вы импортировали шейп-файл в MapWindow, вы собираетесь его перепроектировать. Для этого вы нажимаете на ГИС ->вектор ->Перепроецирование Шейп и он должен открыть диалоговое окно.
первый диалог, который вы видите, спрашивает о какую проекцию вы хотите:
- категория: Системы Координат Проекции
- группа: мир
- название: Меркатора (мир)
второй может не отображаться, но если это так, он спрашивает о текущей проекции:
- категория: Географические Системы Координат
- группа: Север Америка!--44-->
- название: Североамериканские Данные 1983
этот процесс должен создать новый шейп-файл с именем statesp020_reprojected или что-то в этом роде.
вам нужно перевести файл shpaefile в SVG используя указанный выше сценарий. Я не собираюсь утруждать себя написанием инструкций на этом, потому что я не пробовал это раньше, но я уверен, что вы можете понять это!
здесь:http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm
вы можете скачать shp
файл с данными. The включает в себя dbf
С некоторыми атрибутами, включая координаты для каждого государства.
кроме того, вы можете использовать shp2text для извлечения всей информации.
Edit: Данные на карте находятся в североамериканские данные 1983, но вы можете использовать таблица и формулы здесь преобразовать в Меркатор (UTM).
вы смотрели на продукты NIMA? http://egsc.usgs.gov/nimamaps/ и https://www1.nga.mil/ProductsServices/Pages/default.aspx они имеют различные карты, форматы и т.д. и все оплачено американскими налогоплательщиками, так много доступно общественности. Хорошая первая остановка для карт.
Я никогда не делал ту работу, о которой вы спрашиваете, но мне кажется, что эти данные из Инженерного корпуса армии США будут полезны для вас:
visokio.com имеет загружаемые коллекции векторных карт здесь:http://www.visokio.com/maps большинство из них поддерживают десятичные координаты широты/долготы.
однако похоже, что все они находятся в формате propetiary, видимом только с их собственным программным обеспечением. пробное программное обеспечение доступно, tho.
hth.
редактировать: попадаются эти при просмотре вокруг Википедия:
вот ответ stackoverflow с математикой JS от lat long до mercator
преобразовать Lat / Longs в X / Y координаты
загрузите один из этих шейп-файлов, перечисленных выше, а затем используйте OGR для преобразования ogr2ogr в CSV
получить OGR здесь
http://www.gdal.org/ogr/index.html
вот документ для Огр!--1-->
http://www.gdal.org/ogr2ogr.html
вот название выходных форматов
http://www.gdal.org/ogr/ogr_formats.html
учитывая вашу репутацию, я знаю, что вы можете справиться с этим, как только вы получите его в CSV
Indieprojector должен быть в состоянии генерировать файлы, которые вам нужны. Это бесплатный онлайн инструмент, который reprojects любой шейп и экспортирует его снова .формат SVG. У них даже есть штаты США, включенные онлайн, поэтому вам не нужно будет возиться с Шейп-файлом.