首页 > 解决方案 > 如何在 Azure IndoorMaps 中为瓦片集指定设施 ID?

问题描述

我在这里遵循了 Azure Indoor Maps Creator 教程,但在这里使用了另一个存储库中的 python 脚本,以便更简单地上传地图文件。基本上不需要邮递员。

该示例连接了一个levelchanged事件处理程序并将事件数据输出到控制台。事件的数据facilityId始终为FCL13。我无法在任何地方找到此数据的指定位置。不在 python 脚本、示例数据 zipfile manifest.json 中,也不在 DWG 文件中(我查看这些文件的能力有限)。

我假设我应该能够指定要为其上传数据的设施,因此要么期望提供 API 调用(来自 python 脚本),要么它应该是 DWG 文件中的一些元数据。

我的意图是上传多个建筑物的楼层地图,因此需要对 facilityId 进行配置。将特定的瓦片集关联到不同的设施 ID 可以让我知道在 levelchanged 事件期间哪个设施的级别发生了变化。

为特定地图数据上传指定的 facilityId 数据在哪里?

标签: azure-maps

解决方案


创建数据集时会生成所有 Id(facilityId、levelId、unitId 等)。这些 ID 并不意味着手动设置。

可以列出加载在地图中的设施 ID,以及 manifest.json 中提供的名称、地址信息等。

注意:看起来“indoorTiles”源缺少 getShapes() 方法,因此需要一种解决方法来查询底层地图框。

map._getMap().querySourceFeatures('indoorTiles', {sourceLayer: 'Indoor facility'});

来自 Mapbox 关于querySourceFeatures()的文档:

由于要素来自切片矢量数据或在内部转换为切片的 GeoJSON 数据,因此要素几何可能会跨切片边界拆分或复制,因此,要素可能会在查询结果中出现多次。


推荐阅读