对 FluentPostgreSQL 和 Vapor 的 PostGIS 支持
.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