希望能够在我的应用程序中保存和加载ESRI地图



我们正在开发应用程序,用户可以在地图上绘制对象,并希望将所有绘制图形的位置和地图范围保存到我们的服务器上,使用该状态的一些序列化JSON表示。当用户随后通过点击位置项目,我们想要重新渲染相同的状态与所有最后的图形,我们已经在它上面绘制使用相同的序列化JSON对象从服务器。如何在ArcGIS javascript API中实现此功能。我们是否需要编写自己的特征层?如果是,那么该怎么做?

通常情况下,您将使用功能服务来存储和提供数据(图形)。你可以定义和发布一个功能服务,既可以使用本地的ArcGIS服务器安装,也可以在云上的ArcGIS Online。

一旦你发布了一个特性服务,你就可以使用ArcGIS API for JavaScript (JSAPI) FeatureLayer来连接它。查看一些编辑示例,了解使用FeatureLayer和JSAPI中的其他模块来管理特性服务中的数据的不同方式。

你也可以(可选)创建一个web地图,引用你的功能层,以及定义其他地图属性,如初始范围,basemap等,然后让你的应用程序加载该web地图。

至于持久化地图状态的其他部分(范围、可见层、底图等),JSAPI目前还不包含序列化这些东西的方法。根据你的地图有多复杂,你可以把你关心的状态的比特序列化成你自己自定义的JSON格式,并保存到本地存储。

我将避免尝试序列化映射状态的所有方面。这比听起来要复杂得多。在v4.0中,JSAPI应该为您提供将地图对象序列化为web地图JSON格式的功能,以便可以将其上传到Online/Portal。如果您现在需要这样做,您可以尝试使用谷物作为起点。

最新更新