IDEA
|
Prior to 100.14 the creation of a Map object with an AGOL basemap was done like this: new Map(Basemap.CreateStreetsVector()) Starting with 100.14 the recommended new syntax for creating the same is now this: new Map(new Basemap(BasemapStyle.ArcGISStreets)) The syntax changes is fine. But there is a behavior change also that impacts the integrity of the map structure. Prior to 100.14, immediately after creating the map, you could inspect the new Map object and see that a basemap layer object is present. It isn't necessarily loaded yet...but structurally it is there represented. This allows independent parts of the application to look at the map structure and react accordingly. For example, if you were building a layer list UI you could see the basemap layer is present and represent it. Starting with 100.14, if you inspect the new Map object the basemap layer you told it to start with just isn't even there. It only shows up when, and IF, the basemap layer loads. This makes it very difficult to build independent parts of an application that can inspect the map structure and build a UI around it accordingly. And if you happen to be offline (temporarily or part of an offline application) then the basemap never does load and show up in the structure. After discussion with technical support it was explained that: The reason the Basemap.CreateStreetsVector() is deprecated is because of the move to API Key accessed AGOL basemaps. Basemap.CreateStreetsVector() initializes the basemap from a hard-coded list of basemap layers. Thus, the basemap layer can be returned as "loaded", since all layers are known. Conversely, BasemapStyle initializes the basemap from a REST end point of basemap layers, protected by the API Key access. Thus, the basemap layer is not "loaded" automatically because it doesn't assume the required API Key authentication has taken place upon initial object creation. The recommendation is to use the LoadAsync to insure the basemap layer loads and appears in the map's AllLayers list. There are two replies I have to this answer. The "designed behavior" seems to be driven by the implementation of license checks instead of pure object-oriented structuring. If I add a layer to the map, then ask it what layers it has, I expect to see the layer I just added in the list... There already exists a status property for layers that captures the lifecycle of loading that could be used to determine its "load state". There may be various reasons the layer is taking time to load (e.g. authenticating, slow network, etc.). Layers can be in a Loading state, Loaded state, or could end up in an Error state. This seems like it could/should apply to basemap layers just the same regardless of licensing checks that may be happening in the background implementation. It seems reasonable to have the basemap layer be there upon inspection even if it's not loaded yet.
... View more
08-03-202211:47 AM
|
0
|
2
|
508
|
POST
|
If I have a BIM model published in a scene at a URL like "http://mydomain.com/home/webscene/viewer.html?webscene=1234123412341234" are there any additional query parameters I can use to select a specific element in the model?
... View more
05-06-202006:12 AM
|
0
|
1
|
441
|
POST
|
It appears using a TextSymbol with FontAwesome is doable in the JS SDK: //www.gobook3.com/thread/222045-extend-esri-icon-fonts-with-fonts-awesome. I'm not sure how to do the equivalent in a .Net SDK app, specifically a Xamarin Forms app in this case. FontAwesome is bundled and deployed with the app. I'm able to create the TextSymbol and put it on the map no problem. Color and size and all that are honored. But the font family is obviously not right (with all the name variations I've tried). It always shows up as a nicely sized and colored rectangle: Any ideas if it's just a certain format for the FontFamily to reference the font files bundled with the app? Or do the fonts have to be bundled a different way? Or is this not doable?
... View more
06-18-201911点
|
1
|
0
|
456
|
POST
|
I have successfully created an offline MMPK using the methods: - ArcGISPortal.CreateAsync to create the portal wrapper - PortalItem.CreateAsync to create the portal item wrapper - OfflineMapTask.CreateAsync to create the task - task.GenerateOfflineMap to create the job - job.GetsResultsAsync to cause it to download I have successfully opened and connected to the MMPK using: - MobileMapPackage.OpenAsync The question is...is there a way to get the MMPK to update/receive changes made from the portal again? Not even looking for 2 way updates just want to make sure the offline info is up to date. I know you can sync edits like this: Sync offline edits—ArcGIS Runtime SDK for .NET (WPF) | ArcGIS for Developers . But was looking for something that included all the layers including the basemap tiles... Thanks!
... View more
10-21-201707:39 AM
|
0
|
4
|
845
|
Title | Kudos | Posted |
---|---|---|
1 | 06-18-201911点 |
Online Status |
Offline
|
L日期ast Visited |
a week ago
|