我们正在开发应用程序。用户可以在地图上绘制对象,并希望使用该状态的某些序列化JSON表示将其上的所有绘制图形的位置和地图范围保存到我们的服务器。当用户通过点击位置项来到之后,我们想要使用服务器上相同的序列化JSON对象重新渲染我们在其上绘制的所有最后图形的相同状态。如何在ArcGIS javascript API中实现此功能。如果是,那么我们是否需要编写自己的要素图层呢?
答案 0 :(得分:0)
通常,您将使用要素服务来存储和提供数据(图形)。您可以使用local ArcGIS for Server installation或ArcGIS Online上的云中定义和发布要素服务。
发布要素服务后,使用ArcGIS API for JavaScript(JSAPI)FeatureLayer连接到该服务。查看一些editing samples,了解使用FeatureLayer和JSAPI中的其他模块管理要素服务中的数据的不同方法。
您还可以(可选)创建引用要素图层的web map,并定义其他地图属性,例如初始范围,底图等,然后让您的应用加载该网络地图。
至于持久化地图状态的其他部分(范围,可见图层,底图等),JSAPI目前还没有包含一种序列化这些东西的方法。根据地图的复杂程度,您可以将您关注的状态位序列化为您自己的自定义JSON格式并将其保存到本地存储。
我会避免尝试序列化地图状态的所有方面。这比听起来更复杂。在v 4.0中,JSAPI应该为您提供将地图对象序列化为Web地图JSON格式的功能,以便将其上传到Online / Portal。如果您现在需要这样做,可以尝试使用cereal作为起点。