AW: Google Maps über COM (Component Object Model)
ok, dann schaue ich mal nach einer günstigeren oder kostenlosen karte.
Aber wegen Text auf der Map darstellen weis ich nicht wie mir das Events demo weiterhelfen soll. Wie gesagt, am besten wäre es wenn die markernamen nicht nur angezeigt werden wenn man mit den Mauszeiger darüber geht sondern wenn er immer angezeigt wird. Oder eben wenn man wenigstens ein Textelement an die Marker platzieren könnte. |
AW: Google Maps über COM (Component Object Model)
Dann ist es am günstigsten, jeden Marker mit einem DIV-Element zu versehen, damit die Markierung samt Karte verschoben werden kann.
|
AW: Google Maps über COM (Component Object Model)
Ist es nicht einfach möglich ein label element an der marker position mit deiner api zu erstellen?
Und wie kann man z.B. Openstreetmap anstatt Google maps nutzen? |
AW: Google Maps über COM (Component Object Model)
Wie kann ich denn eigentlich erstellte Marker oder PolyObjekte wieder löschen von der Karte?
|
AW: Google Maps über COM (Component Object Model)
Zitat:
Zusätzliche Beschriftungen werden vom Google Maps API nicht explizit unterstützt. JavaScript-Programmierer nutzen für Labels meistens DIV-Container, die im Browser hinzugefügt und - bei Bedarf - mit Markern verknüpft werden. Ein Beispiel dazu habe ich in diesem Blog gefunden. Dadurch werden diese bei der Verschiebung der Karte mehr oder weniger verzögerungsfrei mitgeführt. Das ist aber ein konzeptionelles Problem, welches leider auch der Delphi-Wrapper nicht beseitigen kann. Die gute Nachricht ist, daß die benötigten DIV-Container vom Framework angelegt werden können:
Delphi-Quellcode:
//...
var Container: TDivNode; begin Container:=Script.Document.CreateDivNode; with Container.Style do begin Position:='absolute'; Bottom:='50px'; Left:='10px'; Height:='10px'; WhiteSpace:='nowrap'; FontSize:='10px'; FontFamily:='Arial, sans serif'; //... end; //... end; Zitat:
Es funktioniert nämlich beides: Der Google Player ist in der Lage, (nahezu) beliebige Karten darstellen. Dazu kann das Objekt ImageMapType verwendet werden. Für die Nutzung von OpenLayers muß dessen API in Delphi Wrapper umgesetzt werden. Das ist technisch machbar - darüber wurde schon in früheren Beiträgen diskutiert. Ein erster Test verlief recht gut. Zitat:
Delphi-Quellcode:
Damit werden diese Objekte von der Karte entfernt. Die zugehörigen JavaScript-Objekte werden dann vom Browser selbst irgendwann freigegeben und die Delphi-Wrapper-Objekte durch den Programmcode oder bei Beendigung der Anwendung.
Marker.Map:=nil;
Polygon.Map:=nil; |
AW: Google Maps über COM (Component Object Model)
Danke für die ausführliche Antwort.
Die Sache mit dem löschen funktioniert 1a :) Ich würde eigentlich gerne die onlinemap von Openstreetmap nutzen. Ist das aufwendig zu realisieren? Oder wäre es einfacher die offlinemap zu verwenden? Und als Label auf der Karte meinte ich eher einfach Text darstellen, egal wie. Möchte einfach nur die Marker nummerieren. Weis aber nicht wie :( |
AW: Google Maps über COM (Component Object Model)
Jetzt hast Du leider immer noch nicht geschrieben, welchen Player Du zur Darstellung der OSM-Karten verwenden willst: Google Maps (damit meine ich nicht die Karten selbst, sondern das Ding, das die Karten anzeigt und für das der Wrapper geschrieben wurde) oder OpenLayers. :glaskugel:
Das geht - wie schon geschrieben - mit beidem, ist aber ein Unterschied bei der Programmierung:
Zur Frage online/offline: Es kommt darauf an, ob Du nur einen Bereich oder die komplette Karte offline verwenden willst. Davon hängt nämlich die Kapazität Deiner Festplatte ab: In Zoomstufe 15 besteht eine Karte zum Beispiel aus (2^15*256)^2=70.368.744.177.664 Pixeln und ist damit ein Terrapixel-Bild 8-) Eine andere Möglichkeit besteht darin, nur die geometrischen Kartendaten lokal zu speichern und daraus selbst eine Karte zu rendern. Dafür gibt's fertige Lösungen - zum Beispiel Maperitive. Insofern ist natürlich eine Onlinevariante, die sich einfach die fertigen Kartenteile von den entsprechenden Servern holt, leichter zu realisieren. Für Marker können auch eigene Bilder verwendet werden und damit auch solche, die zum Beispiel einen Buchstaben oder eine Zahl enthalten. Dafür empfehle ich den Artikel Delphi und Google Maps (Teil 3) in der Toolbox 3/2011, in dem es genau um dieses Thema geht. |
AW: Google Maps über COM (Component Object Model)
Wegen dem Player verstehe ich nicht wirklich was du meinst. Ich nutze einfach deine Api, denke das es dann der google Player ist oder?
Genau genommen geht es mir immer nur um einen kleinen Kartenausschnitt den ich benötige. Vielleicht eine Kleinstadt groß. Aber ich benötige halt immer wieder andere Kartenteile von anderen Orten. Das ganze benötige ich auch nur weil google maps leider nicht kleine wege anzeigt, die mir aber wichtig sind. Die Garmin Topo 2010 Karten habe ich mir mal gekauft da diese echt die besten sind. da ist jeder kleine Weg drauf und ist voll routingfähig. Da sind lauter .img dateien dabei und eine basemap. Kann man das irgendwie verwenden? Hast du da ein Idee ob und wie in etwas man so was realisieren könnte? Wegen den Markern, ich verwende schon eigene Marker die ich mit Google.Maps.MarkerImage einbinde. Diese sollen jedoch dynamisch nummeriert werden. Ich bringe die in eine Reihenfolge und in dieser sollen die dann per buttonklick nummeriert (oder sonst wie benannt) werden. Da es sich auch um mehere verschiedene Marker handelt ist eine feste Nummerierung keine option. Was gibt es da noch für Möglichkeiten? |
AW: Google Maps über COM (Component Object Model)
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Zur Erklärung: Die Karten sind die eine Seite - die andere das Programm, das die Karten anzeigt. Ich nenne diese einfach allgemein "Player" - in Analogie zu Multimediaplayern wie zum Beispiel Windows Media Player oder DivX Player. Ob es dafür bei Geo-Daten eine einheitliche Bezeichnung gibt, weiß ich nicht. Ich lasse mich da aber gern belehren... Für Google Maps gibt es offiziell das JavaScript-API (zu dem ich den Wrapper geschrieben habe), das dazu dient, die Karten von Google innerhalb eines Browsers darzustellen und das API für Flash. Insofern sind die Begriffe API und Player Synonyme für die selbe Sache. Zitat:
Allerdings besitzen OSM-Karten teilweise eine bessere Qualität (Genauigkeit, Details) als Google-Karten. Das müßtest Du mal für den Bereich, der Dich interessiert, visuell überprüfen. Zitat:
Zitat:
|
AW: Google Maps über COM (Component Object Model)
Danke für die ausführliche Antwort.
Werde mir die Demos der Toolbox mal ansehen, kaufen werde ich mir die Zeitung aber deswegen nicht :) Habe mir die angehängte exe mal angesehen. Diese "Mapnik" Map wäre für mich schon ok (zumindest besser als die google map). Wenn ich jetzt noch wüsste wie ich die in mein Programm bekomme mit deiner Api wäre ich glücklich :) Hast du da eine Idee?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz