unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls, ExtCtrls, XPMan, ComCtrls,MSHTML;
type
TForm1 =
class(TForm)
XPManifest1: TXPManifest;
CheckBoxTraffic: TCheckBox;
WebBrowser1: TWebBrowser;
procedure FormCreate(Sender: TObject);
procedure CheckBoxTrafficClick(Sender: TObject);
private
{ Private-Deklarationen }
HTMLWindow2: IHTMLWindow2;
public
{ Public-Deklarationen }
end;
var
Form1: TForm1;
implementation
uses
ActiveX;
{$R *.dfm}
const
HTMLStr:
String =
'
<html> '+
'
<head> '+
'
<meta name="viewport" content="initial-scale=1.0, user-scalable=yes" /> '+
'
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> '+
'
<script type="text/javascript"> '+
'
'+
'
'+
'
var geocoder; '+
'
var map; '+
'
var trafficLayer;'+
'
var bikeLayer;'+
'
'+
'
'+
'
function initialize() { '+
'
geocoder = new google.maps.Geocoder();'+
'
var latlng = new google.maps.LatLng(40.714776,-74.019213); '+
'
var myOptions = { '+
'
zoom: 13, '+
'
center: latlng, '+
'
mapTypeId: google.maps.MapTypeId.ROADMAP '+
'
}; '+
'
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); '+
'
trafficLayer = new google.maps.TrafficLayer();'+
'
bikeLayer = new google.maps.BicyclingLayer();'+
'
} '+
'
'+
'
'+
'
function codeAddress(address) { '+
'
if (geocoder) {'+
'
geocoder.geocode( { address: address}, function(results, status) { '+
'
if (status == google.maps.GeocoderStatus.OK) {'+
'
map.setCenter(results[0].geometry.location);'+
'
var marker = new google.maps.Marker({'+
'
map: map,'+
'
position: results[0].geometry.location'+
'
});'+
'
} else {'+
'
alert("Geocode was not successful for the following reason: " + status);'+
'
}'+
'
});'+
'
}'+
'
}'+
'
'+
'
'+
'
function GotoLatLng(Lat, Lang) { '+
'
var latlng = new google.maps.LatLng(Lat,Lang);'+
'
map.setCenter(latlng);'+
'
var marker = new google.maps.Marker({'+
'
position: latlng, '+
'
map: map,'+
'
title:Lat+","+Lang'+
'
});'+
'
}'+
'
'+
'
'+
'
function TrafficOn() { trafficLayer.setMap(map); }'+
'
'+
'
function TrafficOff() { trafficLayer.setMap(null); }'+
'
'+'
'+
'
function BicyclingOn() { bikeLayer.setMap(map); }'+
'
'+
'
function BicyclingOff(){ bikeLayer.setMap(null);}'+
'
'+
'
function StreetViewOn() { map.set("streetViewControl", true); }'+
'
'+
'
function StreetViewOff() { map.set("streetViewControl", false); }'+
'
'+
'
'+'
</script> '+
'
</head> '+
'
<body onload="initialize()"> '+
'
<div id="map_canvas" style="width:100%; height:100%"></div> '+
'
</body> '+
'
</html> ';
procedure TForm1.CheckBoxTrafficClick(Sender: TObject);
begin
if CheckBoxTraffic.Checked
then
HTMLWindow2.execScript('
TrafficOn()', '
JavaScript')
else
HTMLWindow2.execScript('
TrafficOff()', '
JavaScript');
end;
procedure Tform1.FormCreate(Sender: TObject);
var
aStream : TMemoryStream;
begin
WebBrowser1.Navigate('
about:blank');
if Assigned(WebBrowser1.Document)
then
begin
aStream := TMemoryStream.Create;
try
aStream.WriteBuffer(Pointer(HTMLStr)^, Length(HTMLStr));
//aStream.Write(HTMLStr[1], Length(HTMLStr));
aStream.Seek(0, soFromBeginning);
(WebBrowser1.Document
as IPersistStreamInit).Load(TStreamAdapter.Create(aStream));
finally
aStream.Free;
end;
HTMLWindow2 := (WebBrowser1.Document
as IHTMLDocument2).parentWindow;
end;
end;
end.