Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.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
Node.js Netlogo中的NW扩展_Node.js_Gis_Netlogo - Fatal编程技术网

Node.js Netlogo中的NW扩展

Node.js Netlogo中的NW扩展,node.js,gis,netlogo,Node.js,Gis,Netlogo,我试着运行这个模型,但它没有启动,我不明白“nw”扩展有什么问题。我已经安装了netlogo 5.2.1和捆绑的“nw”扩展。 Netlogo在第48行显示错误(nw:快照节点链接)。错误消息为“未定义任何名称NW:SET-SNAPSHOT”。请帮忙。整个代码是 extensions [gis nw table array] breed [leavers leaver] breed [followers follower] breed [officers officer ] breed [ no

我试着运行这个模型,但它没有启动,我不明白“nw”扩展有什么问题。我已经安装了netlogo 5.2.1和捆绑的“nw”扩展。 Netlogo在第48行显示错误(nw:快照节点链接)。错误消息为“未定义任何名称NW:SET-SNAPSHOT”。请帮忙。整个代码是

extensions [gis nw table array]
breed [leavers leaver]
breed [followers follower]
breed [officers officer ]
breed [ nodes node ]
turtles-own [voisins]
leavers-own [ cur-link speed path-end current start to-node from-node origin destin]
globals [network walls itc itc-dataset walls-dataset officer_walkspeed leaver_walkspeed follower_walkspeed interaction_time person_size  max_preevacuation_delay loaded ticks_per_sec arr-e v path1 next-node distance100 distance200]

undirected-link-breed [  friendships friendship ]
to startup ;; called when first loaded
   read-gis-datasets
end   
to setup
  clear-all-but-globals ;; don't loose datasets
  ask patches [set pcolor white]
  setup-world-envelope
  draw-world
  setup-paths-graph

 ask nodes [setxy xcor ycor 
    if show_names? = True [show-names]]

  setup-leavers

end

to clear-all-but-globals reset-ticks ct cp cd clear-links clear-all-plots clear-output end
to read-gis-datasets
  ;set walls gis:load-dataset "walls.shp"
  set network    gis:load-dataset "BRT.shp"
  ;set itc    gis:load-dataset "itc.shp"
end
to setup-world-envelope
  let world ( gis:envelope-of network ) ;; [ minimum-x maximum-x minimum-y maximum-y ]
  gis:set-world-envelope (world)
end
to setup-paths-graph
  set-default-shape nodes "circle"
  foreach polylines-of network 3 [
(foreach butlast ? butfirst ? [ if ?1 != ?2 [ ;; skip nodes on top of each other due to rounding
  let n1 new-node-at first ?1 last ?1
  let n2 new-node-at first ?2 last ?2
  ask n1 [create-link-with n2]
]])
  ]
  ask nodes [hide-turtle]
  nw:set-snapshot nodes links
end

to-report polylines-of [dataset decimalplaces]
  let polylines gis:feature-list-of dataset                              ;; start with a features list
  set polylines map [first ?] map [gis:vertex-lists-of ?] polylines      ;; convert to virtex lists
  set polylines map [map [gis:location-of ?] ?] polylines                ;; convert to netlogo float coords.
  set polylines remove [] map [remove [] ?] polylines                    ;; remove empty poly-sets .. not visible
  set polylines map [map [map [precision ? decimalplaces] ?] ?] polylines        ;; round to decimalplaces
    ;; note: probably should break polylines with empty coord pairs in the middle of the polyline
  report polylines ;; Note: polylines with a few off-world points simply skip them.
end

to-report new-node-at [x y] ; returns a node at x,y creating one if there isn't one there.
  let n nodes with [xcor = x and ycor = y]
  ifelse any? n [set n one-of n] [create-nodes 1 [setxy x y set size 2 set n self]]
  report n

end
to show-names
   ifelse label = ""
   [set label (word who " ")] 
    [set label ""]
end
to draw-world
  gis:set-drawing-color [255   0   0]    gis:draw network 1
end
to setup-leavers
  set-default-shape leavers "person"
  set leaver_walkspeed 1
  create-leavers num-leaver [

    set size 1 
    set origin one-of nodes
    if origin = 100 or origin = 200 
    [show origin
    set origin one-of nodes]


    move-to origin
   show origin
   ask origin [set distance100 nw:distance-to node 110]
   ask origin [set distance200 nw:distance-to node 210]
   ifelse distance100 > distance200
   [ask origin [set path1 nw:turtles-on-path-to node 210]]
   [ask origin [set path1 nw:turtles-on-path-to node 110]]
   ;[set destin node 200]

   ;[set destin node 100]
   let a array:from-list path1
   set destin array:item a 1 

  ]


end
to go
 tick
    ask leavers
  [ 
   if distance destin < 0.01 ;; round off error fix
        [ set origin destin 
      move-to origin

     ask origin [set distance100 nw:distance-to node 110]
   ask origin [set distance200 nw:distance-to node 210]
   ifelse distance100 > distance200
   [ask origin [set path1 nw:turtles-on-path-to node 210]]
   [ask origin [set path1 nw:turtles-on-path-to node 110]]   ;[set destin node 200]

   let a array:from-list path1
if array:length a > 1 
   [set destin array:item a 1 ]
 ;origin  array:item a 1  ;set next-node one-of [link-neighbors] of to-node  face to-node destin] ]
  ]
    face destin 
    fd 0.01
  ] 

    end
to create-shortest-path
  ask nodes [set color green]

  if Origin = Destin [user-message "Please select two different nodes" stop]
  ask node Origin [set color blue]
  ask node Destin [set color blue]
 ;ask node origin [ show nw:path-to node Destin]
  ask node origin [ show nw:turtles-on-path-to node destin ]
  output-show [ nw:distance-to node destin ] of node origin ;=> 1

end
extensions[gis nw表数组]
品种[离开者]
培育[追随者]
品种[军官]
繁殖[节点]
海龟自己的
离开者拥有[cur-link-speed-path-end-current start-to-node-from-node-origin destin]
全局[网络墙itc itc数据集墙数据集官员\u步行速度离开者\u步行速度跟随者\u步行速度交互\u时间人\u最大大小\u预真空\u延迟加载的滴答声\u每秒arr-e v路径1下一个节点距离100距离200]
无向链接繁殖[友谊]
启动;;第一次加载时调用
读取gis数据集
结束
设置
清除除全局外的所有对象;;不要丢失数据集
询问补丁[设置pcolor白色]
设置世界信封
画画世界
设置路径图
询问节点[setxy xcor ycor]
如果显示名称?=True[显示名称]]
设置离开者
结束
要清除除全局标记外的所有重置标记ct cp cd清除链接清除所有绘图清除输出结束
读取gis数据集
;设置墙gis:加载数据集“walls.shp”
设置网络gis:加载数据集“BRT.shp”
;设置itc gis:加载数据集“itc.shp”
结束
设置世界信封的步骤
让世界(地理信息系统:网络的包络线);;[最小-x最大-x最小-y最大-y]
gis:设置世界范围(世界)
结束
设置路径图的步骤
将默认形状节点设置为“圆形”
网络3的每条多段线[
(foreach butlast?butfirst?[if?1!=?2[;;由于四舍五入,跳过彼此顶部的节点)
让n1新节点先?1后?1
让n2在第一个?2最后?2处创建新节点
询问n1[创建与n2的链接]
]])
]
询问节点[隐藏海龟]
nw:设置快照节点链接
结束
报告[数据集小数点]的多段线的步骤
让多段线gis:数据集的要素列表;;从功能列表开始
设置多段线地图[第一条?]地图[地理信息系统:多段线的顶点列表;;转换为virtex列表
设置多段线地图[地图[gis:位置?]?]多段线;;转换为netlogo浮动坐标。
设置多段线删除[]映射[删除[]?]多段线;;删除空多边形集。。看不见
设置多段线映射[映射[映射[精度?小数位数]?]?]多段线;;小数点附近
;; 注意:在折线的中间可能要折断空线对的折线。
报告多段线;;注意:带有几个非世界点的多段线只需跳过它们即可。
结束
在[x y]处报告新节点;返回x,y处的节点,如果没有,则创建一个。
设n个节点[xcor=x,ycor=y]
还有别的吗?n[设置n个节点中的一个][创建节点1[设置XY x y设置大小2设置n个自身]]
报告n
结束
点名
ifelse label=“”
[设置标签(单词who”“)]
[设置标签“”]
结束
画世界
gis:设置图形颜色[255 0 0]gis:绘制网络1
结束
设置离场者
设置默认形状离开者“person”
将leaver_步行速度设置为1
创建leaver num leaver[
1号套餐
将原点设置为其中一个节点
如果原点=100或原点=200
[显示产地]
将原点设置为一个节点]
移到原点
显示来源
询问原点[设置距离100 nw:到节点110的距离]
询问原点[设置距离200 nw:到节点210的距离]
ifelse距离100>距离200
[询问来源[设置路径1 nw:到节点210的路径上的海龟]]
[询问来源[设置路径1 nw:到节点110的路径上的海龟]]
;[设置目的节点200]
;[set destin node 100]
让数组:从列表路径1
设置目标数组:项目a 1
]
结束
外带
打上钩
询问离别者
[ 
如果距离destin<0.01;;四舍五入错误修复
[设置起点和终点]
移到原点
询问原点[设置距离100 nw:到节点110的距离]
询问原点[设置距离200 nw:到节点210的距离]
ifelse距离100>距离200
[询问来源[设置路径1 nw:到节点210的路径上的海龟]]
[询问来源[设置路径1 nw:到节点110的路径上的海龟];[设置目的节点200]
让数组:从列表路径1
如果数组:长度a>1
[设置目标数组:项目a 1]
;原点数组:项目a 1;将下一个节点设置为[link Neighbories]中的一个,该节点的[link Neighbories]指向节点destin]]
]
面对命运
fd 0.01
] 
结束
创建最短路径的步骤
询问节点[设置绿色]
如果Origin=Destin[用户消息“请选择两个不同的节点”停止]
询问节点原点[设置蓝色]
询问节点目标[设置蓝色]
;询问节点来源[显示nw:到节点目的地的路径]
询问节点来源[显示nw:到达节点目的地的路径上的海龟]
输出显示节点原点的[nw:到节点目的地的距离];=>1.
结束

设置快照
不是网络(nw)扩展中的原语。你是说
nw:set context
set snapshot
是一个不推荐使用的原语-这是旧型号吗?那就可以解释了。珍和亚瑟都是对的。在这种情况下,我认为您可以直接将
nw:set snapshot
替换为
nw:set context
,这样就可以了。谢谢大家;-)我用“nw:set context”替换了它,问题解决了,但出现了一个新问题!在第36行,“gis:网络的包络线”是新的错误!:-(你们三个中的一个应该把答案写下来作为答案,这样就可以标记为已回答;)