Hello,
I have a web map and web mapping application I have access to. I have a layer I'd like to target, extract and create a shapefile. Is it possible to convert a layer from ArcGIS web map/web mapping application to a shapefile?
I see a Rest endpoint URL for the layer I'd like to create the shapefile from, however it looks as if it is not hosted on an ArcGIS Rest Service Directory. My thought was, I could create a query to return all data from the rest endpoint and return the results as a JSON. Then take the JSON, save it as a .json in a text file and use the geoprocessing tool to convert JSON to Feature Service. Then use the geoprocessing tool Feature Service to Shapefile.
I've also tried another way. I toggled on the layer I want to create the shapefile from in a web map. I then choose the save option to create a layer. I then went into ArcGIS Pro, create a new project and opened they layer I just saved. No data is brought into the ArcGIS Pro project. I suspect ArcGIS Pro wants a datasource from a DB, not a rest endpoint. Is this correct? When I go into the contents of the layer I saved and open it in mapviewer, all the data is displayed correctly and all the data in the attribute table is there as well.
I know this a round about way of doing things, but I do not see a feature layer of the layer I'd like to create a shapefile for. I also do not see options for export data.
Thanks!
I don't have a specific workflow to share but, in 3.X API based apps (classic web map, WebApp Builder apps, etc), once the ESRI map is loaded it was possible to convert the map layer of interest to JSON. Feature layers had a method called toJson and I have successfully used this to extract a layer from a map where the REST endpoint was not directly accessible. You would open the web developer tools of your browser, and then access the map object using the console line input and have the JSON dump out to the console. Once you had that, copy/paste that into a new text document with a JSON file suffix and then you could proceed like you described.
I'm not sure if the 4.x API has an equivalent method to call.