Australian Antarctic Division Conditions of Use | Feedback & requests | About us | Site map
Forgot Your Password?
Username:  
Password:
Australian Antarctic Data Centre

Australian Antarctic - C Squares


<!---

<cf_get_csquares clist="">

  Input:
       either  positions - a query containg latitude, longitude

       and/or  boxes - a query containg north, south, east and west

       and/or  polygon - a query containing latitude, longitude which is assumed closed from last pt back to first pt

       optional:
          resolution 0.1, 0.5, 1.0 (default), 5.0, 10.0 degrees

          debug  Y/N (default)

  Output:  csquares (a string holding csqaures codes and it can be blank


--->

<cfparam name="attributes.resolution" default="1">

<cfset clist = ''>


<cfset debug = 'N'>
<cfif IsDefined("attributes.debug")>
   <cfif attributes.debug is 'Y'>
       <cfset debug = 'Y'>
   </cfif>
</cfif>


<cfif IsDefined("attributes.positions")>  <!--- query --->
  <cfloop query="attributes.positions">

     <cfset lat = attributes.positions.latitude>
     <cfset lon = attributes.positions.longitude>

     <cfif IsNumeric(lat) and IsNumeric(lon)>
     	<cfmodule template="get_csquare.cfm"
     	   latitude="#lat#"
     	   longitude="#lon#"
     	   resolution="#attributes.resolution#">
     	<cfif clist is ''>
     	   <cfset clist = csquare>
     	<cfelse>
     	   <cfif not ListFindNoCase(clist,csquare,'|')>
     	      <cfset clist = ListAppend(clist, csquare,'|')>
     	   </cfif>
     	</cfif>
     </cfif>

   </cfloop>
</cfif>

<cfif IsDefined("attributes.boxes")>  <!--- query --->
  <cfloop query="attributes.boxes">
     <cfmodule template="get_csquare_from_mbr.cfm"
        north="#attributes.boxes.north#"
        south="#attributes.boxes.south#"
        east="#attributes.boxes.east#"
        west="#attributes.boxes.west#"
        resolution="#attributes.resolution#"
        debug="#debug#">
     <cfif clist is ''>
        <cfset clist = csquares>
     <cfelse>
        <!--- loop over returned csquares and see if any are in clist --->
        <cfloop index="icq" from="1" to="#ListLen(csquares,'|')#">
           <cfset csquare = ListGetAt(csquares, icq,'|')>
           <cfif not ListFindNoCase(clist,csquare,'|')>
              <cfset clist = ListAppend(clist, csquare,'|')>
           </cfif>
        </cfloop>
     </cfif>
   </cfloop>
</cfif>

<cfif IsDefined("attributes.polygon")>  <!--- query --->
  <cfmodule template="get_csquare_from_polygon.cfm"
        polygon="#attributes.polygon#"
        resolution="#attributes.resolution#"
        debug="#debug#">
  <cfif clist is ''>
        <cfset clist = csquares>
  <cfelse>
     <!--- loop over returned csquares and see if any are in clist --->
     <cfloop index="icq" from="1" to="#ListLen(csquares,'|')#">
        <cfset csquare = ListGetAt(csquares, icq,'|')>
        <cfif not ListFindNoCase(clist,csquare,'|')>
              <cfset clist = ListAppend(clist, csquare,'|')>
        </cfif>
     </cfloop>
   </cfif>
</cfif>

<!--- now make sure clist contains unique elements --->
<cfset unique_csquares = "">
<cfif clist is not ''>
  <cfloop list="#clist#" delimiters="|" index="csquare">
    <cfif not ListFindNoCase(unique_csquares,csquare)>
        <cfset unique_csquares = ListAppend(unique_csquares,csquare,'|')>
    </cfif>
  </cfloop>
</cfif>

<cfset caller.csquares = unique_csquares>

Mapping Home Page | Antarctic Names | Antarctic Map Catalogue