We have an old VB6 application that uses ESRI's VB map control to display map data that our customers' install locally on the laptops that are running the app.
I'm working on a XAML/WPF replacement using ArcGIS runtime for .NET, and I'm not having much luck getting started.
The customers use maps with varying degrees of sophistication, but some make extensive use of ArcMap capabilities, and configure varying numbers of controls within the map - feature queries, searches, distance measurement, etc. It's not clear to me to what degree ArcGIS runtime for .NET supports these. To date, I've not even been able to load a map. Or, rather, I've not been able to create a map package.
The customer who needs this first has sent me an .mxd file, with accompanying .gsd's. When I try to create a map package with runtime support, in ArcMap 10.4, I get errors:
What do I do next?
Do I ask the customer to rework their map data to not use VBScript? How much work are we asking the customer to do, to make their data work with ArcGIS runtime, when it worked just fine with the old VB control?
I have to assume they have a reason for using label and annotation expressions. Are there alternatives that will work with 10.4 ArcGIS runtime, that will still work in their existing 10.0 ArcGIS environment? How do they make these changes? Is there some way of automating the transformation?
Is there some alternative method for serving the map data that doesn't have these limits? If we have a local copy of ArcGIS running on the laptop, serving the data, could we display it using the Runtime .NET control?
Trying to tie new systems/applications back into legacy systems is always a challenge, workarounds usually just devolve into kludges that limit the ability to leverage what the new systems/applications have to offer. That said, sometimes it has to be tried to say, "no."
What are you doing with the map package once you create it? I assume you are not just giving it back to the people that gave you the MXD and data. The issues you are running into are fairly straightforward to address. Label and annotation expressions both support Python. Cleaning up projections isn't difficult and neither is altering symbol properties. The real question is how often will these map packages need to be created and this type of clean up work done?
For now, since this is early and you are sorting out workflow/methodology, I would just clean up the MXD yourself and see if you run into any other obstacles. It might be there is a show stopper right around the corner that you haven't run into yet, so investing in a final solution for one step of the process isn't worth the time until you know the entire process will work.
The only reason we need map packages is so that we can display them in our app, using the .NET SDK controls.
The MXDs are created by major utility companies, contain layers for all of their facilities, are changed almost daily, and are installed on the windows laptops by the customer, without our interaction.
We can't clean up the MXDs, and the decision has been made that we're not going to ask the customers to, either.
Essentially, we're abandoning any effort to use the ArcGIS Runtime for .NET SDK, and are going back to ArcObjects, which supports the MXD files without modification.