Таким образом, я пишу библиотеку Javascript, которая берет x, y координирует и использует их для рисования карты США. Чтобы сделать это, я должен считать координатные данные необходимыми потянуть каждое состояние. Эта карта на Википедию является ярким примером того, в чем я нуждаюсь, потому что файл SVG содержит формы, которые составляют каждое состояние, приятно маркированное: http://upload.wikimedia.org/wikipedia/commons/3/32/Blank_US_Map.svg
У меня также есть ряд сайтов, которые я должен поместить в эту карту. Так как я знаю широту и долготу каждого сайта, я могу использовать это для рисования каждого сайта в его соответствующем месте на карте. К сожалению, чтобы это работало мои потребности карты использовать Меркаторскую проекцию, так, чтобы могло быть легкое отображение lat, долго к x, y пиксельные координаты.
Карта Википедии я упомянул выше использования некоторую другую проекцию, таким образом, я не могу использовать ее с этой целью. Кто-либо знает, где я могу найти этот тип данных карты в Меркаторской проекции? Любой формат данных прекрасен, пока я могу программно достигнуть координаты, которые используются, чтобы потянуть каждое состояние и определить, какие формы включают каждое состояние.
Кевин МакКерли создал несколько карт Соединенных Штатов, включая карту всех 50 штатов в проекции Меркатора. Если вы посмотрите на источник последней ссылки, она состоит из пар (широта, долгота) для контуров штатов, которые затем преобразуются в пары (x, y) для отображения в формате svg. Его разрешено использовать следующим образом
Не стесняйтесь использовать эти файлы в своих собственных забавах, но я был бы признателен получить благодарность за создание их. Наслаждайтесь...
Я не знаю, достаточно ли это хорошо для вас.
Использование символа * отменяет назначение указателя, поэтому для доступа к полям можно использовать синтаксис точек. Если указатель не отменяется, для доступа к полям используется - >. Вы можете использовать все, что пожелаете.
-121--4166965-Для обобщения изучите приоритет оператора C:
Здесь оператор "". "обрабатывается перед символом" * "- > отсюда необходимость в скобках
-121--4166963-Вы рассматривали продукцию NIMA? http://egsc.usgs.gov/nimamaps/ и https://www1.nga.mil/ProductsServices/Pages/default.aspx Они имеют множество карт, форматов и т.д. и все оплаченные нами налогоплательщики, так что многое доступно для общественности. Хорошая первая остановка для карт.
Это вопрос из области GIS, и он не будет легко решен, если вы не используете соответствующие инструменты.
Используйте QGIS для открытия US Shapefile данных
EDIT В случае, если шейп-файлы, на которые я дал ссылку, не совсем те, которые вы искали, то наберите в Google "US shapefiles". Shapefiles - это группа геопространственных данных (а не просто один файл).
Перепроецируйте ваш слой в указанную проекцию
EDIT это может быть хлопотно, но на всякий случай, это не ogr (см. ниже) может перепроецировать. EPSG получены из пространственной привязки
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>
Я никогда не выполнял ту работу, о которой вы спрашиваете, но мне кажется, что эти данные инженерного корпуса армии США будут полезно для вас:
Здесь: http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm
вы можно скачать файл shp
с данными. Формат shape
включает в себя dbf
с некоторыми атрибутами, включая координаты для каждого состояния.
Кроме того, вы можете использовать shp2text для извлечения всей информации.
Изменить: Данные на карте находятся в Североамериканском датуме 1983 года , но вы можете использовать электронную таблицу и формулы здесь для преобразования в Меркатор. (UTM).
visokio.com имеет загружаемые коллекции векторных карт здесь: http://www.visokio.com/maps Большинство из них поддерживают десятичные координаты широты/долготы.
однако, похоже, что все они имеют собственный формат, доступный для просмотра только с помощью их собственного программного обеспечения. тем не менее, доступна пробная версия.
hth.
edit: наткнулся на это при просмотре википедии:
Indieprojector должен быть в состоянии сгенерировать нужные вам файлы. Это бесплатный онлайн-инструмент, который репроецирует любой шейп-файл и экспортирует его в .svg. У них даже есть штаты США, включенные в онлайн, так что вам не придется возиться с шейп-файлом.
Вот ответ 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
Новая карта с нуля
Легко создать карту из бесплатного shapefile, который предоставляется в довольно высоком разрешении USGS. На самом деле, один парень уже создал скрипт перевода shapefile->svg, который делает это за вас, но обратите внимание, что проект был перемещен на GitHub.
К сожалению, шейп-файл находится в проекции NAD83, поэтому перед запуском скрипта его нужно перепроецировать в Меркатор. Опять же, это уже решенная проблема и очень распространенная вещь в GIS'ах, которую нужно сделать только один раз. Для этого я собираюсь предложить MapWindow, потому что это тривиально сделать в нем.
Чтобы перепроецировать шейпфайлы в Меркатор, нужно скачать и установить MapWindow. Когда вы запустите программу, в главном окне вы увидите меню Plug-ins, и вам нужно будет включить плагин GIS Tools. Затем нажмите на зеленый символ "плюс", чтобы добавить шейпфайл в MapWindow, и он должен отобразить США на экране.
Когда вы импортировали шейп-файл в MapWindow, вам нужно его перепроецировать. Для этого нажмите на GIS Tools -> Vector -> Reproject a Shapefile и должно открыться диалоговое окно.
В первом диалоге вы увидите вопрос о том, какая проекция вам нужна:
Второй может не появиться, но если появится, то он спрашивает о текущей проекции:
Этот процесс должен создать новый шейпфайл под названием statesp020_reprojected или что-то вроде этого.
Теперь вам нужно перевести шейпфайл в SVG с помощью скрипта, описанного выше. Я не буду утруждать себя написанием инструкций по этому поводу, потому что я не пробовал это делать раньше, но я уверен, что вы сможете разобраться!