Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Работа с географическими картами


Автор: Artemon 23.9.2006, 18:47
Есть карта в польском формате.

Хочу отображать/масштабировать эту карту у себя в программе.

Но вот загвоздка, координаты в карте естественно даны в градусах долготы и широты.

Как преобразовать градусы в пиксели, а потом эти огромные числа вместить на экран (800x600)?




Автор: 586 23.9.2006, 19:27
Цитата(Artemon @  23.9.2006,  19:47 Найти цитируемый пост)
Как преобразовать градусы в пиксели

преобразуй градусы в километры, а километры в пиксели.

Автор: Artemon 24.9.2006, 08:22
Допустим я преобразовал градусы в пиксели.
У меня получилась точка:

(X = 10602517560.2357, Y = 14066733000)

Как мне эту точку впихнуть на экран 800x600?

Автор: drkot 24.9.2006, 14:00
Задайся точкой отсчета расположенной в центре видимой области (экрана) и считай координаты относительно этой точки + масштаб.

Автор: Timi 16.8.2007, 21:43
Народ, а каким алгоритмом полюзуются програмисты допустим ДубльГИСа.
(ДубльГИС - карта города с доми, на которые можно нажимать и смотреть ккие здания они содержат, маршруты автобусов смотреть и тогдалее) так как делаю саму карту

Автор: Earnest 17.8.2007, 10:18
Думаю, они не одним алгоритмом пользуются. smile 

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)