<?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 Snappingmanager does not work. is map._getFrameWidth() the problem? in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166548#M15459</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm working on a webapplication which requires snapping on some layers. I've enabled snapping using these lines of code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var map = this.app.map;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt; this.snappingManager = map.enableSnapping({&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alwaysSnap: true,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapPointSymbol: esri.symbol.SimpleMarkerSymbol(),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tolerance: t,//t is a parameter in the complete function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapKey: dojo.keys.copyKey&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;&lt;P&gt;But when I try to snap to my layers, it does not work. I tried to debug my code and saw some behaviour which seems strange in the SnappingManager.js code from the javascript api&lt;/P&gt;&lt;P&gt;When the Snappingmanager is in the _getSnappingPoint function, the following code is executed:&lt;/P&gt;&lt;P&gt;n = this.map._getFrameWidth(); variable n is used in this function in various places&lt;/P&gt;&lt;P&gt;In my case n has the value undefined and I think therefore the other parts of the function fail.&lt;/P&gt;&lt;P&gt;I had a closer look at the _getFrameWidth function which gives an undefined&lt;/P&gt;&lt;P&gt;_getFrameWidth: function() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var a = -1, b = this.spatialReference._getInfo();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.__LOD ? (b = this.__LOD._frameInfo) &amp;amp;&amp;amp; (a = b[3]) : b &amp;amp;&amp;amp; (a = Math.round(2 * b.valid[1] / (this.extent.getWidth() / this.width)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a&lt;/P&gt;&lt;P&gt;In the first line of code I get a null&amp;nbsp; for this.spatialReference._getInfo(); because my map is in WKID 28992&lt;/P&gt;&lt;P&gt;However the map has&amp;nbsp; a .__LOD, so the function will try to use this in the tenary operaion and assign the _frameInfo from the LOD to b and then tries to get a&amp;nbsp; value from this array. However my array is empty, because my __LOD looks like this: &lt;SPAN style="color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;"&lt;/SPAN&gt;&lt;SPAN class="console-formatted-string source-code" style="color: #c41a16; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;{"scale":1216.7116413886708,"_frameInfo":[]}&lt;/SPAN&gt;&lt;SPAN style="color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I compared my map to one of the examples from Esri and in this map the __LOD&amp;nbsp; looks like this:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="console-formatted-string source-code" style="color: #c41a16; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;{"level":17,"resolution":1.1943285668550503,"scale":4513.988705,"startTileRow":214,"startTileCol":0,"endTileRow":130857,"endTileCol":131071,"_frameInfo":[131072,0,131071,33554432]}&lt;/SPAN&gt;&lt;SPAN style="color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;And snapping works fine when I added a snapping manager from the Chrome Console into the example&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 03 Sep 2014 15:37:17 GMT</pubDate>
    <dc:creator>JoëlHempenius1</dc:creator>
    <dc:date>2014-09-03T15:37:17Z</dc:date>
    <item>
      <title>Snappingmanager does not work. is map._getFrameWidth() the problem?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166548#M15459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm working on a webapplication which requires snapping on some layers. I've enabled snapping using these lines of code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var map = this.app.map;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="line-height: 1.5;"&gt; this.snappingManager = map.enableSnapping({&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; alwaysSnap: true,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapPointSymbol: esri.symbol.SimpleMarkerSymbol(),&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tolerance: t,//t is a parameter in the complete function&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snapKey: dojo.keys.copyKey&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;/P&gt;&lt;P&gt;But when I try to snap to my layers, it does not work. I tried to debug my code and saw some behaviour which seems strange in the SnappingManager.js code from the javascript api&lt;/P&gt;&lt;P&gt;When the Snappingmanager is in the _getSnappingPoint function, the following code is executed:&lt;/P&gt;&lt;P&gt;n = this.map._getFrameWidth(); variable n is used in this function in various places&lt;/P&gt;&lt;P&gt;In my case n has the value undefined and I think therefore the other parts of the function fail.&lt;/P&gt;&lt;P&gt;I had a closer look at the _getFrameWidth function which gives an undefined&lt;/P&gt;&lt;P&gt;_getFrameWidth: function() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var a = -1, b = this.spatialReference._getInfo();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.__LOD ? (b = this.__LOD._frameInfo) &amp;amp;&amp;amp; (a = b[3]) : b &amp;amp;&amp;amp; (a = Math.round(2 * b.valid[1] / (this.extent.getWidth() / this.width)));&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return a&lt;/P&gt;&lt;P&gt;In the first line of code I get a null&amp;nbsp; for this.spatialReference._getInfo(); because my map is in WKID 28992&lt;/P&gt;&lt;P&gt;However the map has&amp;nbsp; a .__LOD, so the function will try to use this in the tenary operaion and assign the _frameInfo from the LOD to b and then tries to get a&amp;nbsp; value from this array. However my array is empty, because my __LOD looks like this: &lt;SPAN style="color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;"&lt;/SPAN&gt;&lt;SPAN class="console-formatted-string source-code" style="color: #c41a16; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;{"scale":1216.7116413886708,"_frameInfo":[]}&lt;/SPAN&gt;&lt;SPAN style="color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;"&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I compared my map to one of the examples from Esri and in this map the __LOD&amp;nbsp; looks like this:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="console-formatted-string source-code" style="color: #c41a16; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;{"level":17,"resolution":1.1943285668550503,"scale":4513.988705,"startTileRow":214,"startTileCol":0,"endTileRow":130857,"endTileCol":131071,"_frameInfo":[131072,0,131071,33554432]}&lt;/SPAN&gt;&lt;SPAN style="color: #222222; font-family: Consolas, 'Lucida Console', monospace; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;And snapping works fine when I added a snapping manager from the Chrome Console into the example&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Sep 2014 15:37:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166548#M15459</guid>
      <dc:creator>JoëlHempenius1</dc:creator>
      <dc:date>2014-09-03T15:37:17Z</dc:date>
    </item>
    <item>
      <title>Re: Snappingmanager does not work. is map._getFrameWidth() the problem?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166549#M15460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I put together a quick test case and was not able to reproduce the problem. Here's the test case: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://jsfiddle.net/mky995xu/" title="http://jsfiddle.net/mky995xu/"&gt;Edit fiddle - JSFiddle&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you modify this test case to show the problem you are experiencing? &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Sep 2014 20:04:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166549#M15460</guid>
      <dc:creator>KellyHutchins</dc:creator>
      <dc:date>2014-09-03T20:04:44Z</dc:date>
    </item>
    <item>
      <title>Re: Snappingmanager does not work. is map._getFrameWidth() the problem?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166550#M15461</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for the test case. I could not reproduce the problem there, but I noticed the __LOD property of my modified test case did not change from undefined to something else (which is the case in my project).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did some more debugging today to find out why my __LOD property changes and I could trace the source of this bug in Geocortex HTML5 essentials&amp;nbsp; viewer 2.2.1 . Compared to the previous version they added these lines of code:&lt;/P&gt;&lt;P&gt;var b = function() {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x = a.app.map.__LOD;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.app.map.__LOD = x ? dojo.fromJson(dojo.toJson(x)) : {scale: a.app.map.getScale()};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.app.map.__LOD._frameInfo = a.app.map.__LOD._frameInfo || []&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;So, to me it's clear they are doing things to the __LOD of the map which breaks the functionality in _getFrameWidth(); of the esri map object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So my next step is going to be a bug report for Geocortex and to try to create a workaround for this.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 04 Sep 2014 10:37:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166550#M15461</guid>
      <dc:creator>JoëlHempenius1</dc:creator>
      <dc:date>2014-09-04T10:37:25Z</dc:date>
    </item>
    <item>
      <title>Re: Snappingmanager does not work. is map._getFrameWidth() the problem?</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166551#M15462</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi. Snapping manager finding featurelayer in map. U have to add to map featurelayer. Or alwaysSnap:true or snapKey: dojo.keys.copyKey u choose one.&amp;nbsp; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Have a good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Jun 2015 13:55:55 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/snappingmanager-does-not-work-is-map-getframewidth/m-p/166551#M15462</guid>
      <dc:creator>MehmetÜNLÜ</dc:creator>
      <dc:date>2015-06-08T13:55:55Z</dc:date>
    </item>
  </channel>
</rss>

