[Talk-de] Bilder auf OSM-Karte einbinden
Jan Tappenbeck
osm at tappenbeck.net
Fr Nov 6 09:25:53 UTC 2009
Adiac schrieb:
> Am Dienstag 03 November 2009 23:27:04 schrieb Carsten Gerlach:
>> Hallo OSM-Freunde,
> Hi Carsten,
>
>> Mein Problem ist jetzt, das der Container, der das Bild enthält, feste
>> Abmessungen hat. Ich würde es aber gern so haben, daß sich die Größe des
>> Containers automatisch der Größe des Bildes anpasst. Kann mir jemand einen
>> Hinweis geben, an welcher Schraube ich da drehen muss?
> Du machst das über OpenLayers.Layer.GPX. Ich binde die Infos (die auch
> Bilder enthalten könnten) direkt im Code ein, da die Infos eh aus einer
> Datenbank über Joomla kommen. Das Popup, was genauso aussieht wie bei Dir
> ist selbstskalierend.
>
> Dein Codeabschnitt:
> var bilder = new OpenLayers.Layer.GPX("Bilder", "gpx_bilder_OSM.gpx", "#FF0000");
> map.addLayer(bilder);
>
> Meiner:
> markers = new OpenLayers.Layer.Markers("Startpunkte");
> map.addLayer(markers);
> addMarkers();
> function addMarkers() {
> ll = new OpenLayers.LonLat(6,51).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
> popupClass = AutoSizeFramedCloud;
> popupContentHTML = 'Überscghrift<p>Gaaaaaaaaaaaaaaaaaanz_laaaaaaaaaaaaaaaanger_Texttttttttttttttttt</p>'
> addMarker(ll, popupClass, popupContentHTML, true);
> ll = new OpenLayers.LonLat(7,52).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
> popupClass = AutoSizeFramedCloud;
> popupContentHTML = '<b>Titel</b>ganzklein'
> addMarker(ll, popupClass, popupContentHTML, true);
> }
>
> Dafür brauchst Du noch die Funktion addMarker (nicht addMarkers), die Du
> hier [1] findest. Vielleicht geht’s auch einfacher, aber so habe ich
> es gelöst.
> Kannst Du mal den Teil Deiner GPX-Datei posten,
> damit ich mal sehe wie ein Bild eingebunden wird? Danke
>
> MfG, Adiac
>
>
>
> [1]
> /**
> * Function: addMarker
> * Add a new marker to the markers layer given the following lonlat,
> * popupClass, and popup contents HTML. Also allow specifying
> * whether or not to give the popup a close box.
> *
> * Parameters:
> * ll - {<OpenLayers.LonLat>} Where to place the marker
> * popupClass - {<OpenLayers.Class>} Which class of popup to bring up
> * when the marker is clicked.
> * popupContentHTML - {String} What to put in the popup
> * closeBox - {Boolean} Should popup have a close box?
> * overflow - {Boolean} Let the popup overflow scrollbars?
> */
>
> function addMarker(ll, popupClass, popupContentHTML, closeBox, overflow) {
> var feature = new OpenLayers.Feature(markers, ll);
> feature.closeBox = closeBox;
> feature.popupClass = popupClass;
> feature.data.popupContentHTML = popupContentHTML;
> feature.data.overflow = (overflow) ? "auto" : "hidden";
> var marker = feature.createMarker();
> var markerClick = function (evt) {
> if (this.popup == null) {
> this.popup = this.createPopup(this.closeBox);
> map.addPopup(this.popup);
> this.popup.show();
> } else {
> this.popup.toggle();
> }
> currentPopup = this.popup;
> OpenLayers.Event.stop(evt);
> };
> marker.events.register("mousedown", feature, markerClick);
> markers.addMarker(marker);
> }
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
Moin !
wenn ich das ganze Richtig sehe dann wird hier eine GPX eingebunden und
dann über die Funktion addMarker das betreffende Bild zugewiesen - wird
das jetzt für alle Punkte der GPX-Datei gemacht oder gibt es einen Weg
für jeden Punkt in der GPX-Datei ein eigenes Bild zuzuweisen ???
Ich arbeite mit der Funktion
var postbox = new OpenLayers.Layer.Text( "Briefkasten", {
location:"data/data_post_dith/postbox_format.txt", projection: new
OpenLayers.Projection("EPSG:4326")} );
map.addLayer(postbox);
um die Punkte mittels der Textdatei einzubinden. Würde das auch
irgendwie mit der o.g. Aufgabenstellung machbar sein ?
Gruß Jan :-)
Mehr Informationen über die Mailingliste Talk-de