配置 DHIS2 映射¶
语境¶
设置 DHIS2 地图仅意味着存储组织的坐标 您想要在数据库中的地图上显示的单位。坐标常常是 以专有格式分发,并且需要转换为 DHIS2 理解的格式。 ESRI shapefile 是一个常见的 用于桌面应用程序的地理空间矢量数据格式。你可能会发现 您所在国家/地区的 shapefile 此处 或 网络上还有许多其他地理空间数据存储库。一定的工作量 需要完成才能在 DHIS2 地图中使用这些坐标,即 将数据转换为合适的格式并确保名称 包含在地理空间数据中与名称完全匹配 他们应该匹配的组织单位。
仅具有 POINT 几何类型的组织单位可以通过 此时维护应用程序。要修改 POLYGON 几何形状,请使用 导入/导出应用程序中的组织单位几何导入。
要编辑组织单位的 POINT 坐标,请打开维护 应用程序并导航至“组织单位”部分。点击组织 您想要查看或编辑的单位,您可以搜索或过滤列表 在屏幕的左侧。选择组织单位后, 您可以编辑 纬度 和 经度 值来更新 POINT 坐标。如果组织单位具有 POLYGON 几何图形,则坐标 无法编辑。
如果您要添加或更新大量单位的坐标,或者 如果您需要更新多边形几何形状,您应该使用自动 **组织单位几何导入**将在下一节中进行说明。
重要**
DHIS2 支持的唯一坐标参考系(CRS)是 EPSG:4326、 也称为地理经度/纬度。坐标必须 存储坐标时,经度(东/西位置)必须在纬度之前。 纬度)之前。如果您的矢量数据使用的 CRS 不同于 如果您的矢量数据使用的是不同于 > EPSG 4326 的 CRS,那么在导入 > DHIS2 之前,您需要先重新投影数据。 导入 DHIS2。
导入 GeoJSON 格式的坐标¶
步骤 1 - 将地理空间数据转换为 GeoJSON 格式
如果您的数据已经是使用地理数据的 GeoJSON 格式,请跳过此步骤 经度和纬度。
推荐的地理格式转换工具称为 “ogr2ogr”。这应该适用于大多数 Linux 发行版 sudo apt-get install gdal-bin。对于 Windows,请访问 http://fwtools.maptools.org/并下载“FWTools”,安装并打开 打开 FWTools 命令 shell。在格式转换过程中我们还想要 确保输出具有正确的坐标投影 (称为 EPSG:4326,带有地理经度和纬度)。为了更多 详细地理坐标参考请参考这里 网站。如果您已经重新投影 将地理数据传输到地理纬度/经度 (EPSG:4326) 系统, 无需显式定义输出坐标系,假设 ogr2ogr 可以确定输入空间参考系。注意 大多数 GeoJSON 文件使用 EPSG:4326 系统。您可以确定 通过执行以下命令来建立空间参考系统。
ogrinfo -al -so 文件名.shp
此命令假设您的地理空间数据采用 ESRI Shapefile (.shp) 格式, 但支持其他几种格式。
假设 ogrinfo 报告的投影为 EPSG:27700、 我们可以执行以下命令将其转换为 EPSG:4326 命令将其转换为 EPSG:4326。
ogr2ogr -s_srs EPSG:27700 -t_srs EPSG:4326 -f GeoJSON 文件名.geojson 文件名.shp
如果地理数据已经在 EPSG:4326 中,您可以简单地转换 通过执行以下命令将 shapefile 转换为 GeoJSON。
ogr2ogr -f GeoJSON 文件名.geojson 文件名.shp
您将在与 shapefile 相同的文件夹中找到创建的 GeoJSON 文件。
第 2 步 - 简化/概括您的地理数据
地理数据文件中的边界通常也非常准确 更能满足基于网络的 GIS 的需求。这通常不会影响 在本地系统上使用 GIS 文件时的性能,但它是 通常需要优化基于网络的地理数据 DHIS2 GIS系统。所有地理数据都需要从以下位置下载 服务器并在浏览器中呈现,因此如果数据过于复杂, DHIS2 地图的性能将受到负面影响。这 优化过程可以描述如下:
对于多边形,我们可以通过以下方式使边界线不那么详细 删除一些线点。这种概括将 导致多边形退化。然而,之后 进行一些实验,可以得到最佳的泛化水平 发现,多边形的精度在视觉上是可以接受的,并且 性能最佳。备份您的文件 在你开始之前。一种可能的方法是使用 MapShaper 这是一个在线工具,可以 用于概括地理数据。要使用 MapShaper,只需上传 您的文件到该网站。然后,单击顶部菜单中的_Simplify_,然后 选择一种简化方法。屏幕顶部将显示一个滑块 从 100% 开始。通常将其拖至 30% 左右是可以接受的。 当您对结果感到满意时,单击右上角的“导出” 角落。选择“GeoJSON”文件格式,然后单击“导出”按钮 下载文件。使用新的简化版继续下一步 GeoJSON 文件。
第 3 步 - 准备 GeoJSON 文件
不幸的是,GeoJSON 文件尚未准备好导入。打开它在 强大的文本编辑器,例如 Geany (Linux) 或 Notepad++ (Windows)。 GeoJSON 是 基于 JSON 的格式。在 GeoJSON 文件中,组织单位表示为 特征。每个特征都应该有几何形状、属性(attribute)和 他们可以有一个ID。
为了从 GeoJSON 文件导入地理空间数据,DHIS2 必须匹配 每个组织的数据库中都有一个组织单位。每个 GeoJSON 换句话说,功能必须包含对其相应的引用 组织单位。引用本身必须是三种可能的之一 DHIS2 标识符:uid、代码 或 名称。
默认情况下,我们将尝试将组织单位 uid 与 GeoJSON 进行匹配 功能 ID。您可以添加或更改 id 字段,使其与 uid 匹配 组织单位。您还可以通过 GeoJSON 中的属性进行匹配 特征属性。该属性可以与组织**uid**进行匹配, 代码**或**名称。
请注意,使用的标识符必须**唯一**标识 组织单位(例如,如果有两个组织单位 相同名称或代码的数据库,这些无法正确匹配 任何一个)。由于 uid 是唯一保证唯一的标识符 最稳健的选择。但是,由于名称匹配通常更容易 (假设该名称已经是您数据的一部分)。
简要查看标识符,并将其与 数据库中的相应值。如果它们看起来相当不错, 现在是时候在import-export模块中进行预览了。
转到 导入/导出应用程序,然后单击 组织单位几何导入。 选择 GeoJSON 文件以及您希望如何将 GeoJSON 功能与 组织单位。单击 开始试运行 并查看摘要。 寻找新的/更新的组织单位。我们的目的是添加坐标 数据库中已有的组织单位,因此我们需要尽可能多的 尽可能更新,0 新。那些列为新的将被创建为 根单位并弄乱 DHIS2 中的组织单位树。如果有列出的话 作为新的,单击数字,将出现相关的组织单位 在下面的列表中。如果与以下内容相比有任何轻微的拼写错误 数据库中的组织单位名称 - 修复它们并再次开始试运行。 否则,请单击列表下方的“全部放弃”按钮,然后单击 **开始导入**按钮。
如果导入过程成功完成,您现在应该能够 利用 DHIS2 地图中的地理数据。如果没有,检查日志 获取提示并查找常见错误,例如:
- GeoJSON 文件中的名称重复。数据库中的名称列是 唯一且不接受两个同名的组织单位。
-数据库中organizationalunit表中的“ shortname”列 varchar定义太小。将其增加到100。
- GeoJSON 文件中的特殊名称字符。
- 输入 GeoJSON 格式错误,请使用 GeoJSONLint 来测试内容。
以 GML 格式导入坐标¶
注
仅支持 GML 2.0。建议使用 GeoJSON 格式。
第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格式错误,标签不匹配