首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建具有实时地理坐标的Azure地图

创建具有实时地理坐标的Azure地图
EN

Stack Overflow用户
提问于 2022-04-13 10:08:48
回答 1查看 233关注 0票数 -1

我正在尝试用Azure Maps开发一个JS web应用程序,以显示基于地理坐标的位置/标记,即每隔几秒钟通过rest调用从外部接收地理坐标。

其想法是将地理坐标(通过JSON)传递给Azure Maps应用程序,每次更新Azure Map上标记的位置。有点像实时跟踪。

我查阅了官方的Azure地图文档和示例代码。但是,我找不到一个合适的例子来确定上面提到的场景是否适合使用Azure Maps进行开发。请建议使用Azure Maps开发场景的范围。

EN

回答 1

Stack Overflow用户

发布于 2022-04-13 17:28:34

这是一个非常直截了当的场景,有几种不同的方法可以实现。正如您所提到的,第一部分是您需要创建一个REST服务来将数据从服务器获取到前端应用程序,然后地图就可以使用它了。该体系结构将取决于您正在跟踪的项目的数量和更新频率。每隔几秒钟更新一次是相当容易的。

对于REST服务,有两条路径可供选择;

  • 模型,其中有一些代码,每隔X秒调用该服务并检索所有更新的数据。这是相当容易的代码,并且很容易限制更新频率,

  • ,一个推模型,其中您有一个流/ web套接字保持打开并不断发送更新。这允许更新更快地发送到前端,因为在更新请求之间没有等待。这是一个需要完成的更多工作,SignalR是一个很好的选择。

一旦在前端有了数据,就可以通过几种方式更新地图上数据的位置。

  • 如果您拥有所有位置的数据,只需使用新的数据替换您在地图中使用的数据源中的所有数据(使用setData函数,因为它将移除数据源中的所有数据,并将其替换为映射的一次重呈现)。如果您仅为项目的子集发送更新,则需要所有项目具有唯一的ID,用于从数据源检索形状并更新其在数据源中的位置值。数据源类有一个getShapeById方法。如果您有很多项要更新,那么更有效的方法是获取数据源中所有数据的JSON,然后循环遍历所有项并根据需要更新所需项,然后将经过编辑的JSON传递到setShapes函数中。

在Azure地图中,数据存储在数据源中,数据源连接到一个或多个呈现层。这意味着您只需要更新数据源中的数据,它就会相应地自动刷新地图。

这是一个不错的教程,如果您正在利用Azure IoT来监视项目的移动:https://learn.microsoft.com/en-us/azure/azure-maps/tutorial-iot-hub-maps

下面是另一个很好的代码示例:https://github.com/Azure/iot-workshop-asset-tracking

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71855674

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档