AnyLogic中如何将数据库存储的位置映射为GISPoint类型
AnyLogic数据库位置字符串转GISPoint实现方案
完全可以实现转换,操作步骤如下:
1. 为Order智能体新增GISPoint类型参数
打开Order智能体的参数配置页,新增参数,命名可自定义比如targetPoint,类型选择GISPoint,所属GIS区域绑定你模型中正在使用的GIS地图实例。
2. 在智能体初始化阶段完成类型转换
在Source块的智能体创建逻辑(通常是「On exit」代码段)中,调用AnyLogic内置的GIS工具方法完成WKT格式字符串到GISPoint的转换,示例代码如下:
// 以下变量名请替换为你模型内的实际命名 // 假设从数据库读取的位置字符串参数名为locationWKT,GIS地图组件名为myGISMap String wktContent = agent.locationWKT; agent.targetPoint = (GISPoint) GISUtils.fromWKT(wktContent, myGISMap);
3. 距离计算调用
转换完成后,直接调用GISPoint类的内置方法即可完成距离计算,示例:
- 计算两个点位距离:
pointA.distanceTo(pointB),返回值为米单位的实际GIS距离,累加即可得到车辆总行驶里程。
补充说明:如果你的数据库存储的是拆分的经度、纬度数值字段,无需解析WKT,可直接创建GISPoint对象,代码为
new GISPoint(经度数值, 纬度数值, 所属GIS地图实例)
内容的提问来源于stack exchange,提问作者Bart wolker
相关产品推荐
相关产品推荐

