POST
|
More information here: https://developers.arcgis.com/net/license-and-deployment/use-a-license-in-your-app/#how-to-use-a-license-string-in-your-app
... View more
06-27-2024
10:55 AM
|
0
|
0
|
259
|
POST
|
I believe the WMS service defines a list of supported spatial references that you can use. If you check the capabilities for the service here: https://crop.csiss.gmu.edu/cgi-bin/wms_cdl_ia/cdl_2020_ia/wms?SERVICE=WMS&REQUEST=GetCapabilities You'll see that the layers define the following spatial references (CRS): <CRS>epsg:5070</CRS>
<CRS>epsg:102004</CRS>
<CRS>epsg:4326</CRS>
... View more
01-10-2024
01:46 PM
|
0
|
0
|
365
|
POST
|
I tested your code using the ArcGIS Maps SDKs for .NET samples and it worked as expected. Maybe this can help you troubleshoot (?). Using the "Display feature layers" sample, I added the following lines from your code at this location: https://github.com/Esri/arcgis-maps-sdk-dotnet-samples/blob/main/src/WPF/WPF.Viewer/Samples/Layers/DisplayFeatureLayers/DisplayFeatureLayers.xaml.cs#L156 QueryParameters queryParams = new QueryParameters { WhereClause = "" }; //all
FeatureQueryResult result = await trailheadsGeodatabaseFeatureTable.QueryFeaturesAsync(queryParams);
IEnumerable<ArcGISFeature> features = result.Cast<ArcGISFeature>();
int count = features.Count(); //break here, 0 results???? For this geodatabase, 'count' had a value of 475.
... View more
12-08-2023
11:12 AM
|
0
|
1
|
719
|
POST
|
OK, with the help of some colleagues here on the Maps SDK .NET team, I think we've narrowed down the issue. If you look at the raw JSON for either of the layers, you'll see templates defined that look something like this: "templates" : [
{
"name" : "Nor Reviewed",
"description" : "",
"drawingTool" : "esriFeatureEditToolPoint",
"prototype" : {
"attributes" : {
"Id" : "false"
}
}
}
] The template refers to the ID field (or GlobalID in others). Those fields store GUID types but the template specifies a value of "true" or "false". When trying to load the layer, Maps SDK for .NET fails when parsing that because it can't convert those values to a UUID. I'm not sure how this definition is authored, but if you can find a way to remove that or reauthor the definition to exclude those settings, the layers should load as expected.
... View more
11-01-2023
04:54 PM
|
0
|
1
|
1115
|
POST
|
Hi Pierre, I queried all the GUID and GlobalID fields in the pipes and manholes layers and checked them in a simple .NET program to see if they were valid. I wasn't able to find any invalid GUIDs. I also brought the layers into Pro and wasn't able to find anything unusual. Perhaps I can try to reproduce this with some of my own data and try to narrow down the issue.
... View more
11-01-2023
02:50 PM
|
0
|
0
|
1119
|
POST
|
I get "the username you entered is not part of this organization" when I try to access it.
... View more
10-31-2023
01:17 PM
|
0
|
1
|
1138
|
POST
|
Hi Pierre, I'm not sure what's going on here. I wonder if the error is complaining about the ID that's used to identify the layer in the FeatureService portal item. The value of "i" in this line of code: var featureLayer1 = new FeatureLayer(item, i) { MinScale = 500000000, MaxScale = 1 };
... View more
10-30-2023
12:29 PM
|
0
|
5
|
1170
|
POST
|
There are lots of resources you might use in your app that require authentication, either with an API key, user authentication, or some other approach (see the Types of authentication doc topic for more info). API keys are commonly used for access to location services such as basemaps, geocoding, and routing. User authentication (such as OAuth) is often used so your app can gain access to private content or subscription services. There are a variety of factors that might guide you towards using one or the other and you might even use more than one in your app. For example, if you wanted to use user authentication for accessing private content, but also use an API key only for the basemap, you could set the basemap key with code like this: map.Basemap.ApiKey = "YOUR_API_KEY"; It looks like setting the API key globally for the app (ArcGISRuntimeEnvironment.ApiKey) caused the app to attempt to use the API key to access the private content rather than user authentication. I would expect the app to fall back to user authentication if the API key can't provide access, but it doesn't seem to work that way. I think we need to improve our documentation to describe some of these workflows a little better. I'm glad you were able to get it working, though! 👍
... View more
10-30-2023
11:55 AM
|
1
|
0
|
924
|
POST
|
As for the differences between the tutorial and sample code, they're actually doing the same thing. In fact, the AuthenticationHelper class in the tutorial is based on the ArcGISLoginPrompt class used in the sample. The essential code from that class was used in the tutorial and simplified as much as possible. For example, the RegisterSecureServer function in the tutorial is a simplified version of the sample's SetChallengeHandler function (the lines in that function to set the ChallengeHander and OAuthAuthorizeHander were simply added to the AuthenticationHelper's constructor in the tutorial version). PromptCredentialAsync() are identical in both, as is the OAuthAuthorizeHandler class. It's worth exploring why they seem to be behaving differently. Perhaps there are some key differences outside this code that contribute to that.
... View more
10-28-2023
12:47 PM
|
1
|
0
|
214
|
POST
|
Hi Brian, I was able to tinker with this a bit today. I think I ran into the same problem you described and I was able to find a solution. For me, I found that having an API key set prevented the app from challenging for the secured web map. With the API key defined (in App.OnStartup), the app would throw an exception that said I don't have permission to access the resource (without challenging me for a login). If I commented out the line that set the API key, I was challenged for username/password and the secure webmap loaded as expected. It seems that the app was trying to authenticate with the API key and didn't try to use OAuth at that point. I think this works with the tutorial data because it's authenticating for a single (premium) layer rather than for a secure (private) web map item. In this case, it seems to effectively use the API key for the basemap layer and OAuth for the traffic layer. I think it's a little unclear how the API key and user authentication work together. I think this needs some better documentation. Looking at the developer guide, I found a description of setting an API key's scope to allow access to private ArcGIS Online items. This is currently in beta and has some limitations. The API key tutorial also describes the steps to enable that access. You might want to try following the instructions to scope your API key to access your web map and see if you can access it without using OAuth. Another option is to try just commenting out the line that sets the API key (in your project based on the tutorial) and see if OAuth challenges the user for access. -Thad
... View more
10-28-2023
11:56 AM
|
2
|
4
|
2368
|
POST
|
Also, you might find this useful for determining the relative scale value for various "zoom levels" (world, region, city, street, etc): Zoom level to scale converter (it's a little hidden on the page, you need to expand the link that says "Zoom level to scale converter")
... View more
10-25-2023
08:42 AM
|
0
|
0
|
772
|
POST
|
Hi! The SetViewpointScaleAsync() method takes a double to represent the scale (not a Viewpoint). It will zoom in to the current center point. Try it with just the value 5000 and see if that works. If you want to provide a specific point to zoom to (at a specified scale), try SetViewpointAsync() and provide a Viewpoint that defines a point and a scale (as you've done above). I hope that helps! Thad
... View more
10-25-2023
08:38 AM
|
0
|
1
|
774
|
POST
|
If you successfully log in with OAuth, you don't need to provide an API key. If it works for the map used in the sample but not for your map, perhaps the account you're logging in with does not have the expected access to that map. If you log in to ArcGIS Online with the same creds, can you access the web map?
... View more
10-19-2023
10:03 AM
|
0
|
0
|
693
|
POST
|
You could achieve this using a geoprocessing task to create the individual viewsheds and display them as graphics overlays. It would be a much less dynamic user experience, but it would work fine for some use cases. See the .NET sample for viewshed with a geoprocessing service: https://developers.arcgis.com/net/winui/sample-code/analyze-viewshed-geoprocessing/ Perhaps even a hybrid approach, where one viewshed comes from the geoprocessing task (displayed as graphics) and the other is from the analysis overlay?
... View more
10-17-2023
12:39 PM
|
1
|
0
|
393
|
POST
|
You can use any web map as your basemap, so if you find a public one (or create one yourself) you can use code like this without providing an API key: // Create a new Map with the 'World Globe 1812' web map as the base map.
var webMapItemUrl = "https://www.arcgis.com/home/item.html?id=ef5920f160bd4239bdeb1348de3a3156";
var basemap = new Basemap(new System.Uri(webMapItemUrl));
Map myMap = new Map(basemap);
... View more
10-13-2023
09:54 AM
|
0
|
0
|
657
|
Title | Kudos | Posted |
---|---|---|
1 | 03-14-2019 01:59 PM | |
1 | 10-17-2023 12:39 PM | |
1 | 10-30-2023 11:55 AM | |
1 | 10-28-2023 12:47 PM | |
2 | 10-28-2023 11:56 AM |
Online Status |
Offline
|
Date Last Visited |
07-08-2024
04:55 PM
|