Orbeon Forms:将Northing/Easting转换为Lat/Long的实现求助
Orbeon表单BNG转经纬度及生成Google Maps链接解决方案
一、把Northing/Easting传入转换API
先确认你已经有存储Northing和Easting的表单控件(比如命名为northing和easting),通过Orbeon的Service Call功能实现传值:
- 在Builder中添加「Service」动作,触发时机选择Northing/Easting值变更后(比如控件的
value-changed事件) - 将Service的URL设置为动态拼接格式:
https://api.getthedata.com/bng2latlong/{$easting}/{$northing},用Orbeon的{$控件名}语法自动插入对应控件的值 - 请求方法选择
GET,无需配置请求体
二、从API返回结果中提取Lat/Long
该API返回的JSON格式示例如下:
{ "status": "ok", "data": { "lat": 54.63391, "lon": -3.20624, "bng_easting": 429101, "bng_northing": 624009, "osgr": "NY291240" } }
提取步骤:
- 在Service Call的「Response」配置中,选择「JSON Path」作为数据提取方式
- 为存储Lat和Long的表单控件(比如命名为
latitude和longitude)分别设置JSON Path:- Latitude:
$.data.lat - Longitude:
$.data.lon
- Latitude:
- 确保控件绑定的节点正确,Service调用成功后会自动将对应值填充到控件中
三、自动构建Google Maps URL
通过Orbeon的计算控件实现动态拼接:
- 添加一个计算控件(比如命名为
google-maps-url) - 设置计算表达式:
concat('https://www.google.com/maps/search/?api=1&query=', $latitude, '%2C', $longitude)
- 勾选「实时计算」选项,确保Lat/Long值变化时URL自动更新
四、测试与验证
- 填入有效的Northing/Easting值,触发Service调用后检查Lat/Long是否正确填充
- 查看计算控件生成的URL,点击确认是否能打开对应Google Maps位置
内容的提问来源于stack exchange,提问作者Pete Atkin
相关产品推荐
相关产品推荐

