SQLite Geodatabase point features not rendered

764
4
07-21-2017 07:48 AM
MikkelHylden
Occasional Contributor

We have build a mobile app (I am working in the windows version currently) that uses SQLite geodatabase files for rendering at closer zoom scales, and VTPK files farther out.  These are generated via ArcGIS Pro using python scripts, and have been working well.  We recently updated the servers from Pro V1.4.1 to Pro 2.0, and are using the Runtime version 100.1.  After doing so, the geodatabase files no longer render all the point features in a runtime app.  The geodatabase has data in the tables, as viewed through SQLite, and features can be found using the search tool in our app (and the search zooms to the correct location), so it is not a case of the data being somehow truncated.

The geodatabase files generated are rather large (2.4 to 3.3 GB), but I have not seen anything indicating that there is a size limit on SQLite files.  It does not seem to matter if I generate the mobile packages via script or directly from ArcGIS Pro.  I also created a smaller Pro project with only a few layers - that one displays all features as expected.  Other, smaller geodatabase files show some point features but not all.  

Has anyone had a similar situation, and if so how can it be remedied? 

0 Kudos
4 Replies
JenniferNery
Esri Regular Contributor

By any chance, does your symbology for point features include `visualVariables`?


You can check using this code:

var useworkaround = ((ArcGISFeatureTable)l.FeatureTable).LayerInfo?.DrawingInfo?.Renderer?.ToJson()?.Contains("visualVariables") ?? false;

‍‍

If yes, you can mark UseAdvancedSymbology=false on the ArcGISFeatureTable before it is loaded.

If not, do you mind sharing repro code/sample/data with us?

0 Kudos
MikkelHylden
Occasional Contributor

Hi Jennifer – thanks for your reply.

I did some further debugging, and I don’t think it is related to the renderer. In all cases during the load, the layers come in showing a simple renderer, but with an empty symbology. This is true both of layers that display (secondary_ug_segment and junction_box) and layers that do not (transformer_oh_bank) in the examples from the immediate window pasted below. I don’t know what renderer would be getting applied, since all these are empty, but they all definitely have symbology in the APRX project that generates the geodatabase.

fl.Name

"secondary_oh_segment"

((ArcGISFeatureTable)fl.FeatureTable).LayerInfo?.DrawingInfo?.Renderer?.ToJson()

"{\"symbol\":{},\"type\":\"simple\"}"

fl.Name

"transformer_oh_bank"

((ArcGISFeatureTable)fl.FeatureTable).LayerInfo?.DrawingInfo?.Renderer?.ToJson()

"{\"symbol\":{},\"type\":\"simple\"}"

fl.Name

"junction_box"

((ArcGISFeatureTable)fl.FeatureTable).LayerInfo?.DrawingInfo?.Renderer?.ToJson()

"{\"symbol\":{},\"type\":\"simple\"}"

Mikkel

0 Kudos
JenniferNery
Esri Regular Contributor

Thanks, Mikkel for providing that information. I think empty symbol JSON means it's attempting to use advanced symbology. What version of the API are you using v100.1? Can you try this code with your geodatabase?

var geodatabase = await Geodatabase.OpenAsync(@"c:\data\sample.geodatabase");
foreach (var table in geodatabase.GeodatabaseFeatureTables)
{
    table.Loaded += (a, b) =>
      {
          var json = table.LayerInfo.DrawingInfo.Renderer.ToJson();
          System.Diagnostics.Debug.WriteLine(json);
      };
    table.UseAdvancedSymbology = false;
    MyMapView.Map.OperationalLayers.Add(new FeatureLayer(table));
}
0 Kudos
MikkelHylden
Occasional Contributor

After some additional testing, it turns out that the version I had been having problems with had an older (possibly pre-release) version of the 100.1 runtime DLL dated 6/5/2017. Running with what appears to be the current version, dated 6/22/2017, does not display these same issues. I’m not sure what changed in that file, although the sizes are also slightly different.

Thanks for your assistance with this Jennifer.

Mikkel

0 Kudos