gis - Netlogo:SHP胶印世界展示
问题描述
我正在为城市模拟加载城市网格 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
这是加载数据集的过程:
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
和相关的prj文件在这里
结果,模拟输出红色箭头灰色区域的城市增长,这是错误的。如何解决此问题,以便模拟不考虑灰色区域,并将所有城市网格对齐到世界显示的限制?
解决方案
这解决了这个问题:
set envelope gis:load-dataset "data/polygon.shp"
gis:set-world-envelope gis:envelope-of envelope
polygon.shp 等于要在世界窗口中显示的视图范围。然后,为了消除额外的灰色空间,在模型设置对话框中使用 max-pxcor 和 max-pycor 值,直到窗口视图与 shp 文件的范围相匹配。信封命令保证将始终显示 shp 文件的范围。
推荐阅读
- javascript - 这个功能性的 Javascript 示例是如何工作的?
- amazon-web-services - AWS EC2 RHEL7 实例权限问题
- laravel - 是否有任何有效的方法来获取对象的 ID 到我的创建方法
- ios - 将文档的文档 ID 添加到其自己的 Firestore 文档 - Swift 4
- sql-server - 如何在 SQL Server 2014 中将两个表中的两个日期时间累积为 VIEW?
- entity - DDD:聚合和删除
- cakephp-3.x - 如何在 cakephp 3.7 中编写正确的查询以获取列的数据并在下拉列表中显示项目列表
- git - Repo 使用 git 时未发现致命错误,无法推送到 github
- eclipse - 如何为控制台等 Eclipse 视图分配快捷方式?
- android - “等待调试器”Android Studio