Georeferenzierten Plan darstellen

Hallo,

ich habe einen georeferenzierten Plan im tif-Format auf meinem PC gespeichert und möchte diesen in einem Testprojekt auf der OSM Karte an der richtigen Stelle dargestellt haben. Wird dieser wie eine ganz normale Bilddatei eingeführt oder muss zusätzlich etwas berücksichtigt werden?

Schon mal danke für die Unterstützung.

Ich tippe mal auf eine Darstellung via Web-Browser …

Schau nal unter http://openlayers.org/ → Developmenr Examples → Image Layer Example

Irgendwie funktioniert das Beispiel aber dort nicht, oder?

Passen andere Beispiele?

Das Beispiel hab ich auch schon ausprobiert. Wenn ich ein eigenes Bild auswähle klappt es wieder. Füge ich den Quelltext in ein anderes Beispiel ein, so läuft es nicht mehr. Die Frage ist dann aber auch, ob das Bild an der richtigen Stelle landet.

Geht auch mit Bild und Karte (sicher auch schöner, ich hab das eher lieblos georeferenziert und man müsste es noch ein bisschen drehen, glaube ich)

Das Bild müsste Mercator-Projektion vorliegen, oder wenigstens durch stauchen in Mercator-Projektion zu bringen sein. Bei kleinen Ausschnitten sollte das aber nicht so wichtig sein.

Grüße, Max

Danke. Ich bin schon mal etwas weiter.
Wie bekomme ich allerdings ein Bild zum Anzeigen, wenn es auf er Festplatte liegt. Wie muss der Dateipfad genau angegeben werden? Bei mir erscheint immer nur ein rosa Kästchen.

support98? ulkiger nick - zumindest in dieser Situation.
kommte der davon, dass du ansonsten für irgendetwas Support machst?
Wenn ja, hätte ich einige Fragen an dich:

Wie sollen wir deine Frage beantworten, wenn uns nichts von deinem Umfeld (OS, Gui (Openlayers, Leaflet, …), Browser, …) bekannt ist.
Und ein Stückchen Code wäre auch nicht schlecht.

Das müßte ein Supporter eigentlich wissen - falls du einer sein solltest.

walter

nachtrag: OpenLayers konnte ich inzwischen erraten.

var bild = new OpenLayers.Layer.Image(
                'Luftschiffer',
                'file:///C:/luftschiffer/luftschiffer.jpg',
                bildgrenzen,
                bildgroesse,
                {isBaseLayer: false,opacity:0.75}
            );

Läuft bei mir mit Windows/Firefox und einem Bild auf C:\luftschiffer\luftschiffer.jpg und einer html-datei in dem gleichen Verzeichnis.

Aber bei der Frage, ob überhaupt js von lokalen Dateien ausgeführt wird und was die Skripte dann da können, spielen jede Menge Sicherheitsbegrenzungen der Browser mit…

Grüße, Max

Schönes Beispiel Maxbe, wenn die Datei im gleichen Verzeichnis liegt braucht es nur die Angabe:

var bild = new OpenLayers.Layer.Image(
                'Luftschiffer',
                'luftschiff.jpg',

Ich habe noch die Möglichkeit hinzugefügt die Transparenz zu ändern:


<html>
    <script src="http://openlayers.org/dev/OpenLayers.js"></script>
    <script type="text/javascript">
		var bild = null;
        var maxOpacity = 0.9;
        var minOpacity = 0.1;
        function changeOpacity(byOpacity) {
            var newOpacity = (parseFloat(OpenLayers.Util.getElement('opacity').value) + byOpacity).toFixed(1);
            newOpacity = Math.min(maxOpacity,
                                  Math.max(minOpacity, newOpacity));
            OpenLayers.Util.getElement('opacity').value = newOpacity;
            bild.setOpacity(newOpacity);
        }	

        function init(){
            var map = new OpenLayers.Map('mapdiv');

            var bildgrenzen=new OpenLayers.Bounds(11.547, 48.157,11.55655,48.162).transform(new OpenLayers.Projection("EPSG:4326"),new OpenLayers.Projection("EPSG:900913"));
            var bildgroesse=new OpenLayers.Size(441, 317);

            bild = new OpenLayers.Layer.Image(
                'Luftschiffer',
                'luftschiff.jpg',
                bildgrenzen,
                bildgroesse,
                {isBaseLayer: false,opacity:0.65, reaspect: "false", transparent: 'true'}

            );
                          
            var mapnik=new OpenLayers.Layer.OSM("Mapnik");

            map.addLayers([mapnik,bild]);

            map.addControl(new OpenLayers.Control.MousePosition());
            map.addControl(new OpenLayers.Control.LayerSwitcher());

            map.setCenter(new OpenLayers.LonLat(11.5525,48.15928).transform(new OpenLayers.Projection("EPSG:4326"),map.getProjectionObject()),16);

			}

    </script>

  </head>
  <body onload="init()">
  <div id='mapdiv' style="width:1024px;height:768px;"></div>
  
        <p>Opacity:
            <a title="decrease opacity" href="javascript: changeOpacity(-0.1);"><<</a>
            <input id="opacity" type="text" value="0.65" size="3" disabled="true" />
            <a title="increase opacity" href="javascript: changeOpacity(0.1);">>></a>
        </p>
		
  </body>
</html>

Gruss zapfen

Moin,

das beste wird sein Du nimmst Dir einen GeoServer, wirfst dem den Plan als GeoTIFF vor und nimmst dann in OL oder JOSM oder QGIS oder wo auch immer einfach WMS.

LG,

-moenk