![]() |
Googlemaps: Parameterübergabe bei Javascript
Hallo,
stehe hier vor einem kleinen Problem. Bei der Initialisierung wird eine fest vorgegebene Koordinate angegeben und danach wird mittels goto... die richtige übertragen und auch die entsprechende Karte gezeigt. Mein Wunsch: Gleich die richtige Karte anzeigen.
Delphi-Quellcode:
Gruß
const
HTMLStr: AnsiString = '<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;'+ ' var markersArray = [];'+ ''+ ''+ ' function initialize() { '+ ' geocoder = new google.maps.Geocoder();'+ ' var latlng = new google.maps.LatLng(50.736455,10.173340); '+ // hier möchte ich die Variablen Lng und Lang einsetzen können ' var myOptions = { '+ ' zoom: 5, '+ ' 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();'+ ' map.set("streetViewControl", false);'+ ' } '+ ''+ ''+ ' function codeAddress(address) { '+ ' if (geocoder) {'+ ' geocoder.geocode( { address: address}, function(results, status) { '+ ' if (status == google.maps.GeocoderStatus.OK) {'+ ' map.setCenter(results[0].geometry.location);'+ ' PutMarker(results[0].geometry.location.lat(), results[0].geometry.location.lng(), results[0].geometry.location.lat()+","+results[0].geometry.location.lng());'+ ' } 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);'+ ' PutMarker(Lat, Lang, Lat+","+Lang);'+ ' }'+ ''+ ''+ 'function ClearMarkers() { '+ ' if (markersArray) { '+ ' for (i in markersArray) { '+ ' markersArray[i].setMap(null); '+ ' } '+ ' } '+ '} '+ ''+ ' function PutMarker(Lat, Lang, Msg) { '+ ' var latlng = new google.maps.LatLng(Lat,Lang);'+ ' var marker = new google.maps.Marker({'+ ' position: latlng, '+ ' map: map,'+ ' title: Msg+" ("+Lat+","+Lang+")"'+ ' });'+ ' markersArray.push(marker); '+ ' }'+ ''+ ''+ ' 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> '; implementation {$R *.dfm} uses Main, Winapi.ActiveX, System.StrUtils; procedure TFrmGMapsAPI.apistart; var apilat : string; apilng : string; begin apilat := StringReplace(frmMain.gmaps_lat,',','.',[rfReplaceAll]); apilng := StringReplace(frmMain.gmaps_lng,',','.',[rfReplaceAll]); HTMLWindow2.execScript(Format('GotoLatLng(%s,%s)',[apilat,apilng]), 'JavaScript'); // Hier werden die finalen Koordinaten übergeben und die gewünschte Karte angezeigt. end; // Wünschenswert wäre es, wenn bereits hier die finalen Koords übergeben würden .. procedure TFrmGMapsAPI.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; Mc |
AW: Googlemaps: Parameterübergabe bei Javascript
Machmal sieht man den Wald vor lauter Bäumen nicht.
Problem gelöst: Die Koords gleich in den HTMLSTRING mit eingebaut. HTMLSTRING als var, nicht als const und dann über eine Funktion zusammengeflickt Gruß Mc |
AW: Googlemaps: Parameterübergabe bei Javascript
Hast Du Dir schon mal das
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz