<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ArcGISTiledMapServiceLayer - Use a bad URL in .NET Maps SDK Questions</title>
    <link>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58061#M625</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Everyone&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm in the process of writing an application that allows a user to have a base map displayed one of three ways.&lt;/P&gt;&lt;P&gt;1. The client identifies a local tpk they wish to use&lt;/P&gt;&lt;P&gt;2. The client identifies a URL for an ArcGISTileMapServiceLayer&lt;/P&gt;&lt;P&gt;3. If the two options above fail, we have a defaulted URL identified for loading a ArcGISTileMapServiceLayer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have proper handling in for dealing if a local TPKs can't be found; however I'm struggling with dealing with a bad URL being passed in. I'm coding for the notion that a client put in a type-o and provide them at worst with a default base map which we have identified.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my first function for testing for a local tpk:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadLocalTilePackage(string &lt;/STRONG&gt;&lt;SPAN style="color: #e23d39;"&gt;localTilePackage&lt;/SPAN&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTpkLayer = new ArcGISLocalTiledLayer(&lt;SPAN style="color: #e23d39;"&gt;localTilePackage&lt;/SPAN&gt;) { ID = &lt;SPAN style="color: #e23d39;"&gt;localTilePackage&lt;/SPAN&gt; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; var localTileTask = agsTpkLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (localTileTask.Exception != null)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var innerException in localTileTask.Exception.InnerExceptions)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FdmLogger.LogError("Trouble loading the local tile package: ", innerException.Message," ", localTilePackage, " Will attempt to load an online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTpkLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTpkLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is one version of the function I have tried so far in dealing with online tpk:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadOnlineTilePackage(string &lt;/STRONG&gt;&lt;SPAN style="color: #e23d39;"&gt;onlineTilePackage&lt;/SPAN&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var tiledUri = new Uri(&lt;SPAN style="color: #e23d39;"&gt;onlineTilePackage&lt;/SPAN&gt;);&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTiledLayer = new ArcGISTiledMapServiceLayer(tiledUri) { ID = &lt;SPAN style="color: #e23d39;"&gt;onlineTilePackage&lt;/SPAN&gt; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; var onlineTileTask = agsTiledLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; //the "Wait" below never comes back!!&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!onlineTileTask.IsCompleted) onlineTileTask.Wait();&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (onlineTileTask.Exception != null)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var innerException in onlineTileTask.Exception.InnerExceptions)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FdmLogger.LogError("Trouble loading the defined online tile package: ", innerException.Message, " ",&lt;/P&gt;&lt;P&gt;onlineTilePackage, " Will attempt to load the default online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a much more simplified version but the await never waits:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadDefaultOnlineTilePackage()&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var tiledUri = new Uri(_onlineDefaultTilePackage);&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTiledLayer = new ArcGISTiledMapServiceLayer(tiledUri) { ID = _onlineDefaultTilePackage };&lt;/P&gt;&lt;P&gt;&amp;nbsp; await agsTiledLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 18 Feb 2016 22:19:31 GMT</pubDate>
    <dc:creator>JimFiddes</dc:creator>
    <dc:date>2016-02-18T22:19:31Z</dc:date>
    <item>
      <title>ArcGISTiledMapServiceLayer - Use a bad URL</title>
      <link>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58061#M625</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey Everyone&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm in the process of writing an application that allows a user to have a base map displayed one of three ways.&lt;/P&gt;&lt;P&gt;1. The client identifies a local tpk they wish to use&lt;/P&gt;&lt;P&gt;2. The client identifies a URL for an ArcGISTileMapServiceLayer&lt;/P&gt;&lt;P&gt;3. If the two options above fail, we have a defaulted URL identified for loading a ArcGISTileMapServiceLayer.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have proper handling in for dealing if a local TPKs can't be found; however I'm struggling with dealing with a bad URL being passed in. I'm coding for the notion that a client put in a type-o and provide them at worst with a default base map which we have identified.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is my first function for testing for a local tpk:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadLocalTilePackage(string &lt;/STRONG&gt;&lt;SPAN style="color: #e23d39;"&gt;localTilePackage&lt;/SPAN&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTpkLayer = new ArcGISLocalTiledLayer(&lt;SPAN style="color: #e23d39;"&gt;localTilePackage&lt;/SPAN&gt;) { ID = &lt;SPAN style="color: #e23d39;"&gt;localTilePackage&lt;/SPAN&gt; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; var localTileTask = agsTpkLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (localTileTask.Exception != null)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var innerException in localTileTask.Exception.InnerExceptions)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FdmLogger.LogError("Trouble loading the local tile package: ", innerException.Message," ", localTilePackage, " Will attempt to load an online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTpkLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTpkLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is one version of the function I have tried so far in dealing with online tpk:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadOnlineTilePackage(string &lt;/STRONG&gt;&lt;SPAN style="color: #e23d39;"&gt;onlineTilePackage&lt;/SPAN&gt;&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var tiledUri = new Uri(&lt;SPAN style="color: #e23d39;"&gt;onlineTilePackage&lt;/SPAN&gt;);&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTiledLayer = new ArcGISTiledMapServiceLayer(tiledUri) { ID = &lt;SPAN style="color: #e23d39;"&gt;onlineTilePackage&lt;/SPAN&gt; };&lt;/P&gt;&lt;P&gt;&amp;nbsp; var onlineTileTask = agsTiledLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; //the "Wait" below never comes back!!&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!onlineTileTask.IsCompleted) onlineTileTask.Wait();&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (onlineTileTask.Exception != null)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var innerException in onlineTileTask.Exception.InnerExceptions)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FdmLogger.LogError("Trouble loading the defined online tile package: ", innerException.Message, " ",&lt;/P&gt;&lt;P&gt;onlineTilePackage, " Will attempt to load the default online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a much more simplified version but the await never waits:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadDefaultOnlineTilePackage()&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var tiledUri = new Uri(_onlineDefaultTilePackage);&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTiledLayer = new ArcGISTiledMapServiceLayer(tiledUri) { ID = _onlineDefaultTilePackage };&lt;/P&gt;&lt;P&gt;&amp;nbsp; await agsTiledLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 18 Feb 2016 22:19:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58061#M625</guid>
      <dc:creator>JimFiddes</dc:creator>
      <dc:date>2016-02-18T22:19:31Z</dc:date>
    </item>
    <item>
      <title>Re: ArcGISTiledMapServiceLayer - Use a bad URL</title>
      <link>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58062#M626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jim,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You should be careful when not using Task as a return type when using the await keyword.&lt;/P&gt;&lt;BLOCKQUOTE&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Async void is a "fire-and-forget" mechanism: the caller is &lt;/STRONG&gt;&lt;EM&gt;unable to know when an async void has finished, and the caller is &lt;/EM&gt;&lt;EM&gt;unable&lt;/EM&gt; to catch any exceptions from it. The only case where this kind of fire-and-forget is appropriate is in top-level event-handlers. Every other async method in your code should return "async Task".&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive-link-external-small" href="https://community.esri.com/external-link.jspa?url=https%3A%2F%2Fchannel9.msdn.com%2FSeries%2FThree-Essential-Tips-for-Async%2FTip-1-Async-void-is-for-top-level-event-handlers-only" rel="nofollow" target="_blank"&gt;https://channel9.msdn.com/Series/Three-Essential-Tips-for-Async/Tip-1-Async-void-is-for-top-level-event-handlers-only&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Feb 2016 10:39:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58062#M626</guid>
      <dc:creator>AnttiKajanus1</dc:creator>
      <dc:date>2016-02-19T10:39:04Z</dc:date>
    </item>
    <item>
      <title>Re: ArcGISTiledMapServiceLayer - Use a bad URL</title>
      <link>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58063#M627</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the reply Antti&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I ended up coming up with a solution last night that seemed to work. I will add my code example below so others can see what I've done. The real issues comes from connecting to an invlaid url and capturing it within a try catch resolved the issue.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;private bool _alreadyLoadedMap;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private async void MdsMapView_OnLoaded(object sender, RoutedEventArgs e)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //this gets triggered every time you leave the map view&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (_alreadyLoadedMap) return;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!string.IsNullOrEmpty(_localArcGisTileLocation))&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(&lt;STRONG&gt;LoadLocalTilePackage&lt;/STRONG&gt;(_localArcGisTileLocation))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _alreadyLoadedMap = true;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Task&amp;lt;bool&amp;gt; loadBaseMapTask = null;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (!string.IsNullOrEmpty(_onlineArcGisTileUrl))&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; loadBaseMapTask = &lt;STRONG&gt;LoadOnlineTilePackage&lt;/STRONG&gt;(_onlineArcGisTileUrl);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!loadBaseMapTask.IsCompleted)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; await loadBaseMapTask;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ((loadBaseMapTask != null &amp;amp;&amp;amp; !loadBaseMapTask.Result) || loadBaseMapTask == null)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;LoadDefaultOnlineTilePackage&lt;/STRONG&gt;();&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; _alreadyLoadedMap = true;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private bool LoadLocalTilePackage(&lt;/STRONG&gt;string localTilePackage&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTpkLayer = new ArcGISLocalTiledLayer(localTilePackage) { ID = localTilePackage };&lt;/P&gt;&lt;P&gt;&amp;nbsp; var localTileTask = agsTpkLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp; if (localTileTask.Exception != null)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var innerException in localTileTask.Exception.InnerExceptions)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FdmLogger.LogError("Trouble loading the local tile package: ", innerException.Message, " ", localTilePackage, " Will attempt to load an online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTpkLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTpkLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;private async Task&amp;lt;bool&amp;gt; LoadOnlineTilePackage(&lt;/STRONG&gt;string onlineTilePackage&lt;STRONG&gt;)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;{&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; var tiledUri = new Uri(onlineTilePackage);&lt;/P&gt;&lt;P&gt;&amp;nbsp; var agsTiledLayer = new ArcGISTiledMapServiceLayer(tiledUri) { ID = onlineTilePackage };&lt;/P&gt;&lt;P&gt;&amp;nbsp; try&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; await agsTiledLayer.InitializeAsync();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (agsTiledLayer.InitializationException != null)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FdmLogger.LogError("Trouble loading the online ArcGISTiledMapServiceLayer: ", agsTiledLayer.InitializationException.Message, " ", onlineTilePackage, " Will attempt to load the default online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MdsOverviewMapView.Map.Layers.Add(agsTiledLayer);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return true;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; catch (Exception ex)&lt;/P&gt;&lt;P&gt;&amp;nbsp; {&lt;/P&gt;&lt;P&gt;&amp;nbsp; FdmLogger.LogError("Trouble loading the online ArcGISTiledMapServiceLayer: ", ex.Message, " ", onlineTilePackage, " Will attempt to load the default online map");&lt;/P&gt;&lt;P&gt;&amp;nbsp; return false;&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;}&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Feb 2016 19:53:04 GMT</pubDate>
      <guid>https://community.esri.com/t5/net-maps-sdk-questions/arcgistiledmapservicelayer-use-a-bad-url/m-p/58063#M627</guid>
      <dc:creator>JimFiddes</dc:creator>
      <dc:date>2016-02-19T19:53:04Z</dc:date>
    </item>
  </channel>
</rss>

