#algorithm #map #maps #coordinate-systems #coordinate-transformation
#алгоритм #словарь #Карты #системы координат #преобразование координат
Вопрос:
Я разрабатываю приложение, которое показывает вид карты. Наложенный при этом я рисую прямоугольник, центр которого всегда находится в центре экрана, следовательно, в центре карты. Я могу переместить угол прямоугольника, чтобы изменить его размер, чтобы выбрать область на карте.
У меня есть только координаты (широта / долгота) центра прямоугольника (и карты), высота и размер прямоугольника (пиксель или см).
Как я могу получить координаты углов прямоугольника??
Должен ли я вычислить масштаб между размером прямоугольника и высотой карты? а потом?
пожалуйста, объясните мне эту проблему 🙂
заранее спасибо
Ответ №1:
Я нашел решение. Я разработал приложение для BlackBerry 10, и в классе MapView есть несколько очень полезных методов.
Получение координат угла прямоугольника, нарисованного на mapview (например, для выбора области на карте)
используя
bb::platform::geo::Point windowToWorld (const QPoint amp;windowCoordinates)
вызовите windowToWorld
передачу координат пикселя углов относительно начала координат оси. Метод возвращает координаты (широта /долгота) точки на экране (x,y).
ПРЕДУПРЕЖДЕНИЕ: начало координат окна находится в верхнем левом углу окна MapView (не на экране), при этом положительные значения идут вправо (ось x) и вниз (ось y).
Если вы хотите выполнить обратное, используйте worldToWindow
метод, который преобразует мировые координаты (широту / долготу) в координаты окна (пиксели).
например: нарисуйте географическую точку на mapview