I took an example I use for a store locator that I use.
First get a googlemapkey (not sure if they still make you sign up for them)
Then I would suggest making a form where they can query by state and then filter your query by state below...
Also, if you want to add a zipcode lookup, here is a good example here with a sample database to use for data.
http://jonathonwallen.blogspot.com/2011/08/zip-code-radius-search-store-locator-in.html
There are a few of them online but this seems to be neatly packaged for use.
<cfajaximport params="#{googlemapkey='*KEY HERE*'}#">
</cfif>
<cfquery name="qCompany" datasource="#application.dsn#">
select
name,
addrress,
city,
state,
zip,
country,
phone,
latitude,
longitude
from wcountry_company
</cfquery>
<cfmap name="gmap02"
centeraddress="#form.zipcode#" <!--- or state if your querying by state --->
doubleclickzoom="true"
scrollwheelzoom="true"
showscale="false"
tip="My Map"
width="1000"
height="800"
zoomlevel="15">
<cfoutput query="qCompany">
<cfmapitem address="#address# #city#, #state# #zip#" name="gmap02" tip="#name# #address# #city#, #state# #zip#" markerwindowcontent="#address#<br>#city#<br>#state#<br> #zip#" />
</cfoutput>
</cfmap>