Google Maps

Postby Gale FORd » Fri Dec 14, 2007 4:26 pm

I guess since everyone else is asking I will put my hat in the ring. The ability to display a map would be very helpfull in my application since it is related to a trucking company.

Thanks,

gale.ford@wwrowland.com
Gale FORd
 
Posts: 663
Joined: Mon Dec 05, 2005 11:22 pm
Location: Houston

Postby Ugo » Fri Dec 14, 2007 4:31 pm

Rafael Clemente wrote:Detlef:
Where to shall I send it?
Rafael


Dear Rafael,
is possible :
- to redefine the target map window (with insert other controls)?
- insert this control in a dialog?
Ciao, best regards,
Ugo
User avatar
Ugo
 
Posts: 283
Joined: Sat Oct 15, 2005 6:40 am
Location: Turin, Italy

Postby Euclides » Fri Dec 14, 2007 4:45 pm

Hi Rafael,
Please you send me also a copy of the DLL.
euclidao@itelefonica.com.br
TIA
Euclides
User avatar
Euclides
 
Posts: 154
Joined: Wed Mar 28, 2007 1:19 pm

Postby Detlef Hoefner » Fri Dec 14, 2007 6:03 pm

Sorry Rafael :oops:,

here my address
hoefner@odn.de

Many Thanks,
Detlef
User avatar
Detlef Hoefner
 
Posts: 312
Joined: Sat Oct 08, 2005 9:12 am
Location: Germany

Postby shrkod » Fri Dec 14, 2007 8:01 pm

Same Google Maps functionality without need for DLL

#include "FiveWin.ch"

function Main()

local oWnd, oActiveX

DEFINE WINDOW oWnd TITLE "Google Maps"

oActiveX = TActiveX():New( oWnd, "Shell.Explorer" )
oWnd:oClient = oActiveX
oActiveX:Do( "Navigate2", CurDrive() + ":\" + CurDir() + "\gmap.html" )

ACTIVATE WINDOW oWnd

return nil

And gmap.html, replace the address into it using StrTran()
Code: Select all  Expand view
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">                                                                   
  <head>                                                                                                     
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title> </title>             
    <script src="http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=ABQIAAAAtOjLpIVcO8im8KJFR8pcMhQjskl1-YgiA_BGX2yRrf7htVrbmBTWZt39_v1rJ4xxwZZCEomegYBo1w" type="text/javascript"></script>
    <script type="text/javascript">                                     
    var map = null;                                                     
    var geocoder = null;                                                 
    var coords = null;                                                   

    function initialize() {                                             
      if (GBrowserIsCompatible()) {                                     
        map = new GMap2(document.getElementById("map_canvas"));         
        map.addControl(new GLargeMapControl());                         
        map.addControl(new GMapTypeControl());                           
        geocoder = new GClientGeocoder();                               
      }                                                                 
    }                                                                   

    function showAddress(address, cAddressName) {                       
      if (geocoder) {                                                   
        geocoder.getLatLng(                                             
          address,                                                       
          function(point) {                                             
            if (!point) {                                               
              showAddress2('NEW YORK CITY');               
            } else {                                                     
              map.setCenter(point, 15);                                 
              var marker = new GMarker(point);                           
              map.addOverlay(marker);                                   
              coords = marker.getPoint();                               
              var curl = cAddressName + "<p>" + coords.toUrlValue(6) + "</p>"
              var button = '<input type="button" value="Imprimir" onClick="window.print()"/>;'
              curl = curl + button
            }                                                           
          }                                                             
        );                                                               
      }                                                                 
    }                                                                   
    function showAddress2(address) {       
      if (geocoder) {                                                   
        geocoder.getLatLng(                                             
          address,                                                       
          function(point) {                                             
            if (!point) {                                               
              alert(address + " no encontrado");                         
            } else {                                                     
              map.setCenter(point, 15);                                 
              var marker = new GMarker(point);                           
              map.addOverlay(marker);                                   
              marker.openInfoWindowHtml(address);                       
            }                                                           
          }                                                             
        );                                                               
      }                                                                 
    }                                                                   
    </script>                                                           
  </head>                                                               

  <body onload="initialize(); showAddress('BROADWAY 500, NEW YORK CITY  USA', 'BROADWAY 500, NEW YORK CITY  USA');" onunload="GUnload()"
        <div id="map_canvas" style="width: 597px; height: 376px"></div>
  </body>                                                               
</html>                                                                 
User avatar
shrkod
 
Posts: 5
Joined: Mon Dec 03, 2007 9:33 pm

Postby norberto » Fri Dec 14, 2007 8:10 pm

norberto
 
Posts: 566
Joined: Thu Aug 30, 2007 3:40 pm
Location: BR

Postby shrkod » Fri Dec 14, 2007 9:41 pm

http://rapidshare.com/files/76601815/gmapd.zip.html
#include "FiveWin.ch"

function Main()

local oDlg, oActiveX
local cStreet := PadR( "BROADWAY 500", 80 )
local cCity := PadR( "NEW YORK CITY", 80 )
local cCountry := PadR( "USA", 80 )

DEFINE DIALOG oDlg RESOURCE "map"

REDEFINE ACTIVEX oActiveX ID 100 OF oDlg PROGID "Shell.Explorer"

REDEFINE GET cStreet ID 200 OF oDlg

REDEFINE GET cCity ID 300 OF oDlg

REDEFINE GET cCountry ID 400 OF oDlg

REDEFINE BUTTON ID 1 OF oDlg ACTION Show( cStreet, cCity, cCountry, oActiveX )

ACTIVATE DIALOG oDlg CENTERED ;
ON INIT Show( cStreet, cCity, cCountry, oActiveX )

return nil

function Show( cStreet, cCity, cCountry, oActiveX )

local cHtml := MemoRead( "gmap.html" )

cHtml = StrTran( cHtml, "<<STREET>>", AllTrim( cStreet ) )
cHtml = StrTran( cHtml, "<<CITY>>", AllTrim( cCity ) )
cHtml = StrTran( cHtml, "<<COUNTRY>>", AllTrim( cCountry ) )

MemoWrit( "temp.html", cHtml )

oActiveX:Do( "Navigate2", CurDrive() + ":\" + CurDir() + "\temp.html" )

return nil

Image
User avatar
shrkod
 
Posts: 5
Joined: Mon Dec 03, 2007 9:33 pm

Postby richard-service » Fri Dec 14, 2007 10:33 pm

shrkod wrote:http://rapidshare.com/files/76601815/gmapd.zip.html
#include "FiveWin.ch"

function Main()

local oDlg, oActiveX
local cStreet := PadR( "BROADWAY 500", 80 )
local cCity := PadR( "NEW YORK CITY", 80 )
local cCountry := PadR( "USA", 80 )

DEFINE DIALOG oDlg RESOURCE "map"

REDEFINE ACTIVEX oActiveX ID 100 OF oDlg PROGID "Shell.Explorer"

REDEFINE GET cStreet ID 200 OF oDlg

REDEFINE GET cCity ID 300 OF oDlg

REDEFINE GET cCountry ID 400 OF oDlg

REDEFINE BUTTON ID 1 OF oDlg ACTION Show( cStreet, cCity, cCountry, oActiveX )

ACTIVATE DIALOG oDlg CENTERED ;
ON INIT Show( cStreet, cCity, cCountry, oActiveX )

return nil

function Show( cStreet, cCity, cCountry, oActiveX )

local cHtml := MemoRead( "gmap.html" )

cHtml = StrTran( cHtml, "<<STREET>>", AllTrim( cStreet ) )
cHtml = StrTran( cHtml, "<<CITY>>", AllTrim( cCity ) )
cHtml = StrTran( cHtml, "<<COUNTRY>>", AllTrim( cCountry ) )

MemoWrit( "temp.html", cHtml )

oActiveX:Do( "Navigate2", CurDrive() + ":" + CurDir() + "\temp.html" )

return nil

Image


Hi Shrkod,

good job. Maybe we can try it again. Thanks for your solution.

Regards,

Richard
User avatar
richard-service
 
Posts: 765
Joined: Tue Oct 16, 2007 8:57 am
Location: New Taipei City, Taiwan

Postby Rafael Clemente » Sat Dec 15, 2007 1:27 am

Very good job indeed, Shrkod! :D

It is funy, however, that your javascript code seems to be exactly the same as ours, down to the name of the functions and indentations...
I see that it replicates so well our functionality that you even included an alert in Spanish - the string "no encontrado" which in our case sliped by error and was later corrected.

It sure must be some odd coincidence...
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby shrkod » Sat Dec 15, 2007 9:45 am

rafael, it is your html. I right click on the webpage and save the html source code. everybody can do it :-)
User avatar
shrkod
 
Posts: 5
Joined: Mon Dec 03, 2007 9:33 pm

Postby Rafael Clemente » Sat Dec 15, 2007 10:08 am

Shrkod,
In these forums, when we post code of somebody else, a proper etiquette is at least to give credit to the author. Otherwise, people can asume that you are claiming authorship for it. And this, of course, is not your case, is it?
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

Postby shrkod » Sat Dec 15, 2007 10:23 am

rafael it is your code. you have the credits. I solved the need for a big dll
User avatar
shrkod
 
Posts: 5
Joined: Mon Dec 03, 2007 9:33 pm

Postby Wanderson » Sat Dec 15, 2007 11:06 pm

Hi Shrkod,

Thanks, great job. In my city exists many Streets 9, exist the possibility to add a parameter like a district or sector?

Wanderson.
Goiânia-Brazil
Wanderson
 
Posts: 332
Joined: Thu Nov 17, 2005 9:11 pm

Postby shrkod » Sun Dec 16, 2007 1:01 am

all credits go to rafael. I did nothing except remove the dll. ask rafael
User avatar
shrkod
 
Posts: 5
Joined: Mon Dec 03, 2007 9:33 pm

Postby Rafael Clemente » Sun Dec 16, 2007 9:57 am

Wanderson,

During the past days, I have sent a copy of the demo program to all the friends that requested it. All of them got a further mail explaing the reason for not posting it for public download.

Also, I informed them that after the code was publicly disclosed on this forum without me even being consulted, I had decided to freeze further development on it. Maybe somebody else will pick up where I left it

Best regards,

Rafael
User avatar
Rafael Clemente
 
Posts: 365
Joined: Sat Oct 08, 2005 7:59 pm
Location: Barcelona, Spain

PreviousNext

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 10 guests