Как получить данные север/юг в картах OSM?
-
- Участник
- Сообщения: 54
- Зарегистрирован: 14 мар 2013, 18:13
- Репутация: 0
Как получить данные север/юг в картах OSM?
Доброго времени суток.
Уважаемые знатоки! Как получить информацию о том где север а где юг карты? И как их обработать, точнее как, что называется и какие параметры имеет?
Уважаемые знатоки! Как получить информацию о том где север а где юг карты? И как их обработать, точнее как, что называется и какие параметры имеет?
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Как получить данные север/юг в картах OSM?
Вы это вообще о чем и для чего спрашиваете?
Я уже писал как-то о подобных вопросах: пока вы не ориентируетесь в теме свободно, чтобы задавать теоретические вопросы правильно, не пытайтесь этого делать, выдрав вопрос из практического контекста и не сказав ни слова о том, какую практическую цель вы преследуете.
Например: "я показываю карту OSM с сервера такого-то в browser-е средствами leaflet, как мне показать на экране стрелку на север?" - звучит куда более понятно, и не требует для формулировки никаких специальных знаний, а то что вы спросили, звучит бессмысленно.
У данных не бывает севера и юга.
Север и юг могут быть у отображенного фрагмента данных. При этом важно знать, в какой проекции этот фрагмент отображен, а еще, возможно, о каком конкретно месте идет речь. Потому что если вы показываете данные в географической проекции, то север всегда вверху. С проекцией Меркатора - то же самое. А если в UTM или в проекции Гаусса-Крюгера, то север будет вверху только на центральном меридиане зоны, а по мере удаления от него, линия юг-север будет отклоняться вправо при удалении на запад и наоборот. И тем быстрее отклоняться, чем выше широта.
Я уже писал как-то о подобных вопросах: пока вы не ориентируетесь в теме свободно, чтобы задавать теоретические вопросы правильно, не пытайтесь этого делать, выдрав вопрос из практического контекста и не сказав ни слова о том, какую практическую цель вы преследуете.
Например: "я показываю карту OSM с сервера такого-то в browser-е средствами leaflet, как мне показать на экране стрелку на север?" - звучит куда более понятно, и не требует для формулировки никаких специальных знаний, а то что вы спросили, звучит бессмысленно.
У данных не бывает севера и юга.
Север и юг могут быть у отображенного фрагмента данных. При этом важно знать, в какой проекции этот фрагмент отображен, а еще, возможно, о каком конкретно месте идет речь. Потому что если вы показываете данные в географической проекции, то север всегда вверху. С проекцией Меркатора - то же самое. А если в UTM или в проекции Гаусса-Крюгера, то север будет вверху только на центральном меридиане зоны, а по мере удаления от него, линия юг-север будет отклоняться вправо при удалении на запад и наоборот. И тем быстрее отклоняться, чем выше широта.
-
- Участник
- Сообщения: 54
- Зарегистрирован: 14 мар 2013, 18:13
- Репутация: 0
Re: Как получить данные север/юг в картах OSM?
Так, ладно. Опишу подробнее.ericsson писал(а):Вы это вообще о чем и для чего спрашиваете?
Я уже писал как-то о подобных вопросах: пока вы не ориентируетесь в теме свободно, чтобы задавать теоретические вопросы правильно, не пытайтесь этого делать, выдрав вопрос из практического контекста и не сказав ни слова о том, какую практическую цель вы преследуете.
Например: "я показываю карту OSM с сервера такого-то в browser-е средствами leaflet, как мне показать на экране стрелку на север?" - звучит куда более понятно, и не требует для формулировки никаких специальных знаний, а то что вы спросили, звучит бессмысленно.
У данных не бывает севера и юга.
Север и юг могут быть у отображенного фрагмента данных. При этом важно знать, в какой проекции этот фрагмент отображен, а еще, возможно, о каком конкретно месте идет речь. Потому что если вы показываете данные в географической проекции, то север всегда вверху. С проекцией Меркатора - то же самое. А если в UTM или в проекции Гаусса-Крюгера, то север будет вверху только на центральном меридиане зоны, а по мере удаления от него, линия юг-север будет отклоняться вправо при удалении на запад и наоборот. И тем быстрее отклоняться, чем выше широта.
Насколько, Я осведомлён карта OSM(Open Street Map), отображается в проекции Меркатор (предполагаю). Отображается карта с помощью API leaflet.
Я имел в виду, не направленные данные (север/юг). Я имел в есть ли параметр или константа в картах или в api, в которой хранится или описывается в какой стороне юг, а в какой север. Это мне необходимо для следующей цели:
Имея две точки, с заданными координатами (пример координат точки на карте: [55.00568744289998,37.83303327379225]), мне необходимо вычислить РУМБ. Румб можно определить зная где север .Читать, что такое румб.
По поводу грамотности в вопросах. Подскажите ресурсы, дабы избавить ваши глаза от глупо поставленных вопросов. Просто на гис лабе описывается не для новичков. А как минимум для любителей. Или скажите ступени познания, например:
Чтобы водить машину, необходимо получить права. Чтобы получить права необходимо выучить пдд и научиться управлять авто. В этом духе. Спасибо.
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Как получить данные север/юг в картах OSM?
Вы, очевидно, не поняли, что я написал. Про грамотность речь не шла. Шла про банальную внятность формулировки.
Я возражал не против вопросов, поставленных неквалифицированно (это было бы с моей стороны глупостью - вы же сюда за информацией пришли, а не наоборот), а против попыток сформулировать вопрос так, будто вы уже обладаете должной квалификацией, вместо того, чтобы просто описать свою задачу простыми словами. Для этого нужно не "ресурсы" читать, а просто говорить о том, что вы хотите сделать. В переформулированном варианте у вас это получилось и без всяких "ресурсов".
Продолжая аналогию с автомобилем и правами - вы, придя на первое занятие по вождению, вместо того, чтобы спросить "а когда мне начинать крутить руль, подъезжая к повороту", спрашиваете "какую величину вектора ускорения я должен создать для искривления траектории по данному радиусу". То есть на этот (слишком сложный) вопрос тоже существует ответ, но он далек от практики и ничего вам не даст, чтобы научиться правильно поворачивать.
Теперь по содержанию.
Карты OSM в виде тайлов действительно, как правило, отображаются в проекции Меркатора (у которой север всегда вверху).
Если вам нужно вычислить азимут или румб (как производное от него значение), то ознакомьтесь вот с этим, например http://www.movable-type.co.uk/scripts/latlong.html (раздел Bearing). Надеюсь, что вы сами разберетесь, как перейти от азимута к румбу.
Только имейте в виду, что если вы захотите линию между точками нарисовать еще, а расстояние между ними будет существенным, то это выльется в дополнительную задачу, т.к. прямая на сфере в проекции Меркатора прямой уже не будет.
Вам для этого никакой опорный вектор на север не нужен. Тем более - со стороны API Leaflet.
Я возражал не против вопросов, поставленных неквалифицированно (это было бы с моей стороны глупостью - вы же сюда за информацией пришли, а не наоборот), а против попыток сформулировать вопрос так, будто вы уже обладаете должной квалификацией, вместо того, чтобы просто описать свою задачу простыми словами. Для этого нужно не "ресурсы" читать, а просто говорить о том, что вы хотите сделать. В переформулированном варианте у вас это получилось и без всяких "ресурсов".
Продолжая аналогию с автомобилем и правами - вы, придя на первое занятие по вождению, вместо того, чтобы спросить "а когда мне начинать крутить руль, подъезжая к повороту", спрашиваете "какую величину вектора ускорения я должен создать для искривления траектории по данному радиусу". То есть на этот (слишком сложный) вопрос тоже существует ответ, но он далек от практики и ничего вам не даст, чтобы научиться правильно поворачивать.
Теперь по содержанию.
Карты OSM в виде тайлов действительно, как правило, отображаются в проекции Меркатора (у которой север всегда вверху).
Если вам нужно вычислить азимут или румб (как производное от него значение), то ознакомьтесь вот с этим, например http://www.movable-type.co.uk/scripts/latlong.html (раздел Bearing). Надеюсь, что вы сами разберетесь, как перейти от азимута к румбу.
Только имейте в виду, что если вы захотите линию между точками нарисовать еще, а расстояние между ними будет существенным, то это выльется в дополнительную задачу, т.к. прямая на сфере в проекции Меркатора прямой уже не будет.
Вам для этого никакой опорный вектор на север не нужен. Тем более - со стороны API Leaflet.
-
- Участник
- Сообщения: 54
- Зарегистрирован: 14 мар 2013, 18:13
- Репутация: 0
Re: Как получить данные север/юг в картах OSM?
Спасибо за ответ. А какое расстояние будет существенным? Мне кажется, что 100 км не существенно для меркатора.ericsson писал(а):Вы, очевидно, не поняли, что я написал. Про грамотность речь не шла. Шла про банальную внятность формулировки.
Я возражал не против вопросов, поставленных неквалифицированно (это было бы с моей стороны глупостью - вы же сюда за информацией пришли, а не наоборот), а против попыток сформулировать вопрос так, будто вы уже обладаете должной квалификацией, вместо того, чтобы просто описать свою задачу простыми словами. Для этого нужно не "ресурсы" читать, а просто говорить о том, что вы хотите сделать. В переформулированном варианте у вас это получилось и без всяких "ресурсов".
Продолжая аналогию с автомобилем и правами - вы, придя на первое занятие по вождению, вместо того, чтобы спросить "а когда мне начинать крутить руль, подъезжая к повороту", спрашиваете "какую величину вектора ускорения я должен создать для искривления траектории по данному радиусу". То есть на этот (слишком сложный) вопрос тоже существует ответ, но он далек от практики и ничего вам не даст, чтобы научиться правильно поворачивать.
Теперь по содержанию.
Карты OSM в виде тайлов действительно, как правило, отображаются в проекции Меркатора (у которой север всегда вверху).
Если вам нужно вычислить азимут или румб (как производное от него значение), то ознакомьтесь вот с этим, например http://www.movable-type.co.uk/scripts/latlong.html (раздел Bearing). Надеюсь, что вы сами разберетесь, как перейти от азимута к румбу.
Только имейте в виду, что если вы захотите линию между точками нарисовать еще, а расстояние между ними будет существенным, то это выльется в дополнительную задачу, т.к. прямая на сфере в проекции Меркатора прямой уже не будет.
Вам для этого никакой опорный вектор на север не нужен. Тем более - со стороны API Leaflet.
По поводу OSM: Вы сказали, что как правило, так как мне узнать исключения из правил? Эти параметры устанавливаются в API для отображения карт?
-
- Гуру
- Сообщения: 3321
- Зарегистрирован: 27 июл 2009, 19:26
- Репутация: 748
- Ваше звание: Вредитель полей
Re: Как получить данные север/юг в картах OSM?
"Кажется" - плохой критерий. Взяли бы какую-нибудь ГИС, начертили бы, увидели 
Эксперимент: берем где-нибудь в средней полосе России две точки на расстоянии 100 км. В проекции UTM чертим между ними прямую. Делим ее точками через километр, чтобы при перепроецировании отрезки оставались на своих местах. Перепроецируем картинку в Меркатора. Глазом кривизну линии не видно. Но если теперь провести линию в новой проекции, то в центре линии будет видно, что первая от нее отходит дугой, метров на 200. Так что хотя радиус кривизны большой, но все равно он заметен.
Проекция карты определяется тем, в какой она проекции сделана и в каком формате ее выдает сервер. Скажем, если речь о формате "OSM Tiles", то это по стандарту соответствует определенной нумерации тайлов и системе координат Web Mercator. То есть обычно система координат карты определяется поставщиком данных и где-то написана в явном виде, либо подразумевается.
В случае если речь идет о WMS-серверах, история другая - при запросе Capabilities, сервер выдает в ответе EPSG-коды допустимых систем координат, в которых он может отдать данные. Правда, иногда не все из них работают, потому что серверы настраивают кривыми руками, но человеческий фактор непредсказуем.
Когда вы подключаете карту для показа в каком-то api, например, в leaflet, систему координат может быть нужно указать, хотя и не всегда. Например, существуют отдельные модули для подключения сервисов (скажем, Bing для Leaflet) или отдельные типы слоев для них, которые содержат указание верной системы координат внутри себя и в явном виде указывать ничего не нужно.

Эксперимент: берем где-нибудь в средней полосе России две точки на расстоянии 100 км. В проекции UTM чертим между ними прямую. Делим ее точками через километр, чтобы при перепроецировании отрезки оставались на своих местах. Перепроецируем картинку в Меркатора. Глазом кривизну линии не видно. Но если теперь провести линию в новой проекции, то в центре линии будет видно, что первая от нее отходит дугой, метров на 200. Так что хотя радиус кривизны большой, но все равно он заметен.
Проекция карты определяется тем, в какой она проекции сделана и в каком формате ее выдает сервер. Скажем, если речь о формате "OSM Tiles", то это по стандарту соответствует определенной нумерации тайлов и системе координат Web Mercator. То есть обычно система координат карты определяется поставщиком данных и где-то написана в явном виде, либо подразумевается.
В случае если речь идет о WMS-серверах, история другая - при запросе Capabilities, сервер выдает в ответе EPSG-коды допустимых систем координат, в которых он может отдать данные. Правда, иногда не все из них работают, потому что серверы настраивают кривыми руками, но человеческий фактор непредсказуем.
Когда вы подключаете карту для показа в каком-то api, например, в leaflet, систему координат может быть нужно указать, хотя и не всегда. Например, существуют отдельные модули для подключения сервисов (скажем, Bing для Leaflet) или отдельные типы слоев для них, которые содержат указание верной системы координат внутри себя и в явном виде указывать ничего не нужно.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость