FluentPostGIS

Build Status Platforms Package Managers Twitter dizm

FluentPostgreSQLVapor 的 PostGIS 支持

安装

Swift Package Manager

.package(url: "https://github.com/plarson/fluent-postgis.git", .branch("master"))

设置

导入模块

import FluentPostGIS

添加到 configure.swift

try services.register(FluentPostGISProvider())

模型

GISGeographicPoint2D 添加到您的模型

final class User: PostgreSQLModel {
    var id: Int?
    var name: String
    var location: GISGeographicPoint2D?
}
几何类型 地理类型
GeometricPoint2D GeographicPoint2D
GeometricLineString2D GeographicLineString2D
GeometricPolygon2D GeographicPolygon2D
GeometricMultiPoint2D GeographicMultiPoint2D
GeometricMultiLineString2D GeographicMultiLineString2D
GeometricMultiPolygon2D GeographicMultiPolygon2D
GeometricGeometryCollection2D GeographicGeometryCollection2D

查询

使用 ST_DWithin 查询位置

let searchLocation = GISGeographicPoint2D(longitude: -71.060316, latitude: 48.432044)
try User.query(on: conn).filterGeometryDistanceWithin(\User.location, searchLocation, 1000).all().wait()
查询
filterGeometryContains
filterGeometryCrosses
filterGeometryDisjoint
filterGeometryDistance
filterGeometryDistanceWithin
filterGeometryEquals
filterGeometryIntersects
filterGeometryOverlaps
filterGeometryTouches
filterGeometryWithin

💝 贡献

请创建一个问题来描述您的问题,或者打开一个 pull request 来修复它。

✌️ 许可

MIT

👽 作者

Phil Larson - http://dizm.com