Using web maps in ArcGIS Runtime on high-level
Maps or web maps have become a central piece of the ArcGIS information model. Over the years, they have also changed how maps could or should be defined and used in ArcGIS Runtime applications. In this post, I will be taking a high-level look at what web maps are and why using them is a good idea.
In the next posts, I will be looking into the capabilities that the ArcGIS platform provides around the web maps from ArcGIS Runtime SDKs point of view. The idea is to look on how to use the platform to leverage functionality in the ArcGIS Runtime level and how to do that in code. The topics are based on the “Working with maps online and offline”-presentation but hopefully I will go to the scenarios in more detail.
This post is part of “using web maps”-series.
- Using web maps in ArcGIS Runtime on high-level
- Using web maps in ArcGIS Runtime: Simple architecture on ArcGIS Online
- Using web maps in ArcGIS Runtime: Accessing groups and items
What’s a web map?
You can find several different definitions or explanations of what web maps are if you look at the documentation around. Often people also use terms map and web map interchangeably. Here is my take on the definition.
Web maps are in general a framework for sharing geographically referenced data. They have 2 different parts of data, web map definition and item information. The web map definition is a json representation of the map and its content and implements Web Map Specification. The web map definition is typically stored and shared through ArcGIS Portal (ArcGIS Online or ArcGIS Enterprise) as ArcGIS Portal Items. These items define metadata about the map such title, description and terms of use. Web maps can also be stored locally as Mobile Map Packages (mmpk-file) or offline maps but more about these later. In my point of view, the definition of the map and the description of the map are logically one unit – a web map.
When these two parts are present, it is easy to share the web map between multiple clients and systems.
Why use web maps in ArcGIS Runtime?
Sure enough, that sounds all fine and dandy but what’s in for me? Here is a couple of good reasons why you should look into using web maps as part of the ArcGIS Runtime application.
Proper tools for map creation
You can use tools that are tailored for creating web maps such as the Map Viewer or ArcGIS Pro. These applications make it easy to search or create services and create, publish and share web maps. Use proper tools for the job.
Separation of responsibilities and specialisation
If you are a developer who is focused on the application development, you could focus on the application features and leave map creation for other team members. Often creating data architecture and maps is a very important part of the project and requires dedicated people with a different skillset.
Separation of concerns
Separation of concerns is a very used principle in software development. It makes sense to separate map definition from the application code and with web maps, you can achieve this very easily.
Dynamic content distribution with single configuration
Since the application is loading the map dynamically from the Portal, all the new updates made to the web map is delivered to the client. You can, for example, change the symbology, change popup definition or add a new layer and changes are used when the web map is loaded next time. You don’t need to make a new release just for this.
When you use one map in many from different clients, you can be sure that the changes are delivered to all of them since all of them are pointing into the same configuration. You could say that the web map is a single point of truth that contains the map definition.
Full platform and API support
As part of the key information model, web maps have full support from the ArcGIS Runtime SDK. Web maps also integrate directly to the ArcGIS Security Model and you can use the sharing functionality to define who has access to them. Web maps support workflows on connected and disconnected use as well.
Concerns with web maps
Not everything is without downsides. It makes sense that this is the same with using web maps as well.
Web map vs. ArcGIS Runtime map support
If you look to the functionality in the ArcGIS Runtime and then compare possible configurations in the web map, you will see that things are missing from the web map side. Labelling is a good example. Or if you require very complex and specific visualization, you might be better of implementing that part directly in the application.
Setting up portal might be overkill
Depending on the requirements and the scope of the project, it might be overkill to set up ArcGIS Online or ArcGIS Enterprise for the organisation. If they really need a simple map integration on their existing LOB application, it might not make any sense or just be too expensive.
Targeted vs. generic implementations
When generalised, you can implement support for a web map in two different ways.
Targeted implementation means that you design the application to work with a specific web map. In this case, you can rely on that the web map has certain things there or if they are missing, the map is in an invalid state. For example, we could assume that the map has a Hydrant feature layer that supports editing. You can have specific business rules defined in the application and the edits have to pass them to be valid. Targeted implementations are often used on projects that have a specific domain. Esri’s solution team, for example, uses these types of applications a lot.
Generic implementation cannot rely on any specific web map configuration. If you design the application to work with any web map, then the functionality has to be implemented fully rely on the configuration. Esri’s Explorer and Collector are very successful examples of these kinds of applications.
It really depends on the project on hand which style you should go with. Targeted implementations can be faster to write or contain advanced functionality where the reusability suffers. Generic implementations it’s another way around.
Summary
Web maps give you a simple and powerful way to distribute map configurations to the applications and are easy to reuse. The platform also provides a lot of very cool features around web maps that you leverage easily. That said, there are some downsides so just take some time to think the pros and cons through before deciding one way or another.
I would be interested to hear what do you think about using web maps and if I missed some pros or cons. If you have any comments, please comment below or ping me on twitter.
Edit log:
– Changed general implementation term to generic implementation