Google Maps
Google Maps
All,
Does anyone have a sample of how to search Google Maps for an address from within a fwh program?
Thanks,
Randal Ferguson
Does anyone have a sample of how to search Google Maps for an address from within a fwh program?
Thanks,
Randal Ferguson
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Randal,
This is a working sample developed by JL Capel:
This is a working sample developed by JL Capel:
Code: Select all
// Radios and WHEN on a GET
#INCLUDE "FIVEWIN.CH"
FUNCTION MAIN()
LOCAL oDlg, oRadio1, oGet1, obtn
LOCAL cCurrency := "USD "
LOCAL nOption := 1
DEFINE DIALOG oDlg ;
FROM 1, 1 TO 10, 30
@ 1, 1 RADIO oRadio1 VAR nOption OF oDlg UPDATE ;
PROMPT "Estatua Libertad ", "Fortaleny - Valencia - EspaÒa", "Torre Eiffel - ParÌs "
@ 3, 1 BUTTON oBtn PROMPT "Ver el Mapa" ACTION VerMapa (oDlg, nOption)
ACTIVATE DIALOG oDlg CENTERED
RETURN NIL
Function VerMapa( oDlgp, nMapa )
local ownd, oactivex
LOCAL cHtml
LOCAL nLat, nLon, nZoom
DO CASE
CASE nMapa == 1
nLat := 48.858333
nLon := 2.295000
nZoom := 20
CASE nMapa == 2
nLat := 39.183994491715936
nLon := -0.31486988067626952
nZoom := 18
CASE nMapa == 3
nLat := 40.689360
nLon := -74.044400
nZoom := 20
ENDCASE
cHtml := [ <html> <head> ]+CRLF
cHtml += [ <meta http-equiv="content-type" content="text/html; charset=utf-8"/> ]+CRLF
cHtml += [ <title>Google Maps</title> ]+CRLF
cHtml += [ <script src="http://maps.google.com/maps?file=api&v=2&key=1223" type="text/javascript"></script> ]+CRLF
cHtml += [ <script type="text/javascript"> ]+CRLF
cHtml += " //<![CDATA[ " +CRLF
cHtml += " function load() "+CRLF
cHtml += " { if (GBrowserIsCompatible()) "+CRLF
cHtml += [ { var map = new GMap2(document.getElementById("map"),G_SATELLITE_TYPE); ] + CRLF
cHtml += " map.addControl(new GLargeMapControl()); "+CRLF
cHTML += " map.addControl(new GMapTypeControl()); "+CRLF
cHTML += " map.addControl(new GOverviewMapControl()); "+CRLF
cHTML += " map.setCenter(new GLatLng(<<<LAT>>>, "+CRLF
CHTML += " <<<LONG>>>),<<<ZOOM>>>); "+CRLF
CHTML += " map.setMapType(G_HYBRID_TYPE); "+CRLF
CHTML += " } } "+CRLF
CHTML += " //]]> </script> </head> "+CRLF
CHTML += [ <body scroll="no" bgcolor="#CCCCCC" topmargin="0" leftmargin="0" ] +CRLF
CHTML += [ onload="load()" onunload="GUnload()"> ] + CRLF
chtml += [ <div id="map" style="width:450px;height:300px"></div> ] + CRLF
chtml += [ </body> </html> ]
cHtml := STRTRAN(cHtml, "<<<LONG>>>",STR(nLon) )
cHtml := STRTRAN(cHtml, "<<<LAT>>>",STR(nLat) )
cHtml := STRTRAN(cHtml, "<<<ZOOM>>>",STR(nZoom) )
MemoWrit("mihtml.htm",chtml)
DEFINE WINDOW oWnd TITLE "FiveWin ActiveX Support"
oActiveX = TActiveX():New( oWnd, "Shell.Explorer.2" )
oWnd:oClient = oActiveX // To fill the entire window surface
oActiveX:Do("Navigate2",(CurDrive() + ":\"+CurDir()+"\MiHtml.htm"))
ACTIVATE WINDOW oWnd
RETUR NIL
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Antonio,
Thanks for the sample. I did search the forum and had found this sample however I need to be able to show a map based on an address, not lat/lon coordinates. I think the Google API has a method for returning the lat/lon coordinates for a given address. Unfortunately, I don't know enough about java to write a program to do this and I could not find a method for just showing a map based on the address.
Thanks,
Randal
Thanks for the sample. I did search the forum and had found this sample however I need to be able to show a map based on an address, not lat/lon coordinates. I think the Google API has a method for returning the lat/lon coordinates for a given address. Unfortunately, I don't know enough about java to write a program to do this and I could not find a method for just showing a map based on the address.
Thanks,
Randal
-
- Posts: 9
- Joined: Tue Aug 28, 2007 9:09 am
- Location: Oxford, England
Hi Randal,
I don't know anything about the google maps interface but going back a few months I was under the impression it only worked on lat\long co-ordinates.
The last company I worked for had to buy a data set for all UK addresses which also had all the lat\long co-ordinates in it. This way they could just do a database lookup using the address to get the lat\long co-ordinates to then do the google maps lookup.
I wasn't involved in the development of this unfortunately so I can't tell you any more about how it worked. In any case I would imagine the google maps api has moved on since then!
Kind regards,
Barry
I don't know anything about the google maps interface but going back a few months I was under the impression it only worked on lat\long co-ordinates.
The last company I worked for had to buy a data set for all UK addresses which also had all the lat\long co-ordinates in it. This way they could just do a database lookup using the address to get the lat\long co-ordinates to then do the google maps lookup.
I wasn't involved in the development of this unfortunately so I can't tell you any more about how it worked. In any case I would imagine the google maps api has moved on since then!
Kind regards,
Barry
Barry,
It appears there is a method for this:
getLatLng(address, callback)
Sends a request to Google servers to geocode the specified address. If the address was successfully located, the user-specified callback function is invoked with a GLatLng point. Otherwise, the callback function is given a null point. In case of ambiguous addresses, only the point for the best match is passed to the callback function. (Since 2.55)
Thanks,
Randal
It appears there is a method for this:
getLatLng(address, callback)
Sends a request to Google servers to geocode the specified address. If the address was successfully located, the user-specified callback function is invoked with a GLatLng point. Otherwise, the callback function is given a null point. In case of ambiguous addresses, only the point for the best match is passed to the callback function. (Since 2.55)
Thanks,
Randal
Barry O'Brien wrote:Hi Randal,
I don't know anything about the google maps interface but going back a few months I was under the impression it only worked on lat\long co-ordinates.
The last company I worked for had to buy a data set for all UK addresses which also had all the lat\long co-ordinates in it. This way they could just do a database lookup using the address to get the lat\long co-ordinates to then do the google maps lookup.
I wasn't involved in the development of this unfortunately so I can't tell you any more about how it worked. In any case I would imagine the google maps api has moved on since then!
Kind regards,
Barry
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
You can send that to swtechsup@yahoo.comRafael Clemente wrote:Otto, Randal:
If you send me your email I can send you one working sample
Rafael
Thank you very much!
Randal Ferguson
- RAMESHBABU
- Posts: 591
- Joined: Fri Oct 21, 2005 5:54 am
- Location: Secunderabad (T.S), India
Last edited by RAMESHBABU on Thu Dec 13, 2007 5:46 pm, edited 1 time in total.
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
Antonio:
This is the demo code:
Rafael
This is the demo code:
Of course the trick is in the POS.DLL. Being a work in progress, I wouldn't like to make it public yet. But I'll be happy to send a copy to anybody interested. From the above code you can see how easy is to use it. It has taken Otto all of ten minutes to include it in his software#include "FiveWin.ch"
Function Main()
Local oDlg
Local cStreet := Padr("BROADWAY 500", 40)
Local cCity := Padr("NEW YORK CITY", 40)
Local cCountry := Padr("USA", 40)
Define Dialog oDlg From 0,0 To 12,45 Title "Google Maps test"
oDlg:lHelpIcon := .F.
@ 1,3 Say "Street and number:" Of oDlg Size 50,10
@ 1,8 Get cStreet Of oDlg Size 100,10 Picture "@K!"
@ 2,3 Say "City:" Of oDlg Size 50,10
@ 2,8 Get cCity Of oDlg Size 100,10 Picture "@K!"
@ 3,3 Say "Country:" Of oDlg Size 50,10
@ 3,8 Get cCountry Of oDlg Size 100,10 Picture "@K!"
@ 4,11 Button "Search" Of oDlg Action Posicion(Alltrim(cStreet)+"; "+AllTrim(cCity)+"; "+Alltrim(cCountry))
Activate Dialog oDlg Center
Return Nil
DLL FUNCTION Posicion( cTxt AS LPSTR ) AS LONG PASCAL LIB ".\Pos.dll"
Rafael
- Biel EA6DD
- Posts: 680
- Joined: Tue Feb 14, 2006 9:48 am
- Location: Mallorca
- Contact: