Определить bbox для WMS сервиса
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 27 янв 2017, 17:02
- Репутация: 0
Re: Определить bbox для WMS сервиса
Получается значит вписать этот охват в текущую картинку, как то трансформируя его или прибавляя "уши" по бокам или сверху/снизу. Но как сделать? Нужно соответствие размера картинки и размера охвата.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 27 янв 2017, 17:02
- Репутация: 0
Re: Определить bbox для WMS сервиса
Но нужно наоброт, взяв охват и вписать в текущие размеры с определенными трансформации bbox, ведь необязательно текущий охват будет соответствовать размером картинки.freeExec писал(а):Одну сторону картинки задаёшь, а вторую высчитываешь из пропорции.
Высота картинки = Длинна картинки * Высота Ббокс / Ширина Ббокс, вроде так.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Определить bbox для WMS сервиса
Если размер выходного изображения жёстко задан и не соответствует пропорциям охвата, то измените охват, чтобы они соответствовали. Я не понимаю, в чём проблема то? Предположим, что размер изображения задан - 320x240, а стороны охвата относятся как 1:1. Получается, чтобы вписать данный охват в указанные границы - его нужно привести к таким же пропорциям. Охват будем увеличивать, чтобы не потерялись нужные объекты.
Задавая различные приращения, например, dx - вычисляем значение dy, если получили dy < 0 (охват уменьшился), значит увеличиваем dx, до тех пор, пока dy не станет > 0. Определив приращения охвата, формируем его итоговое значение. Тут можно поступить по-разному: либо просто добавить приращения к соответствующим координатам, либо сделать так, чтобы центр охвата попал в центр изображения. Всё. Вот пример того как вписать квадратный охват в границы 320x240 - результат.
Код: Выделить всё
# a - ширина bbox
# b - высота bbox
# q - отношение ширины изображения к высоте (320:240)
# dx - приращение bbox-а по ширине
# dy - приращение bbox-а по высоте
(a+dx)/(d+dy) = q
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 17
- Зарегистрирован: 27 янв 2017, 17:02
- Репутация: 0
Re: Определить bbox для WMS сервиса
Все Круто, сделал! Пришлось немного попотеть для решения параметрического неравенства, Но вроде справился. Большое спасибоDenis Rykov писал(а): Я не понимаю, в чём проблема то?
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 12 гостей