I am very new to ArcGIS. We are integrating ESRI map to our software (built in WPF).This is an offline map feature. We are using ArcGISLocalServer 100.6 to load file geodatabase to client. In File Geodatabase there are 7 feature tables and 3 standalone tables.
We will have around 30,000 nodes on the map, and the symbols will keep changing on the fly, based on some state change. Besides, we need to filter the nodes on the map very often. (Currently we are using DefinitionExpression) . The current solution is we are using LocalMapService to generate ArcGISMapImageLayer to display map in client side, and add symbols(changing on runtime) to a GraphicOverLay. The performance is bad, it takes more than 1 minute to query the filtered features (here, we use ArcGISMapImageSublayer.Table to load data) .
We are not sure if we are on the right direction.
Based on the limited ArcGIS knowledge I got, I guess there could be 2 other solutions I will try.
1. FeatureLayer with a uniquevaluerenderer.
Create a featurelayer with LocalFeatureService, and set a uniquevaluerenderer to featurelayer... (But here is a question, how can I change the state in client side. I guess I need to add a state column into FeatureTable. However, I do not want to save the runtime state value to remote filegeodatabse, is it possbile?)
2. GraphicOverLay with a UniqueValueRenderer.
Use LocalFeatureService to load all data into GraphicOverLay, and set a uniquevaluerenderer to GraphicOverLay..In this case, what is the best practice to filter graphics in GraphicOverlay...Is the performance as good as FeatureTable.DefinitionExpression.
Can someone tell me which is the best solution for me...