В каких системах координат настоящие круги выглядят круглыми?

10

Некоторое время я занимался разработкой в ​​Картах Google и переключаюсь на OpenLayers, но застрял в одной точке: я рисую векторы, которые в основном имеют круглую форму, но также содержат некоторую пользовательскую геометрию, поэтому я не могу использовать createRegularPolygon. Я создаю массив точек и отправляю его объекту OpenLayers.Layer.Vector. Это прекрасно работает, но получающиеся «круги» только вокруг экватора, а не в более высоких широтах. Они раздавлены примерно на столько же, сколько базовая карта в более высоких широтах, что, кажется, имеет смысл. Если я использую Google в качестве базового слоя, то они будут правильной формы на всех широтах, но я создаю автономное мобильное решение, так что это не сработает.

Что я использую для базового слоя (или какие параметры нужно установить), чтобы моя геометрия оставалась круглой на всех широтах без использования Google или онлайн-карт?

kschaos
источник

Ответы:

12

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

введите описание изображения здесь

(Источник: блог картографического центра Esri )

Вы захотите использовать Web Mercator EPSG: 900913 вместо WGS84 EPSG: 4326 для идеальных кругов

Больше на эту тему и пример того, как круги выглядят в Mercator: индикатриса Тиссо помогает проиллюстрировать искажение проекции карты

Чтобы заставить открытые слои использовать Mercator, вы должны установить опцию sphericalMercator в вашем базовом слое.

sphericalMercator: true,
Подземье
источник
Спасибо! это была именно та информация, которая мне была нужна. Я думал, что работаю со слоем, который был в EPSG: 900913, но это не так. Я также должен был убедиться, что все преобразования идут от EPSG: 4326 к EPSG: 900913, и это работает отлично. Теперь мне просто нужно выяснить, как не показывать значки с разбитым изображением, когда он пытается загрузить плитки карты в автономном режиме.
Кшаос
14

Не существует карты всей Земли, на которой все (истинные, сферические) круги остаются действительно круглыми. Однако есть способы картирования Земли, в которых почти все достаточно маленькие круги имеют круглую форму. Они основаны на конформных проекциях . По определению, изменения, которые конформная проекция вносит в расстояния внутри небольших областей, имеют только два типа: равномерное растяжение и вращение. Очевидно, что эти изменения не делают круги менее круглыми.

Август эпициклоидальный

Карта Земли с августовской эпициклоидальной проекцией . Большинство кругов на этой карте будут выглядеть действительно круглыми.

Обычно используемые конформные проекции - это Mercator (цилиндрическая проекция), Stereographic (азимутальная проекция) и конформная коническая проекция Ламберта (очевидно, коническая проекция). Они охватывают три основных семейства проекций, предоставляя вам гибкость при выборе конкретного «взгляда» на сетку меридианов и линий широты. Дополнительные опции, которые могут быть доступны в некоторой GISes, включают Миллер сплющенный стереографические , Литтры , биполярное Oblique Конических Равноугольный , Лагранж , Eisenlohr , Август эпициклоидальный , Guyou , Пирс квинкунциальный, GS50 , различные Adams проекции и Ли . (Источник: Snyder & Voxland, альбом картографических проекций. Профессиональный документ USGS 1453.) Последние два показывают множество возможных конформных проекций, которые можно создать, и показывают, как конформные проекции не являются действительно «сохраняющими форму»: проекции Адамса конформно отображают полушарие в квадрат, и проекция Ли помещает его в треугольник. Фактически, теорема Римана о комплексном анализе показывает, что вы можете конформно отобразить полусферу в любой многоугольник!

OpenLayers использует библиотеку проекций Proj4js . Исходный код для проекций находится в папке / proj4js / lib / projCode /. Конформные проекции, включенные в последнюю версию (1.0.2), представляют собой Mercator , два поперечных меркатора , два наклонных меркатора («Hotine» и «Swiss Oblique»), конформный конус Ламберта и стереографический .

Если ваше приложение не предназначено для работы по всему миру, изучите и изучите эти варианты, чтобы определить, какой из них лучше всего подходит для вашего региона . Все это может быть легко перецентрировано и изменено, чтобы минимизировать общее искажение (не только формы, но также областей и расстояний) в пределах определенной области. Стандартное решение по всему миру - это вариант Mercator, популярный на картах Google.

Whuber
источник
Подробнее об этом ответе можно узнать здесь: pasda.psu.edu/help/projection.asp
DPSSpatial
@mapBaker Спасибо, что предложили эту ссылку. К сожалению, ее характеристика конформной проекции неверна: «Конформная проекция поддерживает такие формы, как прямоугольники». Это верно только для бесконечно малых фигур, но не для фигур конечного размера.
whuber
Вы знаете кого-нибудь в БП, который мог бы помочь скорректировать этот документ?
DPSSpatial
@mapBaker К сожалению нет; У меня нет текущих контактов там. Я даже не уверен, что они захотят это отрегулировать. Между правильностью и педантизмом есть тонкая грань. Я полагаю, что они, возможно, оценили простоту изложения и - для их конкретной аудитории - не хотели различать сохранение геометрических свойств в больших и малых масштабах. Я тоже ценю простоту изложения, но в этом ответе постарался найти более точный компромисс между простотой и правильностью, выделив достаточно маленькие кружки.
whuber
2

Ну, очевидно, у вас будут проблемы, если вы используете базовую карту в проекции EPSG: 4326. Вам нужна сферическая проекция Меркатора, как вы заметили, Google Maps и других коммерческих картографических провайдеров. Идите дальше и прочитайте это, чтобы лучше понять эту проблему.

Для вас автономное мобильное решение OpenStreetMap , вероятно, будет хорошим решением.

igorti
источник