<?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: Adjusting InfoWindow Position in ArcGIS JavaScript Maps SDK Questions</title>
    <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519411#M48421</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Alex,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sorry to bump but I'm curious if you ever resolved this for the app you were working on?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Steve&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Nov 2012 18:55:56 GMT</pubDate>
    <dc:creator>SteveCole</dc:creator>
    <dc:date>2012-11-14T18:55:56Z</dc:date>
    <item>
      <title>Adjusting InfoWindow Position</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519410#M48420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Morning,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am making a web application that features an info window that displays a pdf hosted on my web server. The content of the infoWindow is set by a function that generates a deferred object that is an iframe display in the infoWindow. This is relevant because this structure makes it necessary for me to use the infoWindow rather than the popup dijit.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;These pdfs are 4x4 and the infoWindow is sized slightly larger to enable full display of the content. The problem I am running into is that&lt;/SPAN&gt;&lt;PRE class="plain" name="code"&gt;map.infoWindow.show(evt.screenPoint, map.getInfoWindowAnchor(evt.screenPoint));&lt;/PRE&gt;&lt;DIV style="display:none;"&gt; &lt;/DIV&gt;&lt;SPAN&gt; sometimes cause the infoWindow to be partially off the map. Does anyone know of any code that I can use to make the info windows aware of the map border and adjust the position so that entire infoWindow is on the map? I remember doing this in Silverlight for a project but can't seem to find an analog for Javascript looking through the API reference and forum posts.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance for any help.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alex&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Nov 2012 14:09:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519410#M48420</guid>
      <dc:creator>AlexDeVine</dc:creator>
      <dc:date>2012-11-01T14:09:25Z</dc:date>
    </item>
    <item>
      <title>Re: Adjusting InfoWindow Position</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519411#M48421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Alex,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sorry to bump but I'm curious if you ever resolved this for the app you were working on?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Steve&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Nov 2012 18:55:56 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519411#M48421</guid>
      <dc:creator>SteveCole</dc:creator>
      <dc:date>2012-11-14T18:55:56Z</dc:date>
    </item>
    <item>
      <title>Re: Adjusting InfoWindow Position</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519412#M48422</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Steve,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I did resolve it by adjusting the map rather than the infoWindow.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the code I used:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;function showResults(idResults, evt) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for (var i = 0, il = idResults.length; i &amp;lt; il; i++) {
&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 graphic = idResults&lt;I&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; graphic.feature.setInfoTemplate(sustaintemplate);
&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; map.infoWindow.setContent(updatePopup(graphic));

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //map.graphics.clear();

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set the infoWindow to open at the top right of the point at all times
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.infoWindow.setFixedAnchor(esri.dijit.InfoWindow.ANCHOR_UPPERRIGHT);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Determine the upper right, and center, coordinates of the map
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var maxPoint = new esri.geometry.Point(map.extent.xmax, map.extent.ymax)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var centerPoint = new esri.geometry.Point(map.extent.getCenter());

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Convert these to screen coordinates
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var maxPointScreen = map.toScreen(maxPoint);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var centerPointScreen = map.toScreen(centerPoint);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Subtract the size of the infoWindow, including a buffer.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //This will show whether the infoWindow would spill out of the current view.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var xDiff = Math.abs(maxPointScreen.x - evt.screenPoint.x) - 470;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var yDiff = Math.abs(maxPointScreen.y - evt.screenPoint.y) - 490;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //If required, recalculate a new centerpoint which accounts for the infoWindow
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (xDiff &amp;lt; 0) { centerPointScreen.x -= xDiff; }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (yDiff &amp;lt; 0) { centerPointScreen.y += yDiff; }

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Pan the map to the new centerpoint (in Map coordinates)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; centerPoint = map.toMap(centerPointScreen);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.centerAt(centerPoint);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Display the infoWindow at the original point clicked
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; map.infoWindow.show(evt.screenPoint, esri.dijit.InfoWindow.ANCHOR_UPPERRIGHT);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/I&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Courtesy Of Stephen Lead in this &lt;/SPAN&gt;&lt;A href="http://forums.arcgis.com/threads/34828-Auto-panning-map-so-that-infowindow-is-fully-visible?highlight=centerPointScreen" rel="nofollow noopener noreferrer" target="_blank"&gt;thread&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Alex&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 22:39:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519412#M48422</guid>
      <dc:creator>AlexDeVine</dc:creator>
      <dc:date>2021-12-11T22:39:45Z</dc:date>
    </item>
    <item>
      <title>Re: Adjusting InfoWindow Position</title>
      <link>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519413#M48423</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Alex, that actually saved me a lot of time. I adapted it to a function which measures how close a DOMElement is to the map extent boundaries:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;getElementDistanceFromExtent: function(element) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; if (!$ic.isNotNullObject(element)) return false;

&amp;nbsp;&amp;nbsp;&amp;nbsp; var posElementInfo = dojoDomGeometry.position(element);
&amp;nbsp;&amp;nbsp;&amp;nbsp; var maxPoint = new Point(this.map.extent.xmax, this.map.extent.ymax);
&amp;nbsp;&amp;nbsp;&amp;nbsp; var minPoint = new Point(this.map.extent.xmin, this.map.extent.ymin);
&amp;nbsp;&amp;nbsp;&amp;nbsp; var centerPoint = new Point(this.map.extent.getCenter());&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; var maxPointScreen = screenUtils.toScreenGeometry(this.map.extent, this.map.width, this.map.height, maxPoint);
&amp;nbsp;&amp;nbsp;&amp;nbsp; var minPointScreen = screenUtils.toScreenGeometry(this.map.extent, this.map.width, this.map.height, minPoint);

&amp;nbsp;&amp;nbsp;&amp;nbsp; var distXmax = maxPointScreen.x - (posElementInfo.x + posElementInfo.w);
&amp;nbsp;&amp;nbsp;&amp;nbsp; var distXmin = posElementInfo.x - minPointScreen.x;
&amp;nbsp;&amp;nbsp;&amp;nbsp; var distYmax = minPointScreen.y - (posElementInfo.y + posElementInfo.h);
&amp;nbsp;&amp;nbsp;&amp;nbsp; var distYmin = posElementInfo.y - maxPointScreen.y;


&amp;nbsp;&amp;nbsp;&amp;nbsp; return { distXmax: distXmax, distXmin: distXmin, distYmax: distYmax, distYmin: distYmin };
}&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 22:39:47 GMT</pubDate>
      <guid>https://community.esri.com/t5/arcgis-javascript-maps-sdk-questions/adjusting-infowindow-position/m-p/519413#M48423</guid>
      <dc:creator>Joao_PauloPaschoal</dc:creator>
      <dc:date>2021-12-11T22:39:47Z</dc:date>
    </item>
  </channel>
</rss>

