API для пересчета координат (geotools, opengis)
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 30 сен 2013, 09:42
- Репутация: 0
API для пересчета координат (geotools, opengis)
Добрый день!
Если ли у кого нибудь опыт использования Java библиотек opengis (geotools)? Поделитесь, пожалуйста!
Конкретно интересует - возможно ли с помощью этих библиотек производить конвертацию прямоугольных координат в/из географических для разных проекций (в частности для Yandex, Google - WGS84 на Меркатор эллипсоидный и сферический соответственно). Почитал документацию на geotools, но она крайне скудна. Формулы для пересчета для Меркатора нашел, но проблема в том, что проекции и системы координат могут меняться и хотелось бы использовать уже существующие наработки, а не изобретать собственный велосипед.
Если ли у кого нибудь опыт использования Java библиотек opengis (geotools)? Поделитесь, пожалуйста!
Конкретно интересует - возможно ли с помощью этих библиотек производить конвертацию прямоугольных координат в/из географических для разных проекций (в частности для Yandex, Google - WGS84 на Меркатор эллипсоидный и сферический соответственно). Почитал документацию на geotools, но она крайне скудна. Формулы для пересчета для Меркатора нашел, но проблема в том, что проекции и системы координат могут меняться и хотелось бы использовать уже существующие наработки, а не изобретать собственный велосипед.
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: API для пересчета координат (geotools, opengis)
Код: Выделить всё
import org.geotools.geometry.jts.JTS;
import org.geotools.referencing.CRS;
MathTransform transform = CRS.findMathTransform(sourceCRS, targetCRS, false);
Geometry targetGeometry = JTS.transform( sourceGeometry, transform);
http://docs.geotools.org/stable/usergui ... rycrs.html
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 30 сен 2013, 09:42
- Репутация: 0
Re: API для пересчета координат (geotools, opengis)
Спасибо, буду детальнее разбираться.
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 30 сен 2013, 09:42
- Репутация: 0
Re: API для пересчета координат (geotools, opengis)
Все таки остались вопросы. Из координат в градусах (WGS84) в эллиптическую проекцию Меркатора перевел. Результат - XY в метрах. А как бы теперь смаштабировать на пиксельную систему координат, считая допустим, что разрешение экрана - это весь мир в проекции Меркатора? Каким-то образом создать свою систему координат и опять воспользоваться трансформером? Нет примера ни у кого? (По оси X я в принципе могу просто смасштабировать, получив длину проекции в метрах и получить отношение к разрешению экрана в пикселях, но по оси Y так не получится, так как высота проекции не известна - проекция по широте имеет ограничения по полюсам).
-
- Гуру
- Сообщения: 5354
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1021
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Активный участник
- Сообщения: 218
- Зарегистрирован: 21 дек 2012, 01:57
- Репутация: 52
- Откуда: Питер
Re: API для пересчета координат (geotools, opengis)
Создать свою систему координат можно черезpresto78 писал(а):Каким-то образом создать свою систему координат и опять воспользоваться трансформером?
http://docs.geotools.org/latest/javadoc ... ctory.html
Код: Выделить всё
crs = ReferencingFactoryFinder.getCRSFactory(null).createFromWKT(wkt);
transformTo = CRS.findMathTransform(crs, targetCrs);
-
- Новоприбывший
- Сообщения: 5
- Зарегистрирован: 30 сен 2013, 09:42
- Репутация: 0
Re: API для пересчета координат (geotools, opengis)
Большое спасибо всем!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя