2.2 寻找国家

本教程将指导您使用 MicroCity Script 对GIS数据进行编码操作。您需要完成 2.1 内容以继续。

GIS 数据结构

在 MicroCity 中,GIS 数据由三种类型的形状组成:点、折线和多边形,每种类型都可以视为地图图层。在图层中,形状对象由一个或多个部分组成,而每个部分又由一个或多个组成。形状对象还与属性表中的记录相关联。您还可以编辑形状或其属性(请参阅 3.2)。

gis_data_structure

如果您想要执行复杂的编辑或处理一批形状,可以使用 MicroCity Script,其中包含许多内置函数可供使用。

进行查询

假设我们想要找出人口超过1亿且完全位于北半球的国家。因此,我们需要检查每个形状中每个点的坐标以及形状的人口属性。打开 ScriptEditor icon_script_editor,然后输入以下代码:

local Countries = Open("countries.shp")                 --尝试打开形状图层
for i = 1, GetRecCount(Countries) do                    --循环遍历图层中的所有形状对象
    local country = GetShape(Countries, i)              --获取一个国家的形状对象
    local north = true                                  --假设该国家位于北半球
    for j = 1, GetPartCount(country) do                 --循环遍历所有形状中的部分
        for k = 1, GetPointCount(country, j) do         --循环遍历该部分中的所有点
            local x, y = GetPointXY(country, k, j)      --获取点的坐标
            if y < 0 then                               --如果纬度小于0
                north = false                           --北半球的假设为假
            end
        end
    end
    local pop = GetValue(country, "POP_EST")            --获取人口属性
    local name = GetValue(country, "NAME")              --获取国家名称
    if pop > 100000000 and north  then                  --检查两个条件
        Print(name, ": ", pop/100000000)                --打印结果
    end
end

运行脚本

将脚本保存为 query.mcs,并使用 MicroCity 打开它,或将其拖到 MicroCity。然后您将在 Workspace 面板的模块选项卡中找到一个名为query的项目。双击子项main。如果弹出对话框,请选择01. countries,然后点击确定。结果将显示在消息面板中。

query_results

这篇文章使用ChatGPT翻译自其他语言,如果有问题请在反馈open in new window页面提交反馈。

Last Updated:
Contributors: huuhghhgyg