azure-maps - 如何在 Azure IndoorMaps 中为瓦片集指定设施 ID?
问题描述
我在这里遵循了 Azure Indoor Maps Creator 教程,但在这里使用了另一个存储库中的 python 脚本,以便更简单地上传地图文件。基本上不需要邮递员。
该示例连接了一个levelchanged
事件处理程序并将事件数据输出到控制台。事件的数据facilityId
始终为FCL13
。我无法在任何地方找到此数据的指定位置。不在 python 脚本、示例数据 zipfile manifest.json 中,也不在 DWG 文件中(我查看这些文件的能力有限)。
我假设我应该能够指定要为其上传数据的设施,因此要么期望提供 API 调用(来自 python 脚本),要么它应该是 DWG 文件中的一些元数据。
我的意图是上传多个建筑物的楼层地图,因此需要对 facilityId 进行配置。将特定的瓦片集关联到不同的设施 ID 可以让我知道在 levelchanged 事件期间哪个设施的级别发生了变化。
为特定地图数据上传指定的 facilityId 数据在哪里?
解决方案
创建数据集时会生成所有 Id(facilityId、levelId、unitId 等)。这些 ID 并不意味着手动设置。
可以列出加载在地图中的设施 ID,以及 manifest.json 中提供的名称、地址信息等。
注意:看起来“indoorTiles”源缺少 getShapes() 方法,因此需要一种解决方法来查询底层地图框。
map._getMap().querySourceFeatures('indoorTiles', {sourceLayer: 'Indoor facility'});
来自 Mapbox 关于querySourceFeatures()的文档:
由于要素来自切片矢量数据或在内部转换为切片的 GeoJSON 数据,因此要素几何可能会跨切片边界拆分或复制,因此,要素可能会在查询结果中出现多次。
推荐阅读
- git - git renormalizing 找不到所有需要它的文件
- arrays - Swift:使用基于嵌套数组的键创建字典
- scala - Sqlcontext parquet 读取抛出错误:java.lang.UnsupportedOperationException:输入流不支持字节缓冲区读取
- python - Chiplotle 仅适用于 python 2 吗?
- python - 基于 1 列和另一组的值合并 2 个 csv 文件
- amazon-web-services - 如何通过 Terraform 创建 EKS 节点的 Cloudwatch 警报
- ml.net - ML.Net 模型生成器教程和 Azure 机器学习系统不正确还是我遗漏了什么?
- android - 原生 android UI 组件,使其成为 npm 包
- vba - 使用 VBA 向 Outlook 邮件添加附件失败并出现错误 80070005(权限不足),但前提是邮件还没有附件
- python - Python复制粘贴文件