HOW TO
This AML will add items for Degrees, Minutes and Seconds for all the points in a geographic coverage in decimal degrees.
Code:
/* dd2dms.aml 1.0 Nov 15, 99 12:30 pm
/* You may use, copy, modify, merge, distribute, alter, reproduce
/* and/or create derivative works of this AML for your own internal
/* use. All rights not specifically granted herein are reserved to
/* ESRI.
/*
/* THIS AML IS PROVIDED "AS-IS" WITHOUT WARRANTY OF ANY KIND, EITHER
/* EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
/* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
/* WITH RESPECT TO THE AML.
/*
/* ESRI shall not be liable for any damages under any theory of law
/* related to your use of this AML, even if ESRI is advised of the
/* possibilities of such damage. This AML is not supported by ESRI.
/*********************************************************************/
/* NAME: dd2dms.aml */
/* PURPOSE: Generates items containing X and Y coordinates in */
/* units of Degrees, Minutes and Seconds. */
/* COMMENTS: It is assumed the coverage is in Geographic */
/* DD projection, and the ADDXY command has been run on */
/* it. The program takes a coverage name as input. It */
/* will write 6 new items to the coverage containing the */
/* values for degrees, minutes and seconds. It will */
/* truncate the values for the seconds, so some */
/* modifications will be necessary if this is not a */
/* desired option. */
/* Usage: DD2DMS <in_coverage> */
/*********************************************************************/
&args cov
&messages &off
additem %cov%.pat %cov%.pat xdeg 4 5 b
additem %cov%.pat %cov%.pat xmin 4 5 b
additem %cov%.pat %cov%.pat xsec 4 5 b
additem %cov%.pat %cov%.pat ydeg 4 5 b
additem %cov%.pat %cov%.pat ymin 4 5 b
additem %cov%.pat %cov%.pat ysec 4 5 b
&type Converting...
cursor cur1 declare %cov%.pat info rw
cursor cur1 open
/* skip first entry - universe poly
cursor cur1 next
&do &while %:cur1.AML$NEXT%
&sv xcoord = %:cur1.X-COORD%
&sv xd = [truncate %xcoord%]
&sv fraction = [calc [abs %xcoord%] - [abs %xd%]]
&sv xm = [truncate [calc %fraction% * 60 ]]
&sv xs = [truncate [calc ( ( %fraction% ) - ( %xm% / 60 ) ) * 3600 ]]
&sv :cur1.xdeg = %xd%
&sv :cur1.xmin = %xm%
&sv :cur1.xsec = %xs%
&sv ycoord = %:cur1.Y-COORD%
&sv yd = [truncate %ycoord%]
&sv fraction = [calc [abs %ycoord%] - [abs %yd%]]
&sv ym = [truncate [calc %fraction% * 60 ]]
&sv ys = [truncate [calc ( ( %fraction% ) - ( %ym% / 60 ) ) * 3600 ]]
&sv :cur1.ydeg = %yd%
&sv :cur1.ymin = %ym%
&sv :cur1.ysec = %ys%
cursor cur1 next
&end
&echo &off
cursor cur1 close
cursor cur1 remove
&type Done
&messages &on
&return
Get help from ArcGIS experts
Download the Esri Support App