首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于两个不同地理信息系统节点距离的输出选择条件

基于两个不同地理信息系统节点距离的输出选择条件
EN

Stack Overflow用户
提问于 2019-05-18 02:27:01
回答 2查看 515关注 0票数 0

我试图找到一个条件,以选择输出的基础上,两个地理信息系统点之间的距离。我的网络包括一个有轨电车与人,我希望我的人下车在电车站最近的房子。电车在一个反回路中移动,我想要放置条件,使人在正确的有轨电车站下车。你能帮我一下吗?

我已经尝试过distanceByRoute了,但是我不知道如何通过状态图或在selectOutput.在这里输入图像描述中为它形成一个条件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-20 09:29:47

假设

  • 你有一群叫车站的车站代理人
  • 你有一大群名叫乘客的旅客
  • 你有一群叫有轨电车的电车经纪人
  • 你有一群名叫霍斯的居家特工

循序渐进

  1. 添加toTram-Agent类型的变量nextStation,其中moveTo总是保存当前到达站。
  2. 在客运代理中添加一个名为Home的参数,其中在模型启动时,将填充Home-Agent
  3. 创建一个名为getNearestStation的函数,其输入参数为客座类型,输出为类型站

代码语言:javascript
复制
    //initialize with first station
    Station nearestStation = stations.get(0);
    double distanceToNearestStation = passenger.home.distanceByRoute(nearestStation);
    double currentDistance;
    
    for(Station station:stations){
        currentDistance = passenger.home.distanceByRoute(station);
        //save it if you find a closer station
        if( currentDistance < distanceToNearestStation){
            nearestStation = station;
            distanceToNearestStation = passenger.home.distanceByRoute(station);
        }
    }
    
    return nearestStation;

您也可以在有轨电车内部和GISPoint代码中使用nextStation变量,而不是使用Station。

  1. 在流程图中添加一个dropoff块,并将dropoff条件设置为以下内容:getNearestStation(agent).equals(container.nextStation)

附加注意事项

为了减少距离计算的次数,在每个乘客初始化时只执行一次getNearestStation,并将其保存在一个变量中,而不是每次通过dropoff块时计算它。

票数 0
EN

Stack Overflow用户

发布于 2019-05-22 12:48:55

在这里输入图像描述

tramCollection这里是我收集的电车站(在地理信息系统/INode)位于我的地图上的主要。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56195495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档