<?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 Re: WMTS - TileCol, TileRow and zoom are always 0 in ArcGIS Runtime SDK for iOS Questions</title>
    <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584695#M5053</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have you tried with runtime version 100.3 to see if it works any better?&lt;/P&gt;&lt;P&gt;Also, can you share your service so that we may debug this case&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Aug 2018 19:04:30 GMT</pubDate>
    <dc:creator>DiveshGoyal</dc:creator>
    <dc:date>2018-08-15T19:04:30Z</dc:date>
    <item>
      <title>WMTS - TileCol, TileRow and zoom are always 0</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584694#M5052</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Question about ArcGIS for iOS version&amp;nbsp;100.2.1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I can't display the layer via WMTS, even though the request seems to be fine. `TileCol`, `TileRow` and zoom in `TileMatrix` are 0. I've debugged my demo app with Charles, `GetCapabilities` request is passing fine. The app receives the layers, selects the proper one. But in&amp;nbsp;`GetTile` request, the request is wrong. Because relevant code snippet is very short I'm pasting it here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #de38a5;"&gt;private&lt;/SPAN&gt; &lt;SPAN style="color: #de38a5;"&gt;func&lt;/SPAN&gt; createMap() {&lt;/P&gt;&lt;P style="color: #08fa95; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #ffffff;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;&lt;SPAN style="color: #ffffff;"&gt;.&lt;/SPAN&gt;map&lt;SPAN style="color: #ffffff;"&gt; = &lt;/SPAN&gt;AGSMap&lt;SPAN style="color: #ffffff;"&gt;()&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;map&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;initialViewpoint&lt;/SPAN&gt; = &lt;SPAN style="color: #08fa95;"&gt;AGSViewpoint&lt;/SPAN&gt;(latitude: &lt;SPAN style="color: #8b87ff;"&gt;52&lt;/SPAN&gt;, longitude: &lt;SPAN style="color: #8b87ff;"&gt;0&lt;/SPAN&gt;, scale: &lt;SPAN style="color: #8b87ff;"&gt;9&lt;/SPAN&gt;)&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;mapView&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;map&lt;/SPAN&gt; = &lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;map&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #08fa95; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #ffffff;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;&lt;SPAN style="color: #ffffff;"&gt;.&lt;/SPAN&gt;wmtsService&lt;SPAN style="color: #ffffff;"&gt; = &lt;/SPAN&gt;AGSWMTSService&lt;SPAN style="color: #ffffff;"&gt;(url: &lt;/SPAN&gt;mapLink&lt;SPAN style="color: #ffffff;"&gt;())&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;wmtsService&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;load&lt;/SPAN&gt; {[weak &lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;] (error) &lt;SPAN style="color: #de38a5;"&gt;in&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;if&lt;/SPAN&gt; &lt;SPAN style="color: #de38a5;"&gt;let&lt;/SPAN&gt; error = error {&lt;/P&gt;&lt;P style="color: #ff4647; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN style="color: #ffffff;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #00b1ff;"&gt;print&lt;/SPAN&gt;&lt;SPAN style="color: #ffffff;"&gt;(&lt;/SPAN&gt;"Failed to load WMTS layer: &lt;SPAN style="color: #ffffff;"&gt;\&lt;/SPAN&gt;(&lt;SPAN style="color: #ffffff;"&gt;error.&lt;/SPAN&gt;&lt;SPAN style="color: #00b1ff;"&gt;localizedDescription&lt;/SPAN&gt;)"&lt;SPAN style="color: #ffffff;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;return&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;guard&lt;/SPAN&gt; &lt;SPAN style="color: #de38a5;"&gt;let&lt;/SPAN&gt; `self` = &lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;, &lt;SPAN style="color: #de38a5;"&gt;let&lt;/SPAN&gt; wmtsServiceInfo = &lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;wmtsService&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;serviceInfo&lt;/SPAN&gt; &lt;SPAN style="color: #de38a5;"&gt;else&lt;/SPAN&gt; { &lt;SPAN style="color: #de38a5;"&gt;return&lt;/SPAN&gt; }&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;let&lt;/SPAN&gt; selectedLayerInfo = wmtsServiceInfo.&lt;SPAN style="color: #08fa95;"&gt;layerInfos&lt;/SPAN&gt;.&lt;SPAN style="color: #00b1ff;"&gt;filter&lt;/SPAN&gt;({ $0.&lt;SPAN style="color: #08fa95;"&gt;layerID&lt;/SPAN&gt; == &lt;SPAN style="color: #ff4647;"&gt;"MyLayerID"&lt;/SPAN&gt;&amp;nbsp;}).&lt;SPAN style="color: #00b1ff;"&gt;first&lt;/SPAN&gt; ?? wmtsServiceInfo.&lt;SPAN style="color: #08fa95;"&gt;layerInfos&lt;/SPAN&gt;[&lt;SPAN style="color: #8b87ff;"&gt;0&lt;/SPAN&gt;]&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #de38a5;"&gt;self&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;map&lt;/SPAN&gt;.&lt;SPAN style="color: #08fa95;"&gt;basemap&lt;/SPAN&gt; = &lt;SPAN style="color: #08fa95;"&gt;AGSBasemap&lt;/SPAN&gt;(baseLayer: &lt;SPAN style="color: #08fa95;"&gt;AGSWMTSLayer&lt;/SPAN&gt;(layerInfo: selectedLayerInfo))&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P style="color: #ffffff; background-color: #000000; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;&lt;SPAN class=""&gt;&amp;nbsp; &amp;nbsp; &lt;/SPAN&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So firstly the request for `getCapabiities` is sent and it's looking fine - all elements: `scheme://host/path?args` are matching expected values (I've debugged it with Charles). I can see Esri receives 200 here, and the response is valid.&lt;/P&gt;&lt;P&gt;The next step ArcGIS should do, is to add&amp;nbsp;&lt;SPAN&gt;`&lt;/SPAN&gt;TileCol&lt;SPAN&gt;`, `TileRow`, and it does it, with 0 (captured it in Charles), it also changes the zoom in `TileMatrix` to 0. As a result, this particular API response is 403, but that's the bug of the API.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;In fact, when I paste this request to Postman and change the value of zoom inside `TileMatrix` (the map does not support zoom 0) to 9, I receive the error with type TileOutOfRange. This is proper because the map is only containing a part of the world (the UK in particular), and point 0,0 is not there. When I change&amp;nbsp;&lt;SPAN&gt;`&lt;/SPAN&gt;TileCol&lt;SPAN&gt;`, `TileRow` to real values the request passes with 200 and a tile is returned in the response.&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;So my question is why isn't ArcGIS asking for the given location? I've set initialViewpoint, and it is still filling the request with 0,0,0 as tileCol, tileRow and zoom in tileMatrix.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;The map does not load at all as a result, because ArcGIS is asking in this order (captured by Charles):&lt;BR /&gt;1) getCapabilities (response 200)&lt;BR /&gt;2) getTile (at 0,0,0; response 403)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;3) getTile (at 0,0,0; response 403)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&lt;SPAN&gt;4) infinite number of calls for getCapabilities (response 200)&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The map is empty. The network traffic is huge. Can I do anything to make it work (it's not opensource, I can't edit it)? Changing map API is not possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;--- PS. ---&lt;/P&gt;&lt;P&gt;It's also worth to notice, that GetCapabilities is responding with following json:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;lt;TileMatrixSetLink&amp;gt;
 &amp;lt;TileMatrixSet&amp;gt;EPSG:3857&amp;lt;/TileMatrixSet&amp;gt;
 &amp;lt;TileMatrixSetLimits&amp;gt;
 &amp;lt;TileMatrixLimits&amp;gt;
 &amp;lt;TileMatrix&amp;gt;EPSG:3857:7&amp;lt;/TileMatrix&amp;gt;
 &amp;lt;MinTileRow&amp;gt;36&amp;lt;/MinTileRow&amp;gt;
 &amp;lt;MaxTileRow&amp;gt;43&amp;lt;/MaxTileRow&amp;gt;
 &amp;lt;MinTileCol&amp;gt;60&amp;lt;/MinTileCol&amp;gt;
 &amp;lt;MaxTileCol&amp;gt;64&amp;lt;/MaxTileCol&amp;gt;
 &amp;lt;/TileMatrixLimits&amp;gt;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;and so on up to zoom level 20. So ArcGIS could know that 0,0,0 is not valid even from GetCapabilities file.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 16:39:42 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584694#M5052</guid>
      <dc:creator>NataliaOsiecka</dc:creator>
      <dc:date>2021-12-12T16:39:42Z</dc:date>
    </item>
    <item>
      <title>Re: WMTS - TileCol, TileRow and zoom are always 0</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584695#M5053</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Have you tried with runtime version 100.3 to see if it works any better?&lt;/P&gt;&lt;P&gt;Also, can you share your service so that we may debug this case&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Aug 2018 19:04:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584695#M5053</guid>
      <dc:creator>DiveshGoyal</dc:creator>
      <dc:date>2018-08-15T19:04:30Z</dc:date>
    </item>
    <item>
      <title>Re: WMTS - TileCol, TileRow and zoom are always 0</title>
      <link>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584696#M5054</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Unfortunately, we resigned from ArcGIS. Not being able to debug the code inside your framework while having such big black box components (which, as always, sometimes happen not to work properly) is a major threat for us and we've decided to use opensource libraries - this way we're able to fix it ourselves or add specific functionality we need.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For your debugging needs: service was this one:&amp;nbsp;&lt;A class="link-titled" href="https://apidocs.os.uk/docs/os-maps-wmts" title="https://apidocs.os.uk/docs/os-maps-wmts"&gt;WMTS · OS APIs&lt;/A&gt;.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 20 Aug 2018 07:23:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-runtime-sdk-for-ios-questions/wmts-tilecol-tilerow-and-zoom-are-always-0/m-p/584696#M5054</guid>
      <dc:creator>NataliaOsiecka</dc:creator>
      <dc:date>2018-08-20T07:23:32Z</dc:date>
    </item>
  </channel>
</rss>

