1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/tanggaowei-play-postgresql

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
README.md 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 04:53 51f597b

1. Список используемых технологий:

  • Play Framework 1.4.3;
  • PostgreSQL 9.6.2;
  • PostGIS 2.3;
  • Java 7.

2. Список библиотек и их версий:

— postgresql-9.4.1212.jre7.jar; — hibernate-spatial-4.0.1.jar; — jts-1.13.jar; — postgis-jdbc-2.1.7.jar.

Ссылка на скачивание файлов: http://pan.baidu.com/s/1dEU7x9B.

3. Файл application.conf:

db.default.url=jdbc:postgresql:test
db.default.driver=org.postgresql.Driver
db.default.user=postgres
db.default.pass=tgw@123
jpa.default.dialect=org.hibernate.spatial.dialect.postgis.PostgisDialect

4. Команды для создания расширений в PostgreSQL:

-- Enable PostGIS (includes raster)
CREATE EXTENSION postgis;
-- Enable Topology
CREATE EXTENSION postgis_topology;
-- Enable PostGIS Advanced 3D 
-- and other geoprocessing algorithms
-- sfcgal not available with all distributions
CREATE EXTENSION postgis_sfcgal;
-- fuzzy matching needed for Tiger
CREATE EXTENSION fuzzystrmatch;
-- rule based standardizer
CREATE EXTENSION address_standardizer;
-- example rule data set
CREATE EXTENSION address_standardizer_data_us;  
-- Enable US Tiger Geocoder
CREATE EXTENSION postgis_tiger_geocoder;

Пример модели PostGIS — тип geometry(Point,4326).

5. Примеры кода:

BaseModel.java — базовый класс для моделей PostgreSQL с идентификатором ID:

package models;
 
import play.db.jpa.GenericModel; 
import javax.persistence.*;
 
/**
* Created by TangGaowei on 2016/11/15.
*/
@MappedSuperclass
public class BaseModel extends GenericModel {
 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    public Long id;
 
    public Long getId() {
        return id;
    }
 
    @Override
    public Object _key() {
        return getId();
    }
}

UserModel.java — модель для работы с данными PostGIS:

package models;
 
import javax.persistence.*;
import org.hibernate.annotations.Type;
import com.vividsolutions.jts.geom.Point;
 
@Entity
public class UserModel extends BaseModel {
    public String name; // Имя
 
    @Column(columnDefinition = "geometry(Point,4326)")
    @Type(type = "org.hibernate.spatial.GeometryType")
    public Point location;; // Местоположение
 
    public Integer state; // Состояние
}

Application.java — пример использования модели:

package controllers;
 
import com.vividsolutions.jts.geom.*;
import org.hibernate.spatial.jts.mgeom.MCoordinateSequence;
import org.hibernate.spatial.jts.mgeom.MGeometryFactory;
import play.mvc.*;
import models.*;
 
public class Application extends Controller {
 
    public static void index() {
        UserModel user = UserModel.find("name=?", "test").first();
        if(user == null){
            user = new UserModel();
            user.name = "test";
            user.save();
        }
        else{
            // Изменение местоположения
            MGeometryFactory mgf = new MGeometryFactory(new PrecisionModel(), 4326);
            Coordinate coord = new Coordinate( 32.581112, 124.381802 );
            MCoordinateSequence coordinates = new MCoordinateSequence(new Coordinate[]{coord});
            Point location =  mgf.createPoint(coordinates);
            user.location = location;
            user.save();
        }
        renderText("hello");
    }
 
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/tanggaowei-play-postgresql.git
git@api.gitlife.ru:oschina-mirror/tanggaowei-play-postgresql.git
oschina-mirror
tanggaowei-play-postgresql
tanggaowei-play-postgresql
master