Hello everyone,
I am developing an iOS application using the ArcGIS SDK (version 100.15.0) and am encountering performance issues under specific conditions, for which I am seeking advice.
Problem Details:
Development Environment:
Questions:
If anyone has experienced similar issues or knows potential solutions, your insights and suggestions would be greatly appreciated.
Thank you very much.
Solved! Go to Solution.
Hi,
Thanks for the question and the detailed info.
In general, a map that gets into the hundreds of layers at a time raises some questions about the purpose or composition of the map. Given that a layer is meant to represent a type or category of data rather than a specific piece of data, you can see that 100 layers is a lot for a user to take in. Layers are database tables, not table rows, and you should really aim to consolidate data of one type into one table (i.e. layer).
Often when you have that many types of data, they are for visual reference and best consolidated into a single layer (or basemap layer). That can be efficiently packaged up as a vector tile layer and often removes a lot of complexity.
You mentioned a few things that I'd like to ask about:
You can see more discussion on this and other performance considerations here: https://developers.arcgis.com/ios/programming-patterns/performance-considerations/
To answer your questions:
Hopefully the above ideas will help you reduce the number of layers you're working with, which is almost certainly the primary thing you should focus on. But I am guessing a lot about what you might be doing and how your data is authored.
If you need more help then (depending on where you are globally) I would probably recommend a Professional Services engagement to dig deeper into your data workflows and use cases. Or if you have an Esri account manager or local distributor that you're working with, perhaps reach out to them and see if they have a preferred approach to getting some one-on-one help.
Hi,
Thanks for the question and the detailed info.
In general, a map that gets into the hundreds of layers at a time raises some questions about the purpose or composition of the map. Given that a layer is meant to represent a type or category of data rather than a specific piece of data, you can see that 100 layers is a lot for a user to take in. Layers are database tables, not table rows, and you should really aim to consolidate data of one type into one table (i.e. layer).
Often when you have that many types of data, they are for visual reference and best consolidated into a single layer (or basemap layer). That can be efficiently packaged up as a vector tile layer and often removes a lot of complexity.
You mentioned a few things that I'd like to ask about:
You can see more discussion on this and other performance considerations here: https://developers.arcgis.com/ios/programming-patterns/performance-considerations/
To answer your questions:
Hopefully the above ideas will help you reduce the number of layers you're working with, which is almost certainly the primary thing you should focus on. But I am guessing a lot about what you might be doing and how your data is authored.
If you need more help then (depending on where you are globally) I would probably recommend a Professional Services engagement to dig deeper into your data workflows and use cases. Or if you have an Esri account manager or local distributor that you're working with, perhaps reach out to them and see if they have a preferred approach to getting some one-on-one help.
Thank you for the detailed reply. I apologize for the late response.
To summarize, I was able to dramatically improve performance and successfully resolve the issue by recreating the mmpk file.
Layers are database tables, not table rows, and you should really aim to consolidate data of one type into one table (i.e. layer).
Indeed, that makes sense. Your words have given me confidence.
The mmpk in question was created by my client, but I requested them to recreate the mmpk file.
First, let me explain why there were so many layers initially. The mmpk file was created from a csv file using ArcGIS Pro's XY Table To Point (Data Management). This csv file contained a large number of XY coordinates, but since XY Table To Point creates one layer per coordinate, a large number of layers were created.
After merging these layers into one using Merge Layers, performance was successfully improved.
Additionally, there were 9 mmpks that were geographically divided, but as there was no benefit to this division, the mmpks themselves were also merged into a single layer. (This was simply done by copying and pasting each mmpk's layers into a single map in the ArcGIS Pro map editing screen.)
As a result, what was previously 1800 layers in 9 mmpks became less than 10 layers in a single mmpk. The size of the mmpk was also reduced from a total of 161 MB to 2 MB.
Excellent. That's great to hear. Thanks for confirming.
Seems strange to me that the Pro tool should create one layer per row. Perhaps the issue is with how the CSV file is being parsed. Either way, glad you've got a working solution!