配置 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**。 名称。选择的标识符必须作为属性提供给每个特征成员元素。 属性。导入程序会查找具有 本地名称为 Uid、Code 或 Name 的属性,例如 "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格式错误,标签不匹配