Преобразование из широты / долготы в декартовы координаты с помощью файла мира и изображения карты - PullRequest
0 голосов
/ 13 мая 2010

У меня есть Java-апплет, который позволяет пользователям импортировать файлы jpeg и world из локальной системы. Затем пользователь может «щелкнуть» по рисованию линий на импортированном изображении. Каждая конечная точка каждой линии содержит набор значений X / Y и Lat / Long. XY является стандартным пространством координат Java, апплет использует вычисление аффинного преобразования с файлом мира, чтобы определить широту / долготу для каждой точки на холсте.

У меня есть требование, позволяющее пользователю вводить расстояние в текстовое поле и использовать клавишу со стрелкой для рисования линии в определенном направлении (вверх, вниз, влево, вправо) от одной выбранной точки на экране. Я знаю, как определить широту / долготу точки по широте / длине источника, расстоянию и азимуту.

Таким образом, пользователь вводит «100» в текстовое поле и нажимает клавишу со стрелкой вправо, линия должна быть проведена в 100 футах вправо от текущей выбранной точки.

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

Ответы [ 2 ]

0 голосов
/ 18 мая 2010

Полагаю, вы уверены, что ваши пользователи всегда загружают растровое изображение в проекции lat / lon wgs84? Потому что в этом случае вы можете установить фиксированное преобразование координат.

Если вы когда-нибудь захотите оцифровывать изображения из других источников с другими проекциями, вы можете взглянуть на открытую библиотеку геотурсов: http://www.geotools.org/

0 голосов
/ 14 мая 2010

tcarobruce, Ты прав. Мне нужен алгоритм обратного преобразования. Поскольку я использую Java, я смог заменить свой «самодельный» алгоритм преобразования объектом java.awt.AffineTransform, который имеет функцию обратного преобразования.

Кажется, это решило мою проблему.

Спасибо.

...