Как получить данные север/юг в картах OSM?

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
doox911
Участник
Сообщения: 54
Зарегистрирован: 14 мар 2013, 18:13
Репутация: 0

Как получить данные север/юг в картах OSM?

Сообщение doox911 » 13 янв 2014, 17:36

Доброго времени суток.

Уважаемые знатоки! Как получить информацию о том где север а где юг карты? И как их обработать, точнее как, что называется и какие параметры имеет?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Как получить данные север/юг в картах OSM?

Сообщение ericsson » 13 янв 2014, 19:03

Вы это вообще о чем и для чего спрашиваете?

Я уже писал как-то о подобных вопросах: пока вы не ориентируетесь в теме свободно, чтобы задавать теоретические вопросы правильно, не пытайтесь этого делать, выдрав вопрос из практического контекста и не сказав ни слова о том, какую практическую цель вы преследуете.
Например: "я показываю карту OSM с сервера такого-то в browser-е средствами leaflet, как мне показать на экране стрелку на север?" - звучит куда более понятно, и не требует для формулировки никаких специальных знаний, а то что вы спросили, звучит бессмысленно.

У данных не бывает севера и юга.
Север и юг могут быть у отображенного фрагмента данных. При этом важно знать, в какой проекции этот фрагмент отображен, а еще, возможно, о каком конкретно месте идет речь. Потому что если вы показываете данные в географической проекции, то север всегда вверху. С проекцией Меркатора - то же самое. А если в UTM или в проекции Гаусса-Крюгера, то север будет вверху только на центральном меридиане зоны, а по мере удаления от него, линия юг-север будет отклоняться вправо при удалении на запад и наоборот. И тем быстрее отклоняться, чем выше широта.

doox911
Участник
Сообщения: 54
Зарегистрирован: 14 мар 2013, 18:13
Репутация: 0

Re: Как получить данные север/юг в картах OSM?

Сообщение doox911 » 13 янв 2014, 19:46

ericsson писал(а):Вы это вообще о чем и для чего спрашиваете?

Я уже писал как-то о подобных вопросах: пока вы не ориентируетесь в теме свободно, чтобы задавать теоретические вопросы правильно, не пытайтесь этого делать, выдрав вопрос из практического контекста и не сказав ни слова о том, какую практическую цель вы преследуете.
Например: "я показываю карту OSM с сервера такого-то в browser-е средствами leaflet, как мне показать на экране стрелку на север?" - звучит куда более понятно, и не требует для формулировки никаких специальных знаний, а то что вы спросили, звучит бессмысленно.

У данных не бывает севера и юга.
Север и юг могут быть у отображенного фрагмента данных. При этом важно знать, в какой проекции этот фрагмент отображен, а еще, возможно, о каком конкретно месте идет речь. Потому что если вы показываете данные в географической проекции, то север всегда вверху. С проекцией Меркатора - то же самое. А если в UTM или в проекции Гаусса-Крюгера, то север будет вверху только на центральном меридиане зоны, а по мере удаления от него, линия юг-север будет отклоняться вправо при удалении на запад и наоборот. И тем быстрее отклоняться, чем выше широта.
Так, ладно. Опишу подробнее.

Насколько, Я осведомлён карта OSM(Open Street Map), отображается в проекции Меркатор (предполагаю). Отображается карта с помощью API leaflet.

Я имел в виду, не направленные данные (север/юг). Я имел в есть ли параметр или константа в картах или в api, в которой хранится или описывается в какой стороне юг, а в какой север. Это мне необходимо для следующей цели:

Имея две точки, с заданными координатами (пример координат точки на карте: [55.00568744289998,37.83303327379225]), мне необходимо вычислить РУМБ. Румб можно определить зная где север .Читать, что такое румб.

По поводу грамотности в вопросах. Подскажите ресурсы, дабы избавить ваши глаза от глупо поставленных вопросов. Просто на гис лабе описывается не для новичков. А как минимум для любителей. Или скажите ступени познания, например:

Чтобы водить машину, необходимо получить права. Чтобы получить права необходимо выучить пдд и научиться управлять авто. В этом духе. Спасибо.

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Как получить данные север/юг в картах OSM?

Сообщение ericsson » 13 янв 2014, 20:32

Вы, очевидно, не поняли, что я написал. Про грамотность речь не шла. Шла про банальную внятность формулировки.

Я возражал не против вопросов, поставленных неквалифицированно (это было бы с моей стороны глупостью - вы же сюда за информацией пришли, а не наоборот), а против попыток сформулировать вопрос так, будто вы уже обладаете должной квалификацией, вместо того, чтобы просто описать свою задачу простыми словами. Для этого нужно не "ресурсы" читать, а просто говорить о том, что вы хотите сделать. В переформулированном варианте у вас это получилось и без всяких "ресурсов".

Продолжая аналогию с автомобилем и правами - вы, придя на первое занятие по вождению, вместо того, чтобы спросить "а когда мне начинать крутить руль, подъезжая к повороту", спрашиваете "какую величину вектора ускорения я должен создать для искривления траектории по данному радиусу". То есть на этот (слишком сложный) вопрос тоже существует ответ, но он далек от практики и ничего вам не даст, чтобы научиться правильно поворачивать.

Теперь по содержанию.

Карты OSM в виде тайлов действительно, как правило, отображаются в проекции Меркатора (у которой север всегда вверху).

Если вам нужно вычислить азимут или румб (как производное от него значение), то ознакомьтесь вот с этим, например http://www.movable-type.co.uk/scripts/latlong.html (раздел Bearing). Надеюсь, что вы сами разберетесь, как перейти от азимута к румбу.

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

Вам для этого никакой опорный вектор на север не нужен. Тем более - со стороны API Leaflet.

doox911
Участник
Сообщения: 54
Зарегистрирован: 14 мар 2013, 18:13
Репутация: 0

Re: Как получить данные север/юг в картах OSM?

Сообщение doox911 » 13 янв 2014, 21:13

ericsson писал(а):Вы, очевидно, не поняли, что я написал. Про грамотность речь не шла. Шла про банальную внятность формулировки.

Я возражал не против вопросов, поставленных неквалифицированно (это было бы с моей стороны глупостью - вы же сюда за информацией пришли, а не наоборот), а против попыток сформулировать вопрос так, будто вы уже обладаете должной квалификацией, вместо того, чтобы просто описать свою задачу простыми словами. Для этого нужно не "ресурсы" читать, а просто говорить о том, что вы хотите сделать. В переформулированном варианте у вас это получилось и без всяких "ресурсов".

Продолжая аналогию с автомобилем и правами - вы, придя на первое занятие по вождению, вместо того, чтобы спросить "а когда мне начинать крутить руль, подъезжая к повороту", спрашиваете "какую величину вектора ускорения я должен создать для искривления траектории по данному радиусу". То есть на этот (слишком сложный) вопрос тоже существует ответ, но он далек от практики и ничего вам не даст, чтобы научиться правильно поворачивать.

Теперь по содержанию.

Карты OSM в виде тайлов действительно, как правило, отображаются в проекции Меркатора (у которой север всегда вверху).

Если вам нужно вычислить азимут или румб (как производное от него значение), то ознакомьтесь вот с этим, например http://www.movable-type.co.uk/scripts/latlong.html (раздел Bearing). Надеюсь, что вы сами разберетесь, как перейти от азимута к румбу.

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

Вам для этого никакой опорный вектор на север не нужен. Тем более - со стороны API Leaflet.
Спасибо за ответ. А какое расстояние будет существенным? Мне кажется, что 100 км не существенно для меркатора.
По поводу OSM: Вы сказали, что как правило, так как мне узнать исключения из правил? Эти параметры устанавливаются в API для отображения карт?

ericsson
Гуру
Сообщения: 3321
Зарегистрирован: 27 июл 2009, 19:26
Репутация: 748
Ваше звание: Вредитель полей

Re: Как получить данные север/юг в картах OSM?

Сообщение ericsson » 13 янв 2014, 21:58

"Кажется" - плохой критерий. Взяли бы какую-нибудь ГИС, начертили бы, увидели :)
Эксперимент: берем где-нибудь в средней полосе России две точки на расстоянии 100 км. В проекции UTM чертим между ними прямую. Делим ее точками через километр, чтобы при перепроецировании отрезки оставались на своих местах. Перепроецируем картинку в Меркатора. Глазом кривизну линии не видно. Но если теперь провести линию в новой проекции, то в центре линии будет видно, что первая от нее отходит дугой, метров на 200. Так что хотя радиус кривизны большой, но все равно он заметен.

Проекция карты определяется тем, в какой она проекции сделана и в каком формате ее выдает сервер. Скажем, если речь о формате "OSM Tiles", то это по стандарту соответствует определенной нумерации тайлов и системе координат Web Mercator. То есть обычно система координат карты определяется поставщиком данных и где-то написана в явном виде, либо подразумевается.

В случае если речь идет о WMS-серверах, история другая - при запросе Capabilities, сервер выдает в ответе EPSG-коды допустимых систем координат, в которых он может отдать данные. Правда, иногда не все из них работают, потому что серверы настраивают кривыми руками, но человеческий фактор непредсказуем.

Когда вы подключаете карту для показа в каком-то api, например, в leaflet, систему координат может быть нужно указать, хотя и не всегда. Например, существуют отдельные модули для подключения сервисов (скажем, Bing для Leaflet) или отдельные типы слоев для них, которые содержат указание верной системы координат внутри себя и в явном виде указывать ничего не нужно.

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость