<!---
<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


