Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使汽车以正确的速度沿着道路行驶(NetLogo)_Netlogo_Infrastructure_Face - Fatal编程技术网

使汽车以正确的速度沿着道路行驶(NetLogo)

使汽车以正确的速度沿着道路行驶(NetLogo),netlogo,infrastructure,face,Netlogo,Infrastructure,Face,目前,我正在NetLogo中开发一个基础设施模型,我很难让海龟随大流。这是我使用gis扩展所做的 该模型的目标是模拟交通运动,因此模型中的车辆需要沿着道路行驶。然而,当我试图使这项工作顺利进行时,这些车根本就不会沿着道路行驶 to load ca clear-patches show "Wegenbestand laden..." set data gis:load-dataset Input_bestand_shp show "Wegen geladen" show

目前,我正在NetLogo中开发一个基础设施模型,我很难让海龟随大流。这是我使用gis扩展所做的

该模型的目标是模拟交通运动,因此模型中的车辆需要沿着道路行驶。然而,当我试图使这项工作顺利进行时,这些车根本就不会沿着道路行驶

to load
  ca
  clear-patches
  show "Wegenbestand laden..."
  set data gis:load-dataset Input_bestand_shp
  show "Wegen geladen"

  show "Data importen..."
  let timing 1
  foreach gis:feature-list-of data
  [[b] -> ask patches gis:intersecting b
    [
    set pspeed gis:property-value b "snelheid"
    set road gis:property-value b "gid"
    set status gis:property-value b "status"
    set a_dir_x gis:property-value b "s_d_x"
    set a_dir_y gis:property-value b "s_d_y"
    set b_dir_x gis:property-value b "e_d_x"
    set b_dir_y gis:property-value b "e_d_y"
    if status = "gesloten" [ set pspeed 0]
    if pspeed = 30 [ set maxdruk Algemene_capaciteit_straat / 5 ]
    if pspeed = 80 [ set maxdruk Algemene_capaciteit_autoweg / 5]
    if pspeed = 130 [ set maxdruk Algemene_capaciteit_snelweg / 5]
    set fid gis:property-value b "did"
    show timing
    set timing (timing + 1)
  ]
  ]

  show "Data geimporteerd"

  ask patches [ set pcolor scale-color blue pspeed 0 130 ]

  set-default-shape turtles "car"

  ;set exp-count 1
  ;set border patches with [ count neighbors != 8 ]
end

to setup
  clear-turtles
  clear-all-plots

  reset-ticks

  setup-turtles
end

to setup-turtles
  ;een turtle is 5 autos
  ask patch Start-X Start-Y
  [sprout Verkeersintensiteit_geslotenweg / 5 [ set color red ]]

  ;1 tick = 1 minute
  ask patches[
    ask turtles-here[
      set speed pspeed / 60
      set currentroad road
      set dir_x b_dir_x
      set dir_y b_dir_y
    ]
  ]
end

to go
  setup-turtles
  ;1 tick = 1 minute
  ask turtles [
      facexy dir_x dir_y
      fd speed
  ]
end
使用上面的代码,我首先测试了是否有任何方向可以工作。然而,这些车要么随机停车,要么完全朝着错误的方向行驶,我不知道该怎么办

输入是在顶点上分割的线段。a_dir_x和其他图标显示每个线段的前部和后部,以给出方向。坐标系为WGS 84 UTM 31N

我正在考虑的另一件事是使用move to function,它应该更易于使用。在这种情况下,我需要知道手机的大小,我不知道这是如何在NetLogo中确定的

有人对此有什么想法或经验吗?谢谢大家!


问题似乎在于坐标。NetLogo无法识别坐标,因此我必须事先定义NetLogo坐标。为此,我创建了一个包含已知x列和y行的集合光栅,并将它们作为特征添加到shapefile中。这不是最优的,所以如果有更好的方法我仍然想知道,但这是一种处理方法。好的,我找到了一种方法。我找到的最好的方法是,无论如何,让汽车运行起来,根据道路的起点移动到道路的尽头。然后,为了得到时间,我计算了道路的长度,并将其除以速度,因此它仍然模拟汽车的运动,只是通过“远程传送”。