activerecord-postgis-adapter gem을 사용하여 기본 앱을 만들려고하는데 readme의 지침을 따르고 있습니다.activerecord-postgis-adapter를 사용하고 점이 구형으로 캐스트되지 않습니다.
readme에 따르면 점은 구형 팩토리를 사용한다고 가정하고 있지만 점에 대해 SphericalPointImpl 대신 CAPIPointImpl 유형이 있습니다. 즉, 거리 계산이 작동하지 않습니다. 여기
내가 노력하고 무엇 :create_table "my_spatial_tables", force: :cascade do |t|
t.geography "lonlat", limit: {:srid=>4326, :type=>"point", :geographic=>true}
t.index ["lonlat"], name: "index_my_spatial_tables_on_lonlat", using: :gist
end
:
record = MySpatialTable.create
record.lonlat = 'POINT(-122 47)'
record.lonlat
returns #<RGeo::Geos::CAPIPointImpl:0x3ff57d7645c8 "POINT (-122.0 47.0)">
내가 루비 2.3.1를 사용하고 5 레일 9.6과 PostGIS와를 POSTGRES 2.3
이 내 스키마입니다 내 초기화 :
RGeo::ActiveRecord::SpatialFactoryStore.instance.tap do |config|
config.default = RGeo::Geos.factory_generator
config.register(RGeo::Geographic.spherical_factory(srid: 4326), geo_type: "point")
end
그리고 내 데이터베이스 구성 :
default: &default
adapter: postgis
encoding: unicode
schema_search_path: public, postgis
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %