我需要创建位于多边形上的品种“house”的代理。
每个多边形都有一个属性:
CODE,
这是一个唯一的值,并且该值必须分配给每个
house
代理的房屋属性
breed [ houses house ]
...
houses-own [ ...
c_commune
...
]
我正在使用此程序:
to draw-houses
foreach gis:feature-list-of comuna-dataset [
this-comuna ->
let prop_houses gis:property-value this-comuna "Prop_v"
let code gis:property-value this-comuna "CODIGO"
let houses-in-comuna round ( prop_houses * number_houses )
gis:create-turtles-inside-polygon this-comuna houses houses-in-comuna [
set shape "square 2"
set size 0.5
set color blue
set c_comuna code ; it is displaying the last value
set label c_comuna
]
]
end
问题是由
foreach
造成的双循环
gis:feature-list-of
和
gis:create-turtles-inside-polygon
块,它们会覆盖所有
house
代理的最后一个值,并且它们最终具有相同的值。
程序应该阅读:
to draw-houses
foreach gis:feature-list-of
comuna-dataset [
this-comuna ->
let prop_houses gis:property-value this-comuna "Prop_v"
let code gis:property-value this-comuna "CODIGO"
let houses-in-comuna round ( prop_houses * number_houses )
gis:create-turtles-inside-polygon ;; proc
this-comuna ;; where
houses ;; what
houses-in-comuna ;; how many
[ ;; to-do [ cmd ... ]
set shape "square 2"
set size 0.5
set color blue
;; set c_comuna code ; it is displaying the last value
set c_commune code
;; set label c_comuna
set label code
]
]
end