跳转至
For the complete DHIS2 documentation index, see llms.txt.

配置 DHIS2 地图{ #gis_creating }

语境

设置 DHIS2 地图只需将您希望在地图上显示的组织 单位的坐标。坐标通常 需要转换成 DHIS2 能够理解的格式。 格式。ESRI shapefile 是一种常见的 地理空间矢量数据格式。您可以在 这里](http://www.diva-gis.org/gdata) 或在 或网络上的许多其他地理空间数据存储库中。为了使用 需要做一些工作才能在 DHIS2 地图中使用这些坐标,即 将数据转换成合适的格式,并确保地理空间数据中包含的名称 地理空间数据中包含的名称与组织单位的名称完全匹配。 组织单位相匹配。

目前只有 POINT 几何类型的组织单位可以通过 维护应用项目进行编辑。要修改 POLYGON 几何图形,请使用 组织单位几何图形导入

要编辑组织单位的 POINT 坐标,请打开维护 应用项目并导航至 "组织单位 "部分。单击要查看或编辑的组织 点击要查看或编辑的组织单位。 搜索或过滤列表。选择组织单位后 您可以编辑**纬度**和**经度**值来更新点坐标。 坐标。如果组织单位的几何形状是多边形,则无法编辑坐标。 无法编辑。

如果要添加或更新大量单位的坐标,或 如果需要更新多边形几何图形,应使用自动 单位几何图形导入

重要**

DHIS2 支持的唯一坐标参考系(CRS)是 EPSG:4326、 也称为地理经度/纬度。坐标必须 存储坐标时,经度(东/西位置)必须在纬度之前。 纬度)之前。如果您的矢量数据使用的 CRS 不同于 如果您的矢量数据使用的是不同于 > EPSG 4326 的 CRS,那么在导入 > DHIS2 之前,您需要先重新投影数据。 导入 DHIS2。

以 GeoJSON 格式导入坐标{ #geojson_creating_setup }

第 1 步 - 将地理空间数据转换为 GeoJSON 格式

如果您的数据已经是使用地理经度/纬度的 GeoJSON 格式,请跳过这一步。 经度/纬度。

推荐的地理格式转换工具名为 "ogr2ogr"。大多数 Linux 发行版都可以使用 sudo apt-get install gdal-bin"。对于 Windows,请访问 http://fwtools.maptools.org/下载 "FWTools",安装后打开 FWTools 命令外壳。在格式转换过程中,我们还要 确保输出具有正确的坐标投影 (称为 EPSG:4326,带有地理经纬度)。有关地理坐标的 更详细的地理坐标参考资料,请参阅此 站点。如果您已经将 地理数据到地理经纬度 (EPSG:4326) 系统、 则无需明确定义输出坐标系,假设 ogr2ogr`能确定输入的空间参考系。请注意 大多数 GeoJSON 文件使用 EPSG:4326 系统。您可以通过执行 空间参考系。

ogrinfo -al -so filename.shp

该命令假定您的地理空间数据是 ESRI Shapefile (.shp) 格式、 但也支持其他几种格式

假设 ogrinfo 报告的投影为 EPSG:27700、 我们可以执行以下命令将其转换为 EPSG:4326 命令将其转换为 EPSG:4326。

ogr2ogr -s_srs EPSG:27700 -t_srs EPSG:4326 -f GeoJSON filename.geojson filename.shp

如果地理数据已经在 EPSG:4326 中,您只需执行以下命令将形状文件转换为 GeoJSON shapefile 转换为 GeoJSON。

ogr2ogr -f GeoJSON filename.geojson filename.shp

您会在形状文件的同一文件夹中找到创建的 GeoJSON 文件。

第 2 步 - 简化/归纳地理数据

地理数据文件中的边界通常非常精确,以至于无法满足网络版 GIS 的需要。 以满足网络 GIS 的需要。这通常不会影响 在本地系统上使用 GIS 文件时,这通常不会影响性能,但 但通常需要对地理数据进行优化,以适应 DHIS2 的网络 GIS 系统。 但通常有必要为 DHIS2 的网络 GIS 系统优化地理数据。所有地理数据都需要从服务器下载 因此,如果数据过于复杂,DHIS2 地图的性能就会受到影响、 DHIS2 地图的性能将受到负面影响。这个 优化过程如下:

对于多边形,我们可以通过删除部分线点来减少边界线的细节。 删除部分线点。这种概括 会导致多边形的退化。不过,经过 经过试验,我们可以找到一个最佳的泛化水平。 在这种情况下,多边形的精度在视觉上是可以接受的,而性能也是最佳的。 性能达到最佳。备份文件 备份文件。一种可行的方法是使用 MapShaper,它是一个在线工具,可用于归纳地理数据。 该工具是一种在线工具,可用于归纳地理数据。要使用 MapShaper,只需将您的文件上传到 文件到该网站。然后,点击顶部菜单中的_Simplify_(简化),并选择一种简化方法。 选择一种简化方法。屏幕顶部会显示一个滑块 从 100% 开始。通常可以将其拖动到 30%左右。 满意后,点击右上角的 "导出"。 导出"。选择 "GeoJSON "文件格式,然后点击 "导出 "按钮下载文件。 下载文件。使用新简化的 GeoJSON 文件进入下一步。

第 3 步 - 准备 GeoJSON 文件

遗憾的是,GeoJSON 文件还不能导入。请在 强大的文本编辑器(如 Geany (Linux) 或 Notepad++ (Windows))中打开。GeoJSON 是 一种基于 JSON 的格式。在 GeoJSON 文件中,一个组织单位表示为一个 特征。每个特征都应该有几何形状、属性(属性 它们可以有一个 id。

为了从 GeoJSON 文件导入地理空间数据,DHIS2 必须将每个数据与数据库中的组织单位相匹配。 与数据库中的组织单位相匹配。每个 GeoJSON 地物必须包含对其对应的 组织单位的引用。引用本身必须是三种可能的 DHIS2 标识符之一:uid代码**或**名称

默认情况下,我们会尝试将组织单位 uid 与 GeoJSON 特征 id 匹配。您可以添加或更改 id 字段,使其与组织单位的 uid 匹配。 组织单位的 uid。您也可以通过 GeoJSON 特征属性进行匹配。该属性可与组织的 uid代码**或**名称

请注意,使用的标识符必须**唯一**标识一个组织单位(例如,如果组织单位中有两个 组织单位(例如,如果数据库中有两个组织单位的名称或代码相同 例如,如果数据库中有两个组织单位的名称或代码相同,则无法对其中一个进行正确匹配)。 )。由于 uid 是唯一保证唯一的标识符,因此是最稳健的选择。 是最稳健的选择。不过,由于名称匹配通常更容易 (因为名称已经是数据的一部分)。

简要查看标识符,并将其与 数据库中的相应值。如果它们看起来相当不错, 现在是时候在import-export模块中进行预览了。

进入**导入/导出应用**,点击**组织单位几何导入**。 选择 GeoJSON 文件以及将 GeoJSON 地物与组织单位相匹配的方式。 组织单位。单击**开始模拟运行**并查看摘要。 查找新的/更新的组织单位。我们的目的是将坐标 我们的目的是将坐标添加到数据库中已有的组织单位中,因此我们希望尽可能多地 尽可能多的更新,而 0 个新单位。被列为新单位的组织单位将被创建为 根单位,并扰乱 DHIS2 中的组织单位树。如果有 的组织单位将出现在下面的列表中。 在下面的列表中。如果与数据库中的组织单位名称相比有任何轻微的拼写错误 如果与数据库中的组织单位名称相比有轻微拼写错误,请更正并重新开始模拟运行。 否则,请单击列表下方的 "全部放弃 "按钮,然后单击 "开始导入"按钮。 **开始导入**按钮。

如果导入过程成功完成,您现在就可以 使用 DHIS2 地图中的地理数据。如果没有,请查看日志 提示并查找常见错误,如

- 在 GeoJSON 文件中重复名称。数据库中的名称列是 数据库中的名称列是唯一的,不接受两个名称相同的组织单位。

-数据库中organizationalunit表中的“ shortname”列 varchar定义太小。将其增加到100。

- GeoJSON 文件中的特殊名称字符。

- 输入的 GeoJSON 格式有误,请使用 GeoJSONLint 来测试内容。

以 GML 格式导入坐标{ #gis_creating_setup }

第1步-简化/概括您的地理数据

地理数据文件中的边界通常非常精确,以至于无法满足网络版 GIS 的需要。 以满足网络 GIS 的需要。这通常不会影响 在本地系统上使用 GIS 文件时,这通常不会影响性能,但 但通常需要对地理数据进行优化,以适应 DHIS2 的网络 GIS 系统。 但通常有必要为 DHIS2 的网络 GIS 系统优化地理数据。所有地理数据都需要从服务器下载 因此,如果数据过于复杂,DHIS2 地图的性能就会受到影响、 DHIS2 地图的性能将受到负面影响。这个 优化过程如下:

对于多边形,我们可以通过删除部分线点来减少边界线的细节。 删除部分线点。这种概括 会导致多边形的退化。不过,经过 经过试验,我们可以找到一个最佳的泛化水平。 在这种情况下,多边形的精度在视觉上是可以接受的,而性能也是最佳的。 性能达到最佳。在开始之前备份您的形状文件 备份。一种可行的方法是使用 MapShaper,这是一个在线工具,可用于归纳地理数据。 它是一个在线工具,可用于归纳地理数据。要使用 MapShaper,只需将文件上传到该网站。然后,点击顶部菜单中的 "简化",选择一种简化方法。屏幕顶部会显示一个从 100% 开始的滑块。通常可以将其拖动到 30% 左右。对结果满意后,点击右上角的 "导出"。选择 GeoJSON 文件格式,然后单击 "导出 "按钮将文件下载到电脑。

第 2 步 - 转换为 GML

推荐的地理格式转换工具名为 "ogr2ogr"。大多数 Linux 发行版都可以使用 sudo apt-get install gdal-bin。对于 Windows,请访问http://fwtools.maptools.org/ 并下载 "FWTools",安装并打开 FWTools 命令外壳。在 在格式转换过程中,我们还要确保输出具有正确的 坐标投影(称为 EPSG:4326,带有地理经纬度)。 纬度)。如需更详细的地理坐标参考资料,请参阅此[站点](英文)、 请参阅此 站点。如果您已经 如果您已经将地理数据重新投影到地理经纬度(EPSG:4326 纬度 (EPSG:4326) 系统,则无需明确定义输出坐标系。 如果 ogr2ogr 可以确定输入的空间参照系统,则无需明确定义输出坐标系。 可以确定输入的空间参考系。请注意,大多数形状文件 使用的是 EPSG:4326 系统。您可以通过执行以下命令来确定空间参考系 系统。

ogrinfo -al -so filename.json

假设 ogrinfo 报告的投影为 EPSG:27700、 我们可以执行以下命令将其转换为 EPSG:4326 命令将其转换为 EPSG:4326。

ogr2ogr -s_srs EPSG:27700 -t_srs EPSG:4326 -f GML filename.gml filename.json

如果地理数据已经在EPSG:4326中,则只需进行转换 通过执行以下命令将shapefile转换为GML。

ogr2ogr -f GML filename.gml filename.json

您将在shapefile所在的文件夹中找到创建的GML文件。

第3步-准备GML文件

不幸的是,GML文件尚未准备好导入。在其中打开 强大的文本编辑器,例如Geany(Linux)或Notepad ++(Windows)。 GML是 基于XML的格式,这意味着您将识别常规XML 标签层次结构。在GML文件中,组织单位表示为 <gml:featureMember>。在功能成员内部,我们通常会发现很多 属性,但是我们只是要导入它们的坐标。

为了从 GML 输入的地物成员中导入地理空间数据 输入的地理空间数据,DHIS2 必须将它们与数据库中的组织单位一一对应。 数据库中的组织单位相匹配。换句话说,地物成员元素必须包含一个 其相应组织单位的引用。引用本身 必须是三种可能的 DHIS2 标识符之一:uid**、code 或**name**。 名称。选择的标识符必须作为每个特征成员元素的属性提供。 属性。导入程序将查找具有 本地名称为 UidCodeName 的属性,例如 "ogr:Name "或 "anyPrefix:Code"。 "anyPrefix:Code"。

如果您的功能成员已经包含标识符的属性,则您 希望使用(例如区域名称)可以使用搜索和替换 在文本编辑器中将这些元素重命名为DHIS2将识别的名称 (请参见下表)。这通常是适用的工作流程 使用名称作为标识符时(源shapefile甚至GML 通常会包含其定义的每个区域的名称)。

表:支持 GML 导入的组织单位标识符

匹配优先级 识别码 有效拼写 保证独一无二
1 Uid uid, Uid, UID 是的
2 代码,代码,代码
3 名称 姓名,姓名,姓名

在重命名属性时,通常会找到一个名为 "ogr:DISTRICT*NAME"、"ogr:NAME_1 "之类的标签,并将其重命名为 "ogr:Name"。 "ogr:Name"。另一方面,如果使用 _code* 或 uid 标识符、 在 DHIS2 数据库中查找正确的值,然后通过 如果使用 _code* 或 uid_标识符,则可能需要在 DHIS2 数据库中查找正确的值,并通过 GML 文件 成员的属性。在任何情况下,都必须 在任何情况下,都必须认识到所使用的标识符必须**唯一**地标识一个组织单位(如 组织单位(例如,如果数据库中有两个组织单位的名称或代码相同 例如,如果数据库中有两个组织单位的名称或代码相同,则无法对其中一个进行正确匹配)。 )。由于 _uid 是唯一能保证唯一的标识符,因此是最稳健的选择。 是最稳健的选择。不过,由于名称匹配通常更容易 (由于名称已经是数据的一部分),解决唯一性冲突的可行方法是 解决唯一性冲突的可行方法是将任何非唯一命名的 组织单位匹配不同的标识符(最好是 uid),其余的则匹配名称。 其余单位的名称进行匹配。

如上表所示,有一个匹配的优先级,即 为同一功能成员提供了两个或多个标识符, 匹配将在最高优先级的标识符上执行。另请注意 GML中可以使用的有效属性。命名空间前缀 不重要,因为仅使用本地名称。

在准备 GML 文件时,一个常见的陷阱是语法或元素命名错误。 或元素命名错误。因此,请确保 GML 文件的所有属性 都以正确的相应标记开始和结束。 标记开始和结束。此外,还要确保属性名称的拼写符合指定的有效 属性名称的拼写。标识属性应 <ogr:Name>Moyamba District\</ogr:Name> 、 \<somePrefix:uid>x7uuia898nJ\</somePrefix:uid> or \<CODE>ou*12345\</CODE> 。另一个常见错误是没有确保 标识符完全匹配,尤其是在使用 _name* 属性时。 所有匹配都是在精确值上进行的,这意味着源 GML 文件中的 "Moyamba "不会被匹配。 源 GML 文件中的 "Moyamba "不会与数据库中的 "Moyamba District "匹配。 数据库中的 "Moyamba District "进行匹配。

简要查看标识符,并将其与 数据库中的相应值。如果它们看起来相当不错, 现在是时候在import-export模块中进行预览了。

进入**导入/导出应用项目**,单击**组织单位几何图形导入**并选择**GML**格式。选择 GML 文件并单击**开始模拟运行**,然后查看摘要。查找新的/更新的组织单位。我们的 我们的目的是将坐标添加到数据库中已有的组织单位中。 我们的目的是将坐标添加到数据库中已有的组织单位中,因此我们希望尽可能多地更新,而不新增。那些 被列为新单位的组织单位将被创建为根单位,并扰乱 DHIS2 中的组织单位树。 单位树。如果有列为新的组织单位,请单击编号,有关组织单位将出现在 有问题的组织单位就会出现在下面的列表中。如果有 与数据库中的组织单位名称相比有任何拼写错误 如果与数据库中的组织单位名称相比有任何轻微拼写错误,请更正后再次预览。否则,请点击 列表下方的 "全部放弃 "按钮,然后点击列表上方的 "全部导入 "按钮。 按钮。

如果导入过程成功完成,您现在应该可以 利用DHIS2 GIS中的地理数据。如果没有,请检查日志 寻找提示并查找常见错误,例如:

-名称在GML文件中重复。数据库中的名称列为 唯一,并且不接受两个具有相同名称的组织单位。

-数据库中organizationalunit表中的“ shortname”列 varchar定义太小。将其增加到100。

-GML文件中的特殊名称字符。确保将它们转换为 适当的XML等效项或转义序列。

-输入GML格式错误,标签不匹配