POST
|
OK, so I finally got this to work. The weblayer was fine. I was able to add points to it if I added it to other webmaps. The issue seems to be related to the workflow....maybe?? I first created the webmap by adding the layer to a map through the "Open in Map Viewer" button. The fix seems to be to open a webmap, and then add the layer through the "Add" button. Doing it this way, it works.
... View more
06-13-2024
05:55 AM
|
0
|
0
|
347
|
POST
|
Not really sure about usertype and role. I have other maps in Field Maps that I can edit in. This is a brand new layer, but I can edit it in AGOL and see the edits immediately in Field Maps. It was created in ArcGIS Pro, published as a Weblayer in AGOL. In AGOL I added it to a webmap, set the editing, and started testing.
... View more
06-12-2024
10:08 AM
|
0
|
0
|
359
|
POST
|
Hi. I've created map in AGOL for use in Field Maps. My collection layer has editing enabled, but in Field Maps I am not able to create a new point. What might be going wrong?? Here is a screenshot showing the map. The one point showing here was created in AGOL, so I know editing is enabled and working. I have my collection settings set to 10m accuracy, so that shouldn't be an issue either. Any ideas??
... View more
06-11-2024
12:13 PM
|
0
|
3
|
446
|
POST
|
Hi @ThadTilton . Thanks so much for looking into this a bit deeper and coming up with a solution. By commenting out the API line, it all seems to work. So do we not need API keys in order to develop in Maps SDK? All of the samples say you MUST have an API key, but I guess you don't?? I'm a little confused. Thanks,
... View more
10-30-2023
09:34 AM
|
0
|
1
|
911
|
POST
|
OK, so this is interesting. If I use the code in the OAuth sample from the "ArcGIS Maps SDK Sample for .NET", and just sub the webmap ID for the ID of my webmap, everything seems to work OK. In this OAuth sample it seems to use a class called "ArcGISLoginPrompt" and is a bit hard to follow exactly what is going on. Can anyone explain the difference between the OAuth tutorial which I have been struggling to get to work (https://developers.arcgis.com/net/security-and-authentication/tutorials/access-services-with-oauth-2-0/) and the sample in the .NET sample code (https://developers.arcgis.com/net/uwp/sample-code/). I still don't understand why I can't get the tutorial sample code to work, but if I can get a better understanding of the other sample project maybe I can roll with that. Thanks,
... View more
10-26-2023
10:42 AM
|
0
|
0
|
960
|
POST
|
Yes, I had a look at that sample, as well as the OAuth Tutorial sample, which is what I have been using. I guess two different ways of doing the same thing. I've just been rolling with the Tutuorial sample since it seemed easier to follow the structure of the code to figure out what was going on. I might try the other sample if this hits a dead-end, but there must be a way to ge this to work.
... View more
10-24-2023
05:39 AM
|
1
|
0
|
977
|
POST
|
Hi @JoeHershman So with my code, "Yes" it hangs at this line, but only when using an ID from one of my own AGOL account. When I use the webmap ID from the sample (41281c51f9de45edaf1c8ed44bb10e30) it works fine. PortalItem mapItem = await PortalItem.CreateAsync(portal, "4f7b45cd7d034ea9a09ec58658bff70d"); With the new code you provided I get basically the same problem, but it hangs at this line and never gets to the PoralItem line from above. var credential = await Esri.ArcGISRuntime.Security.AuthenticationManager.Current.GenerateCredentialAsync(sharingUri);
... View more
10-24-2023
05:25 AM
|
0
|
0
|
978
|
POST
|
Hi @JoeHershman As per the sample, here is what .RegisterSecureServer is doing (part of the AuthenticationHelper.cs part of the project....not posted above). The clientID and redirect Url are set earlier in the code and match what I have setup in the Developer dashboard. public static void RegisterSecureServer(string url,
string clientID = OAuthClientID,
string redirectUrl = OAuthRedirectUrl)
{
// Define the server URL, authentication type, client ID, and redirect URL.
ServerInfo portalServerInfo = new ServerInfo(new Uri(url))
{
TokenAuthenticationType = TokenAuthenticationType.OAuthAuthorizationCode,
OAuthClientInfo = new OAuthClientInfo(clientID, new Uri(redirectUrl))
};
// Register the server information with the AuthenticationManager.
AuthenticationManager.Current.RegisterServer(portalServerInfo);
} This is more or less, what you suggested, but currently not working. Not exactly sure how the redirect URL works, but I created exactly as the sample tutorial explained.
... View more
10-23-2023
08:27 AM
|
0
|
0
|
657
|
POST
|
Hi @ThadTilton . As far as I'm aware, with the esri samples if you do not provide an API key they will not work. There is a specific line of code/instructions that tells you to "insert API Key here". As for my login, I can definitely see the webmap when I login online. The map will also popup in my test app if I set the access level to "Everyone". It only doesn't work if I set the access level to "Private".....which should generate the username/password screen, but instead the app just hangs there. What's also weird is if I set my map to "Everyone" so that map actually loads, and then (in my code) add a layer that also needs authentication (esri World Traffic Service....just like in the sample), then I do get prompted for the username/password. It only seems to hang when my own webmap needs authentication. So this works when the webmap on line #12 is set to "Everyone", but as soon as I turn it back to "Private" everything hangs. private async Task SetupMap()
{
// Add the ArcGIS Online URL to the authentication helper.
AuthenticationHelper.RegisterSecureServer("https://www.arcgis.com/sharing/rest");
// Create a portal. If a URI is not specified, www.arcgis.com is used by default.
ArcGISPortal portal = await ArcGISPortal.CreateAsync();
// Get the portal item for a web map using its unique item id.
PortalItem mapItem = await PortalItem.CreateAsync(portal, "4f7b45cd7d034ea9a09ec58658bff70d"); //this is the ID of my AGOL webmap. When set to "Everyone" it will load.
// Create the map from the item.
Map map = new Map(mapItem);
// Create a layer to display the ArcGIS World Traffic service.
var trafficServiceUrl = "https://traffic.arcgis.com/arcgis/rest/services/World/Traffic/MapServer";
var trafficLayer = new ArcGISMapImageLayer(new Uri(trafficServiceUrl));
// Handle changes in the traffic layer's load status to check for errors.
trafficLayer.LoadStatusChanged += TrafficLayer_LoadStatusChanged;
// Add the traffic layer to the map's data layer collection.
map.OperationalLayers.Add(trafficLayer);
// To display the map, set the MapViewModel.Map property, which is bound to the map view.
this.Map = map;
}
... View more
10-23-2023
05:43 AM
|
0
|
0
|
669
|
POST
|
Hi, Yes, my testing has mainly be with useing the same dev. account and AGOL webmap. Not quite sure how it's all setup, but with the esri samples, you need to add your own API key and OAuth details. Those are both in my developer account, but in the samples all of the webmaps etc. that you access are esri resources, and everything seems to work using those ID's. There must be something I'm missing....I just have no clue what it would be.
... View more
10-16-2023
10:58 AM
|
0
|
0
|
684
|
POST
|
Thanks, but that didn't really maike any difference. Still just a blank screen. Seems like the only webmap I can get to work with login credentials is the esri sample one. I have a regular AGOL account as well as an Organizational account, and trying to load up a webmap from either one where I would need to enter credentials just doesn't work. Webmaps shared as "Everyone" seem to work fine.
... View more
10-16-2023
10:38 AM
|
0
|
1
|
687
|
POST
|
Yes, I am passing my API key. Do I need to do something in my Dev Account to link this API key directly to the webmap .... or some other kind of setting??
... View more
10-16-2023
09:35 AM
|
0
|
1
|
1485
|
POST
|
OK....so I've gotten things to the point where I think they should be working, but when I use the webmap ID for one in my organization, it just doesn't work. It just sort of hangs on the loading of the map and asking for login credentials. If I sub my webmap ID for the ID of the public ones that is in the esri samples, I get prompted for the login credentials and then everything loads up. Is there maybe a setting on my webmap I need to adjust?? I have no clue why I can't get this to work. Here is some code if it helps. Line #64 is where I am seeing the hang. // Copyright 2022 Esri
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
using System;
using System.Collections.Generic;
using System.Text;
using Esri.ArcGISRuntime.Geometry;
using Esri.ArcGISRuntime.Mapping;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using Esri.ArcGISRuntime.Portal;
namespace AccessServicesWithOAuth
{
class MapViewModel : INotifyPropertyChanged
{
public MapViewModel()
{
//SetupMap();
_ = SetupMap();
}
public event PropertyChangedEventHandler? PropertyChanged;
protected void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private Map? _map;
public Map? Map
{
get { return _map; }
set
{
_map = value;
OnPropertyChanged();
}
}
private async Task SetupMap()
{
// Add the ArcGIS Online URL to the authentication helper.
AuthenticationHelper.RegisterSecureServer("https://www.arcgis.com/sharing/rest");
// Create a portal. If a URI is not specified, www.arcgis.com is used by default.
ArcGISPortal portal = await ArcGISPortal.CreateAsync();
// Get the portal item for a web map using its unique item id.
PortalItem mapItem = await PortalItem.CreateAsync(portal, "41281c51f9de45edaf1c8ed44bb10e30"); //This is the esri sample ID
//PortalItem mapItem = await PortalItem.CreateAsync(portal, "29ad2fc9b8794fb0b6dc1ca02948613d"); //This is the ID of my webmap. If I change the sharing on this to
//"Everyone", then it loads up ok. Only won't load up when you need
//to enter credentials.
// Create the map from the item.
Map map = new Map(mapItem);
// Create a layer to display the ArcGIS World Traffic service.
var trafficServiceUrl = "https://traffic.arcgis.com/arcgis/rest/services/World/Traffic/MapServer";
var trafficLayer = new ArcGISMapImageLayer(new Uri(trafficServiceUrl));
// Handle changes in the traffic layer's load status to check for errors.
trafficLayer.LoadStatusChanged += TrafficLayer_LoadStatusChanged;
// Add the traffic layer to the map's data layer collection.
map.OperationalLayers.Add(trafficLayer);
// To display the map, set the MapViewModel.Map property, which is bound to the map view.
this.Map = map;
}
private void TrafficLayer_LoadStatusChanged(object? sender, Esri.ArcGISRuntime.LoadStatusEventArgs e)
{
// Report the error message if the traffic layer fails to load.
if (e.Status == Esri.ArcGISRuntime.LoadStatus.FailedToLoad)
{
var trafficLayer = sender as ArcGISMapImageLayer;
System.Windows.MessageBox.Show(trafficLayer?.LoadError?.Message, "Traffic layer did not load");
}
}
}
}
... View more
10-16-2023
08:46 AM
|
0
|
1
|
1492
|
POST
|
Thanks @JoeHershman . If I use that Authenticate with OAuth sample and modify the code, I can get it to work with my web map I am testing with, so I must have the OAuth setup properly in my Developers Account. I'll have to figure out how to add what is in this OAuth sample into my own app. It seems quite different than the sample I have been using here: https://developers.arcgis.com/net/security-and-authentication/tutorials/access-services-with-oauth-2-0/
... View more
10-12-2023
08:23 AM
|
0
|
0
|
1510
|
Title | Kudos | Posted |
---|---|---|
1 | 10-24-2023 05:39 AM | |
1 | 03-13-2023 08:42 AM | |
1 | 05-04-2022 10:42 AM | |
1 | 05-04-2022 08:22 AM | |
1 | 10-09-2019 12:34 PM |
Online Status |
Offline
|
Date Last Visited |
09-05-2024
07:45 AM
|