Netlogo:SHP偏移世界显示

Jav*_*val 1 gis netlogo

我正在加载用于城市模拟的城市网格SHP文件,但是显示偏离了世界窗口,如下图所示:

在此处输入图片说明

红色箭头表示意外的多余空间,蓝色箭头表示更多的城市网格所占据的区域,但未被世界范围覆盖。这是设置代码:

to setup
  clear-all
  ask patches [set pcolor [225 226 228]]
  load-dataset

  draw-ins_industr20_a
  draw-curva_nivel20_l
  draw-cuerpo_agua20_a
  draw-corriente_ag20_l
  draw-carretera20_l
  draw-camino20_l
  draw-camellon20_a
  draw-manzana20_a
  draw-movilidad

  copy-values-to-patch
  fitness
  set threshold 4
  reset-ticks
end
Run Code Online (Sandbox Code Playgroud)

这是加载数据集过程:

to load-dataset
  set ins_industr20_a-dataset gis:load-dataset "datos/ins_industr20_a.shp"
  set manzana20_a-dataset gis:load-dataset "datos/manzana20_a.shp"
  set curva_nivel20_l-dataset gis:load-dataset "datos/curva_nivel20_l.shp"
  set cuerpo_agua20_a-dataset gis:load-dataset "datos/cuerpo_agua20_a.shp"
  set corriente_ag20_l-dataset gis:load-dataset "datos/corriente_ag20_l.shp"
  set carretera20_l-dataset gis:load-dataset "datos/carretera20_l.shp"
  set camino20_l-dataset gis:load-dataset "datos/camino20_l.shp"
  set camellon20_a-dataset gis:load-dataset "datos/camellon20_a.shp"
  set area_cultivo20_a-dataset gis:load-dataset "datos/area_cultivo20_a.shp"
  set movilidad-dataset gis:load-dataset "datos/Movilidad.shp"
end
Run Code Online (Sandbox Code Playgroud)

和相关的prj文件在这里

结果,模拟输出在红色箭头的灰色区域中的城市增长,这是错误的。如何解决此问题,以便模拟不考虑灰色区域,并使所有城市网格与世界显示的范围对齐?

Jav*_*val 5

这解决了问题:

set envelope gis:load-dataset "data/polygon.shp" 
gis:set-world-envelope gis:envelope-of envelope
Run Code Online (Sandbox Code Playgroud)

polygon.shp等于要在世界窗口中显示的视图范围。然后,要消除多余的灰色空间,请在“模型设置”对话框中使用max-pxcor和max-pycor值,直到窗口视图与shp文件的范围匹配为止。信封命令可确保始终显示shp文件的范围。