|
POST
|
A Lite license is all you'll need (it's free). While you're developing you typically don't use a license, and you see the "Licensed for developer use only" watermark on your map. When it comes time to deploy, you need to use a license. You can learn more here: https://developers.arcgis.com/net/license-and-deployment/
... View more
10-14-2025
08:44 AM
|
1
|
0
|
1163
|
|
POST
|
Feature Collections are also a great solution, and mean you can put your data anywhere in the operational layers stack (rather than drawn above it, as the graphics overlays are). Just a couple of things to bear in mind: While you can initially populate a FeatureCollectionTable at the Lite license level using one of these constructors, making subsequent changes to those features (adding, editing, or deleting features) uses the editing APIs, which will require a Basic license. FeatureCollectionTables are schema-based, defining the fields expected for each feature, whereas GraphicsOverlays don't require that. This could be a good thing or not. But as Morten mentioned, clustering is supported on Graphics Overlay for point graphics, so perhaps that'll provide what you need.
... View more
10-13-2025
11:45 AM
|
1
|
2
|
1199
|
|
POST
|
The simplest way to do this is to add Graphics to a Graphics Overlay. See this sample: https://developers.arcgis.com/net/wpf/sample-code/add-graphics-with-renderer/ Look at the MakePointGraphicsOverlay() method. A Graphic combines a geometry (in this case point) and optionally attributes, and can provide a symbol to determine what it will look like on the map (although you can optionally define a renderer on the Graphics Overlay to provide the symbol, which is what this sample does).
... View more
10-10-2025
10:49 AM
|
0
|
5
|
1318
|
|
POST
|
Hi @ZheWang66369 There's not really enough information here to know what might be going on. Does your app use feature services or local data files, for example? Does the app tear down the MapView at any point or swap out the Map? However, the more important issue here is that 100.11 is retired (see the Product Life Cycle). You should really upgrade to the latest long-term support 100.15.6 release, which will contain many bug fixes and security updates over the version you are using. Longer-term you should migrate your app to the ArcGIS Maps SDK for Swift. Please update your app to a supported version of the SDK and see if this issue still occurs.
... View more
10-09-2025
08:49 AM
|
0
|
1
|
1101
|
|
POST
|
I'm not an expert in this, but I think the file that does NOT have embedded SR will need both the XML auxiliary file AND a world file (which positions/scales the image). See this gist for an example, including some links at the bottom that talk some more about aux and world files.
... View more
09-26-2025
01:51 PM
|
0
|
0
|
852
|
|
POST
|
In addition to what @SomeGISGuy said above, since you mentioned creating a gallery, there is also the ArcGIS Maps SDK for .NET toolkit, which includes an open-source Basemap Gallery component.
... View more
09-26-2025
11:22 AM
|
0
|
0
|
837
|
|
POST
|
Hi @RTC The postscript is purely about the API Key capabilities introduced at ArcGIS Enterprise 11.4 (see link). If you're seeing that an API Key is invalid, it means it's not scoped to access the services you're using it for. For basemaps, simply follow the instructions here. API Keys can be created by either an ArcGIS Online account or an ArcGIS Location Platform account, but the important thing is to ensure that they're scoped for the service you want to access. Follow the instructions above to create an API Key and it should by default include Basemaps styles service access (which is what's needed for the service you're hitting.
... View more
09-18-2025
08:03 PM
|
0
|
1
|
1628
|
|
POST
|
Hi. This is likely not a licensing issue. API Keys don't impact licensing at all. They just provide access to services. Here's what I think is happening: I am taking a guess, but I expect that when you use an API Key, you are setting it globally on ArcGISEnvironment. When that happens, the SDK blindly uses that API Key across the board and doesn't even try the AuthenticationManager workflows, which are responsible for getting suitable access tokens for various services - in this case your logged-in user's access token via OAuth which will confer access to those web maps. To use both API Keys and named user access tokens, one brute-force approach is what you're doing now - you unset that global API Key, and the SDK will then get a token for the user in question, which of course gives them access to their web maps. A more refined approach might be to set the API Key specifically on the Basemap objects you create in code, and not at the global ArcGISEnvironment level. The key there is that Basemap implements APIKeyResource (scroll down to see which classes support this). Here's the full list of API classes that are APIKeyResources: This means you can specifically set an API Key on any of these, which will take precedence over any other token we might have (or try to get hold of) for that item through AuthenticationManager. If an API Key is NOT set, then the SDK will use AuthenticationManager. You could even use separate API Keys for RouteTask, LocatorTask, and Basemaps you create in code if you wanted, and the SDK will then fall back to AuthenticationManager for everything else. In a little more detail… when determining which access token to use for a remote resource, the SDK follows this logic: Does the object (e.g. RouteTask) have an API Key set on it explicitly? If so, use that. If not, is there a global API Key set on ArcGISEnvironment? If so, use that. If not, let's ask AuthenticationManager for an access token (e.g. OAuth, or your custom authentication challenge handler, etc.). Hope that helps. P.S. When I talk about API Keys above, I mean in the context of Location Platform and ArcGIS Online; the Native Maps SDKs do not yet support ArcGIS Enterprise API Keys.
... View more
09-18-2025
09:44 AM
|
0
|
2
|
1661
|
|
BLOG
|
We’re pleased to announce a special ArcGIS Runtime SDK for Android 100.15.7 100.15.8 patch release, adding 16KB page size support. Update (Jan 7, 2026): we have discovered an issue with the 100.15.7 patch release of ArcGIS Runtime SDK for Android that originally introduced 16KB page size support, and have released 100.15.8 to address it. If you are using 100.15.7, please update to 100.15.8. Follow the Install and set up instructions or download the release here. This release is key for customers still using the ArcGIS Runtime SDK for Android in apps in the Google Play Store. From November 1 2025, the Google Play Store will reject app updates that do not include 16KB page size support for 64-bit Android 15 devices. Even if developers are not planning further updates to their ArcGIS Runtime SDK for Android apps, they should consider adopting this patch release to ensure that users are not presented with a “page size compatible mode” alert whenever their apps are run on 64-bit Android 15 devices or later. Please note: This 100.15.8 patch release inherits the product life cycle of all 100.15.x releases: currently in Mature Support and entering Retirement on September 1, 2027. We recommend that developers using ArcGIS Runtime SDK for Android familiarize themselves with the product life cycle for the ArcGIS Runtime SDKs and plan to migrate their apps to ArcGIS Maps SDK for Kotlin. For those developers already using the ArcGIS Maps SDK for Kotlin, 16KB page size support was added in version 200.7 in April 2025. This article was updated on Jan 7 2026 to reflect the updated 100.15.8 patch release in place of the 100.15.7 patch release.
... View more
09-17-2025
06:16 AM
|
3
|
3
|
1813
|
|
POST
|
Excellent! Seems there's always another way to break things. Glad that was it, because otherwise I was out of ideas 🧐
... View more
09-05-2025
10:38 AM
|
1
|
0
|
1415
|
|
POST
|
Yes. That's correct. I still think the "forbidden" error is coming from the service (in contrast to us locking the API by license level). Has your mobile worker's Role been modified to disabled Network Analysis?
... View more
09-05-2025
10:13 AM
|
0
|
2
|
1419
|
|
POST
|
Hi @RTC. To clarify… there are two things being discussed here: Routing (creating turn-by-turn directions using the RouteTask API and the World Routing service or an MMPK) Navigating (following along the route, getting real-time guidance, using the RouteTracker API) There are also two other things that you talk about that are a bit muddied above: Licensing the SDK (Lite, Basic, Standard) Accessing the World Routing Service (with an appropriate access token) There's no licensing restriction to use the World Routing service or an MMPK to calculate turn-by-turn directions (Routes). However, you will need an appropriately scoped access token to use the World Routing service. To use the RouteTracker API for interactive navigation, you need a Basic license unless you are using the World Routing Service, in which case Lite is sufficient (when you pay Esri for the route calculation, that includes use of the RouteTracker API). That's covered in the Lite section of the Licensing and Capabilities table: Navigate a route using the RouteTracker API and ArcGIS location services. If you're using an MMPK (or some other routing service), then you need a Basic License to use the RouteTracker API. That's covered in the Basic section of the Licensing and Capabilities table: Navigate a route using the RouteTracker API and any ArcGIS routing service, or a network dataset that is stored locally on the device. So yes, Mobile Worker user type will allow you to use the interactive navigation guidance capabilities of the RouteTracker API with any service or local network dataset. But if you're using the World Routing service, you can even use the RouteTracker API with a Viewer user type. But: either way you need to make sure you have an access token for the World Routing service. I suspect that the "forbidden" error is because the access token you're using is not properly scoped (perhaps it just includes basemaps?). See this tutorial on selecting privileges. Hope that helps!
... View more
09-05-2025
08:21 AM
|
0
|
4
|
1436
|
|
POST
|
Hi @woodie. I was able to confirm that ANCPI deliberately took this action to prevent desktop GIS applications (both Esri and open source) from accessing the data as some of the data is sold via https://epay.ancpi.ro/epay/Welcome.action I'm unable to tell what the rules are, but they at least specifically block any user agent that contains "ArcGIS" (case sensitive). I'm told that QGIS is similarly blocked. You would need to petition ANCPI to make a change to their servers to allow the Native Maps SDKs to access them.
... View more
09-03-2025
10:43 AM
|
0
|
0
|
1006
|
|
POST
|
Hi. I took a look with the Swift SDK and it looks like your server is rejecting requests coming from the Native SDKs because of the User-Agent header. Not seen that before, but I reproduced this in Postman too. The Native SDKs add a User-Agent string to all requests. In my Swift SDK test app, the string is this: User-Agent: ArcGISMaps-Swift/200.7 (iOS 18.5; iPhone17,1,Simulator; devmode) com.esri.tutorial.Display-a-web-map/1.0 It'll be something similar for the Kotlin SDK. To open the layer, the SDKs will make a couple of metadata requests: https://geoportal.ancpi.ro/hosted_services/rest/info?f=json https://geoportal.ancpi.ro/hosted_services/rest/services/Hosted/imobile_cladiri/VectorTileServer?f=json If I make Postman GET requests to either of those URLs with no User-Agent header, I get valid JSON responses. But as soon as I add a User-Agent header like the one above, I get an HTML error response and the VectorTileLayer will fail to load with a "forbidden" error. Can you check with your server admin and see if there's configuration on the server that could be rejecting these User-Agent Native SDK headers? For reference, here's some sample output I get from the Swift SDK's ConsoleNetworkLogger: Request sent:
URL: https://geoportal.ancpi.ro/hosted_services/rest/info?f=json
Method: GET
Request headers: User-Agent: ArcGISMaps-Swift/200.7 (iOS 18.5; iPhone17,1,Simulator; devmode) com.esri.tutorial.Display-a-web-map/1.0
Request completed:
URL: https://geoportal.ancpi.ro/hosted_services/rest/info?f=json
Method: GET
Data: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /hosted_services/rest/info
on this server.</p>
</body></html>
Response headers: Connection: Keep-Alive, Content-Length: 227, Content-Type: text/html; charset=iso-8859-1, Date: Fri, 29 Aug 2025 19:10:26 GMT, Keep-Alive: timeout=5, max=100, Server: Apache, X-Content-Type-Options: nosniff To start to figure these things out, you can check the loadStatus on the VectorTileLayer or Map. I then used the ConsoleNetworkLogger to see the requests being made that were getting a loadStatus error, dug into the them a bit, and figured the only difference between a browser and the SDK might be the User-Agent string. I'm not familiar enough with Kotlin to recommend how to track requests like I can with the Swift ConsoleNetworkLogger, so I'll let someone on the Kotlin team pipe up if they have recommendations.
... View more
08-29-2025
12:37 PM
|
0
|
0
|
1117
|
|
POST
|
@Jeffrey_McNeal wrote: I am not familiar with Gist? Ah. Sorry. The link I provided in my first reply: https://gist.github.com/nixta/9cf3b53e3340dc3314c6db40af06c709 A "Gist" is just a small snippet hosted on GitHub.
... View more
05-13-2025
11:25 AM
|
1
|
0
|
1624
|
| Title | Kudos | Posted |
|---|---|---|
| 2 | a week ago | |
| 4 | 2 weeks ago | |
| 1 | 01-29-2026 09:39 AM | |
| 1 | 12-17-2025 10:12 AM | |
| 1 | 11-05-2025 10:52 AM |