Google Maps
- Detlef Hoefner
- Posts: 312
- Joined: Sat Oct 08, 2005 9:12 am
- Location: Germany
- Contact:
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()
#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
<!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&v=2.x&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>
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
- richard-service
- Posts: 583
- Joined: Tue Oct 16, 2007 8:57 am
- Location: New Taipei City, Taiwan
- Contact:
Hi Shrkod,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
good job. Maybe we can try it again. Thanks for your solution.
Regards,
Richard
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
Very good job indeed, Shrkod!
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...
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...
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
- Rafael Clemente
- Posts: 365
- Joined: Sat Oct 08, 2005 7:59 pm
- Location: Barcelona, Spain
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
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