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

地图{ #android_sdk_maps }

SDK 有一个 MapModule,用于下载和访问 DHIS2 中与地图有关的信息。

默认情况下,DHIS2 有一些基图:

  • OpenStreetMaps
  • 必应:需要在服务器中设置一个必应 api 密钥才能使其工作。
  • Azure:需要在服务器中设置 Azure 地图 API 密钥才能使其工作。

此外,还可以在维护应用程序中定义自定义底图。

所有这些地图图层都会在单独的调用中下载:

d2.mapsModule().mapLayersDownloader().downloadMetadata()

重要**

SDK 只下载 BASEMAP 类型的地图。

然后,可以像往常一样使用相应的集合存储库访问地图图层:

d2.mapsModule().mapLayers()
        .byName().eq("map_layer")
        .withImageryProviders()
        .get()

这些地图图层包含有用的信息,特别是使用地图 SDK 来显示它们:

  • imageUrl:它可能看起来像 https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png
  • 子域:地图提供商通常会提供一个子域列表,例如 ["a"、"b"、"c"、"d"]
  • subdomainPlaceholder:必须在 imageUrl 中替换的标记,本例中为 {s}
  • 外部:地图是用户定义的(外部)还是内置的(bing、azure、openstreetmaps)。
  • linkedLayerUid:某些图层(如 Azure 混合图层)由多个地图图层组成。在这种情况下,该字段包含该图层应在其上呈现的基础图层的 UID。

通过遍历子域列表并使用占位符替换 url 中的占位符,可以直接获取 imageUrls 列表。