Геопространственная поддержка в JPA - PullRequest
8 голосов
/ 30 января 2011

Как бы я сопоставить точки и полигоны с типами Java.Если это невозможно, что за обходной путь?

Я хотел бы использовать геопространственную поддержку в mysql или postgres через JPA.

Ответы [ 4 ]

3 голосов
/ 30 января 2011

DataNucleus поддерживает постоянство / запросы подавляющего большинства распространенных геопространственных типов в JPA (и JDO).Смотрите эту ссылку для списка поддерживаемых типов http://www.datanucleus.org/products/accessplatform_3_0/rdbms/spatial_types.html

2 голосов
/ 05 апреля 2011

Я использовал Hibernate Spatial , как упоминалось в PostGIS и JPA 2.0

0 голосов
/ 19 июня 2012

Я тоже это пробовал - вы можете получить данные, если объявите свое поле в JPA как Byte[], и оно будет выглядеть как BLOB-объект, но в пространственном внутреннем формате MySQL - так что, несмотря ни на что, вы всегда будетеполучить нечитаемый внутренний формат - лучше всего в JPA использовать нативный SQL-запрос для вывода данных в виде текста.

SELECT AsText(columnName) FROM tableName;

Для instace:

String sql = "SELECT AsText(LOCATION) FROM ENTITY where id=?1";
return (String) em.createNativeQuery(sql)
                  .setParameter(1, id)
                  .getSingleResult();

возвращается в мойcase: POINT(40.01999 -75.147171).

0 голосов
/ 30 января 2011

Отображение карты и полигона в Java не очень естественно. (логика абстракции будет довольно громоздкой). Я бы предложил использовать графовую модель (например, rdf). Но это может занять хорошую степень обучения. Пожалуйста, проверьте GVSig . Это проект с открытым исходным кодом на основе Java.

Я оценил их, прежде чем перейти к более полному геопространственному анализу с использованием Allegrograph и RDF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...