在Ruby on Rails中格式化/解析表单值

我正在使用RGeo(PostGIS)和Ruby on Rails,两者都是新手。 我有一个包含坐标属性(纬度和经度)的模型。 我在绑定该属性的表单时使用文本输入字段,但我想将值格式化为人类可读的forms。 目前它被“渲染”为原始DB值,即’0101000020E61000009468C9E3698C5EC065FED13769D64740’。 我想为用户格式化为’-122.193963,47.675086’。 相反,如果用户更新了值,我将需要将其解析为PostGIS可以理解的格式。

我一直在搜索和阅读有关将数据绑定到RoR中的表单的内容,但找不到任何有用的内容。

您正在看到已知二进制(WKB)的hex编码表示。 有许多几何访问器可以获得不同格式或表示的坐标信息。 例如:

SELECT ST_AsText(geom) AS WKT, ST_Y(geom) AS latitude, ST_X(geom) AS longitude FROM ( SELECT '0101000020E61000009468C9E3698C5EC065FED13769D64740'::geometry AS geom ) AS f; wkt | latitude | longitude ------------------------------+-----------+------------- POINT(-122.193963 47.675086) | 47.675086 | -122.193963 

在Ruby RGeo方面,可以使用WKBParser获得类似的信息。 例如,在tc_wkb_parser.rb中,您可以执行类似的操作:

 parser_ = ::RGeo::WKRep::WKBParser.new obj_ = parser_.parse('0101000020E61000009468C9E3698C5EC065FED13769D64740') print [obj_.y, obj_.x] # [-122.193963, 47.675086]