<?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: How to use Draw Map Extent to Export Map based on Users Drawing in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328249#M25548</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can probably use a combination of a Search Cursor and an extent object to set the data frame extent:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; arcpy

inGeom &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GetParameter&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
mxd &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mapping&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;MapDocument&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"CURRENT"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
df &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mapping&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ListDataFrames&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;mxd&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; row &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;da&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SearchCursor&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;inGeom&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"SHAPE@"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; extent &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; row&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extent

df&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extent &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; extent‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://desktop.arcgis.com/en/arcmap/10.3/analyze/arcpy-data-access/searchcursor-class.htm" title="http://desktop.arcgis.com/en/arcmap/10.3/analyze/arcpy-data-access/searchcursor-class.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;SearchCursor—Help | ArcGIS for Desktop&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://pro.arcgis.com/en/pro-app/arcpy/classes/extent.htm" title="http://pro.arcgis.com/en/pro-app/arcpy/classes/extent.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;Extent—ArcPy classes | ArcGIS Desktop&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 15:33:21 GMT</pubDate>
    <dc:creator>JonathanQuinn</dc:creator>
    <dc:date>2021-12-11T15:33:21Z</dc:date>
    <item>
      <title>How to use Draw Map Extent to Export Map based on Users Drawing</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328248#M25547</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My goal is to provide Users the ability to draw a rectangle on a map to pass the extents back to export a .png of the extent drawn.&lt;/P&gt;&lt;P&gt;This would be done through a&amp;nbsp;&lt;/P&gt;&lt;P&gt;I see potential in the&amp;nbsp;Clip and Ship functionality where the User Draws a Rectangle to pass the top and bottom x,y values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My script currently uses a County Layer to select 1 or 2 counties.&lt;/P&gt;&lt;P&gt;The code then zooms to selected features extent.&lt;/P&gt;&lt;P&gt;This is sort of hit an miss as the user needs to know what counties to select.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want the user to draw extent instead.&lt;/P&gt;&lt;P&gt;In that case, the If statement would go away.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;SPAN style="color: #000000;"&gt;&lt;SPAN style="background-color: #ffe4ff;"&gt;map_extent&lt;/SPAN&gt; = parameters[&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;].valueAsText
map_extent2 = parameters[&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;].valueAsText&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;SPAN style="background-color: #ffe4ff;"&gt;outfolder&lt;/SPAN&gt; = arcpy.env.scratchWorkspace
&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;SPAN style="background-color: #ffe4ff;"&gt;mxd&lt;/SPAN&gt; = &lt;SPAN style="color: #008000; font-weight: bold;"&gt;r"\\Maps\MyMap.mxd"&lt;/SPAN&gt;&lt;/PRE&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;SPAN style="color: #000080; font-weight: bold;"&gt;if &lt;/SPAN&gt;&lt;SPAN style="background-color: #e4e4ff;"&gt;map_extent&lt;/SPAN&gt; &amp;lt;&amp;gt; &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"Default Extent"&lt;/SPAN&gt;:
&amp;nbsp;&amp;nbsp;&amp;nbsp; expression = &lt;SPAN style="color: #008000; font-weight: bold;"&gt;'"altName" IN' &lt;/SPAN&gt;+ &lt;SPAN style="color: #008000; font-weight: bold;"&gt;" ('" &lt;/SPAN&gt;+ &lt;SPAN style="background-color: #e4e4ff;"&gt;map_extent&lt;/SPAN&gt; + &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"', '" &lt;/SPAN&gt;+ map_extent2 + &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"')"
&lt;/SPAN&gt;&lt;SPAN style="color: #008000; font-weight: bold;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;arcpy.AddMessage(expression)
&amp;nbsp;&amp;nbsp;&amp;nbsp; county_layer = arcpy.mapping.ListLayers(mxd)[&lt;SPAN style="color: #0000ff;"&gt;0&lt;/SPAN&gt;]
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage(county_layer)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SelectLayerByAttribute_management(county_layer, &lt;SPAN style="color: #008000; font-weight: bold;"&gt;"NEW_SELECTION"&lt;/SPAN&gt;, expression)
&amp;nbsp;&amp;nbsp;&amp;nbsp; df = arcpy.mapping.ListDataFrames(mxd)[&lt;SPAN style="color: #0000ff;"&gt;0&lt;/SPAN&gt;]
&amp;nbsp;&amp;nbsp;&amp;nbsp; df.zoomToSelectedFeatures()
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.RefreshActiveView()&lt;/PRE&gt;&lt;/PRE&gt;outputPath = outfolder + os.sep + "Map.png"&lt;SPAN style="color: #008000; font-weight: bold;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;arcpy.mapping.ExportToPNG(mxd, outputPath)&lt;/PRE&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;SPAN style="color: #000000;"&gt;arcpy.SetParameterAsText(&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;2&lt;/SPAN&gt;&lt;SPAN style="color: #000000;"&gt;, outputPath)&lt;/SPAN&gt;&lt;/PRE&gt;&lt;/PRE&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;Aaron&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:33:18 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328248#M25547</guid>
      <dc:creator>AaronPaul5</dc:creator>
      <dc:date>2021-12-11T15:33:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Draw Map Extent to Export Map based on Users Drawing</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328249#M25548</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can probably use a combination of a Search Cursor and an extent object to set the data frame extent:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;import&lt;/SPAN&gt; arcpy

inGeom &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;GetParameter&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
mxd &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mapping&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;MapDocument&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"CURRENT"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;
df &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;mapping&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;ListDataFrames&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;mxd&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;
&lt;SPAN class="keyword token"&gt;for&lt;/SPAN&gt; row &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;da&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;SearchCursor&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;inGeom&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="string token"&gt;"SHAPE@"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; extent &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; row&lt;SPAN class="punctuation token"&gt;[&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;0&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;]&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extent

df&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;extent &lt;SPAN class="operator token"&gt;=&lt;/SPAN&gt; extent‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://desktop.arcgis.com/en/arcmap/10.3/analyze/arcpy-data-access/searchcursor-class.htm" title="http://desktop.arcgis.com/en/arcmap/10.3/analyze/arcpy-data-access/searchcursor-class.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;SearchCursor—Help | ArcGIS for Desktop&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A class="link-titled" href="http://pro.arcgis.com/en/pro-app/arcpy/classes/extent.htm" title="http://pro.arcgis.com/en/pro-app/arcpy/classes/extent.htm" rel="nofollow noopener noreferrer" target="_blank"&gt;Extent—ArcPy classes | ArcGIS Desktop&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 15:33:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328249#M25548</guid>
      <dc:creator>JonathanQuinn</dc:creator>
      <dc:date>2021-12-11T15:33:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Draw Map Extent to Export Map based on Users Drawing</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328250#M25549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jonathan,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would like the user to draw an extent. Not get extent from a records in a table or feature layer.&lt;/P&gt;&lt;P&gt;There is a built in functionality of&amp;nbsp;Extract&amp;nbsp;Data&amp;nbsp;Tool that passes the extent in the way I'm thinking.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When using the tool in ArcCatalog, the user would have to select a data source to clip to.&lt;/P&gt;&lt;P&gt;In ArcMap the tool allows you to draw a rectangle to define extents.&lt;/P&gt;&lt;P&gt;It uses a shape called Area_of_Interest for the deault shape type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My script will be published to ArcGIS Server, so it will be able to use a map to draw the extent.&lt;/P&gt;&lt;P&gt;I think if we get as far as using the draw Area_of_Extent, that would do it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please see screen shot of Extract Data&lt;/P&gt;&lt;P&gt;&lt;IMG alt="" class="image-1 jive-image j-img-original" src="https://community.esri.com/legacyfs/online/416484_Extract.PNG" /&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you again,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Aaron&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jul 2018 15:31:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328250#M25549</guid>
      <dc:creator>AaronPaul5</dc:creator>
      <dc:date>2018-07-30T15:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: How to use Draw Map Extent to Export Map based on Users Drawing</title>
      <link>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328251#M25550</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aaron,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The parameter data type that the Area Of Interest is using above is a FeatureSet. It can be used to allow a user to either dynamically draw and input geometry (point, Line, Polygon) or browse for a Featureclass.&amp;nbsp;&lt;/P&gt;&lt;P&gt;The important part of that parameter in the script tool is the &lt;A href="http://desktop.arcgis.com/en/arcmap/10.3/analyze/creating-tools/setting-script-tool-parameters.htm#GUID-27F95ECB-EA03-42C9-AC9E-8D3D1FBF7FC0"&gt;schema property&lt;/A&gt;, The FeatureClass you use for the schema defines two things for the FeatureSet:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;1. Geometry type&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;2. Field type and names&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;As Jonathan mentioned above you can then use a cursor to get the drawn geometry from that parameter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have used this technique before in both Desktop (Custom Toolbox Tools) and Javascript Applications (consuming GP Services)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jeff&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 Jul 2018 20:11:14 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/how-to-use-draw-map-extent-to-export-map-based-on/m-p/328251#M25550</guid>
      <dc:creator>JeffBigos</dc:creator>
      <dc:date>2018-07-30T20:11:14Z</dc:date>
    </item>
  </channel>
</rss>

