![]() |
Googlemaps Icons ändern
Hallo zusammen
in meiner Anwednung verwende ich eine Googlemap um div. Orte darzustellen. Dies funktioniert auch einwandfrei. Nun möchte ich aber noch das Icon anpassen. Hat mir da jemand einen Tipp? bisheriger Code:
Delphi-Quellcode:
Danke für Eure Tipps
procedure Tfrm_googlemap.btn_batch_distClick(Sender: TObject);
var // latitude, longitude: String; Doc2: IHTMLDocument2; Win2: IHTMLWindow2; latlng: String; i: integer; begin if not DM.Camps.Active then DM.Camps.Open; if not DM.tmp.Active then DM.tmp.Open; try DM.tmp.First; for i := 0 to DM.tmp.RecordCount -1 do begin with WebBrowser1.HTMLWindow2 do begin execScript('createMapMarker( " ' + DM.tmp.FieldByName('POS_LAT').AsString + '", "'+ DM.tmp.FieldByName('POS_LNG').AsString +'", "'+ DM.tmp.FieldByName('NAME').AsString + ' '+ DM.tmp.FieldByName('STR').AsString + ' '+ DM.tmp.FieldByName('PLZ').AsString + '-'+ DM.tmp.FieldByName('CITY').AsString + ' '+ DM.tmp.FieldByName('TEL').AsString + '", icon: '+'http://google-maps-icons.googlecode.com/files/factory.png'+')', 'JavaScript'); log_window.Lines.Add( DM.tmp.FieldByName('POS_LAT').AsString + ' ' + DM.tmp.FieldByName('POS_LNG').AsString + ' ' + DM.tmp.FieldByName('NAME').AsString); // Logeintrag DM.tmp.Next; end; end; finally end; Doc2 := WebBrowser1.Document as IHTMLDocument2; Win2 := Doc2.parentWindow; latlng := '46.818188,8.227512'; Win2.execScript('map.panTo(new GLatLng(' + latlng + '));', 'JavaScript'); WebBrowser1.ExecJScript('addControl(1);'); end; Manfred |
Re: Googlemaps Icons ändern
Gib eine andere URL für das Icon an. Oder wo ist jetzt das Problem?
|
Re: Googlemaps Icons ändern
Hallo Luckie
Die URL für das Icon stimmt. Die Fehlermeldung hab ich leider vergessen zu erwähnen.. :oops: Es erscheint immer ein Scriptfehler: Zeile 1 Zeichen 133 Expected '}' mir ist leider nicht ganz klar wo der Fehler liegt. Manfred |
Re: Googlemaps Icons ändern
Und was ist Zeile 1 Zeichen 133? Und was hat der Titel jetzt mit deinem Problem zu tun?
|
Re: Googlemaps Icons ändern
Zitat:
Dir gerne miteilen. :? Zitat:
möchte sondern einen eigenen habe ich diesen Titel gewählt. Wie würdest Du ihn sonnst nennen? |
Re: Googlemaps Icons ändern
:wall:
Bitte formuliere dein Problem mal irgendwie etwas genauer. Im Titel steht, dass du ein icon ändern willst. Das Icon wird über eine URL festgelegt. Änderst du die URL zu einem anderen Icon, hast du ein anderes Icon. Und hetzt redest du von einem Skriptfehler. Um was geht es denn nun? |
Re: Googlemaps Icons ändern
Ich versuche mit einer Delphi Anwendung eine Google Map darzustellen bei der
Karte sollten sich die Marker aus der Anwendung bestimmen lassen. Auf dem Server habe ich folgende HTML Seite:
Delphi-Quellcode:
aus der Anwendung greife ich mit dem Code aus dem ersten Post zu.
<html><head>
<script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAALAyPM0cN5H4k4KM-7W6VQBRf0FePgkyxmUXJn9hmf5uqva2aGBQEHbZ_hWLtb_TV7znBj6MvQHpX5w" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var map; var marker = new google.maps.Marker({ position: new google.maps.LatLng(56.8848, 14.7730), map: map, title: 'My workplace', clickable: false, icon: 'http://google-maps-icons.googlecode.com/files/factory.png' }); function addControl(ctrlType) { switch(ctrlType) { case 1: map.addControl(new GSmallMapControl()) break case 2: map.addControl(new GMapTypeControl()); break } } function createMapMarker(lat, lng, html) { var point = new GLatLng(parseFloat(lat),parseFloat(lng)); var marker = new GMarker(point); var html_m = html; GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html_m)} ); icon: 'http://google-maps-icons.googlecode.com/files/factory.png' map.addOverlay(marker); return marker; } function load_map(id, lat, lng, zoom) { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById(id)); var point = new GLatLng(parseFloat(lat),parseFloat(lng)); map.setCenter(point, zoom); } else { alert("Sorry, the Google Maps API is not compatible with this browser"); } } //]]> </script> <base href="http://www.stevetrefethen.com/siteblog/"></base> <style type="text/css"> html, body { border: 0px; margin: 0px; padding: 0px; } </style> </head> <body onunload="GUnload()"> <div id="skypark" class="floatright" style="width: 500px; height: 500px;"></div> <script src="http://www.stevetrefethen.com/siteblog/googlemap.ashx?id=skypark&lat=46.818188&lon=8.227512&zoom=07" type="text/javascript"></script> </body> <!--[if gte IE 6]> <script type="text/javascript"> //<![CDATA[ function load_IEmap(id, lat, lng, zoom) { load_map(id, lat, lng, zoom); } //]]> </script> <![endif]--> </html> Der Fehler der Auftaucht ist ein Scriptfehler. Zitat:
Wenn ich die Karte ohne die Icons Definition aufrufe Funtioniert es:
Delphi-Quellcode:
mit freundlichen Grüssen
procedure Tfrm_googlemap.btn_batch_distClick(Sender: TObject);
var // latitude, longitude: String; Doc2: IHTMLDocument2; Win2: IHTMLWindow2; latlng: String; i: integer; begin if not DM.Camps.Active then DM.Camps.Open; if not DM.tmp.Active then DM.tmp.Open; try DM.tmp.First; for i := 0 to DM.tmp.RecordCount -1 do begin with WebBrowser1.HTMLWindow2 do begin execScript('createMapMarker( " ' + DM.tmp.FieldByName('POS_LAT').AsString + '", "'+ DM.tmp.FieldByName('POS_LNG').AsString +'", "'+ DM.tmp.FieldByName('NAME').AsString + ' '+ DM.tmp.FieldByName('STR').AsString + ' '+ DM.tmp.FieldByName('PLZ').AsString + '-'+ DM.tmp.FieldByName('CITY').AsString + ' '+ DM.tmp.FieldByName('TEL').AsString + '")', 'JavaScript'); log_window.Lines.Add( DM.tmp.FieldByName('POS_LAT').AsString + ' ' + DM.tmp.FieldByName('POS_LNG').AsString + ' ' + DM.tmp.FieldByName('NAME').AsString); // Logeintrag DM.tmp.Next; end; end; finally end; Doc2 := WebBrowser1.Document as IHTMLDocument2; Win2 := Doc2.parentWindow; latlng := '46.818188,8.227512'; Win2.execScript('map.panTo(new GLatLng(' + latlng + '));', 'JavaScript'); WebBrowser1.ExecJScript('addControl(1);'); end; Manfred |
Re: Googlemaps Icons ändern
Hat nicht doch jemand einen Tipp?
Manfred |
Re: Googlemaps Icons ändern
fehlt da hinter: icon: "http:..." ein Semikolon?
|
Re: Googlemaps Icons ändern
>>ToZie: Danke für die Hilfe
Konnte es lösen:
Delphi-Quellcode:
<!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"/> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAALAyPM0cN5H4k4KM-7W6VQBRf0FePgkyxmUXJn9hmf5uqva2aGBQEHbZ_hWLtb_TV7znBj6MvQHpX5w" type="text/javascript"></script> <script type="text/javascript"> var map; // need this global so Delphi can access it. (at least for now.) //<![CDATA[ function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.addControl(new GScaleControl()); map.setCenter(new GLatLng(46.818188, 8.227512), 07); } } function addControl(ctrlType) { switch(ctrlType) { case 1: map.addControl(new GSmallMapControl()) break case 2: map.addControl(new GMapTypeControl()); break } } function createMapMarker_member(lat, lng, html) { var memberIcon = new GIcon(); memberIcon.image = "http://www.gideons.ch/fileadmin/scripts/googlemaps/icons/member.png"; memberIcon.iconSize = new GSize(28, 33); memberIcon.iconAnchor = new GPoint(6, 20); memberIcon.infoWindowAnchor = new GPoint(5, 1); // Set up our GMarkerOptions object literal markerOptions = { icon:memberIcon }; var point = new GLatLng(parseFloat(lat),parseFloat(lng)); var marker = new GMarker(point, markerOptions); var html_m = html; GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html_m)} ); //GLog.write(map.addOverlay(marker, markerOptions)); // only for debugging map.addOverlay(marker, markerOptions); return marker; } //]]> </script> <style type="text/css"> html, body { border: 0px; margin: 0px; padding: 0px; } </style> </head> <body onload="load()" onunload="GUnload()"> <div id="map" style="width: 500px; height: 490px"></div> </body> </html>
Delphi-Quellcode:
Shalom
procedure Tfrm_googlemap.btn_batch_memberClick(Sender: TObject);
var Doc2: IHTMLDocument2; Win2: IHTMLWindow2; latlng: String; i: integer; begin if not DM.Camps.Active then DM.Camps.Open; if not DM.tmp.Active then DM.tmp.Open; try DM.tmp.First; for i := 0 to DM.tmp.RecordCount -1 do begin with WebBrowser1.HTMLWindow2 do begin execScript('createMapMarker_member(" '+ DM.tmp.FieldByName('POS_LAT').AsString+'", "'+ DM.tmp.FieldByName('POS_LNG').AsString+'", "'+ DM.tmp.FieldByName('F_NAME').AsString + ' '+ DM.tmp.FieldByName('STR').AsString + ' '+ DM.tmp.FieldByName('PLZ').AsString + '-'+ DM.tmp.FieldByName('CITY').AsString + ' '+ 'TEL-P:' + DM.tmp.FieldByName('TELP').AsString + ' '+ '______________________ '+ 'Camp ' + '- '+ DM.tmp.FieldByName('C_NO').AsString +'", "'+ '")', 'JavaScript'); log_window.Lines.Add( DM.tmp.FieldByName('POS_LAT').AsString + ' ' + DM.tmp.FieldByName('POS_LNG').AsString + ' ' + DM.tmp.FieldByName('F_NAME').AsString); // LogeintragDM.tmp.Next; DM.tmp.Next; end; end; finally latlng:= DM.tmp.FieldByName('POS_LAT').AsString +','+ DM.tmp.FieldByName('POS_LNG').AsString; end; Doc2 := WebBrowser1.Document as IHTMLDocument2; Win2 := Doc2.parentWindow; end; Manfred |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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