You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2015-08-04 01:32:08

joergi2012
Member
Registered: 2012-02-11
Posts: 90

Kompaß in Openstreetmap einbauen

Hi,

ich habe nur eine kurze Frage zu den Himmelsrichtungen. Stimmt es, das bei Openstreetmap Norden immer Oben ist (und z.B. Osten demnach rechts!)? Wenn ja: Gibt es evtl. schon eine fertige Funktion, die einen standard Kompaß einbindet. Alternativ müßte man den dann glaube ich per Layer einbinden, oder?

Hoffe, meine Frage ist nicht zu dämlich roll

Offline

#2 2015-08-04 06:41:19

Harald Hartmann
Member
From: 98667 Schönbrunn
Registered: 2014-04-02
Posts: 3,123
Website

Re: Kompaß in Openstreetmap einbauen

Hallo joergi2012,
bevor die Krümmelkacker gleich wieder zuschlagen gleich vorweg, bei Openstreetmap - also in der Datenbank - gibt es kein Norden = Oben. Was du sicherlich meinst sind die Karten wie z.B. openstreetmap.org oder openstreetmap.de. Dort ist, wie bei allen anderen gerasterten (Tile) Karten auch, Norden immer oben - zumindest habe ich noch keine gesehen, bei der es nicht so ist. Im gegensatz zu vektorkarten kann man ja auch nicht mal gerade ebenso die Karte drehen wie man lustig ist, wie z.B. im bestimmten Navigation-Apps, wo es dann auch in der Tat Sinn macht eine Kompaßrose oder einen "Nordpfeil" einzublenden.

Wenn, dann müsste man es in der Tat als Layern einbinden, wobei dies nicht zwingend ein OpenLayers/Leaflet Layer sein müsste, da man TileKarten eh nicht drehen kann, reicht ein normaler html-div-layer.

Viele Grüße,
Harald Hartmann


Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD

Offline

#3 2015-08-04 08:07:07

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Kompaß in Openstreetmap einbauen

Harald Hartmann wrote:

Dort ist, wie bei allen anderen gerasterten (Tile) Karten auch, Norden immer oben - zumindest habe ich noch keine gesehen, bei der es nicht so ist.

Tja, dann schau mal hier: http://www.ancalime.de/rotated.html
oder auch "ausser Konkurenz" hier: http://gis.ibbeck.de/ginfo/apps/OLExamp … tation.asp

ich meine, ich hätte auch ein Feature zum Rotieren in Mapnik 3.x gesehen, kann es aber auf die Schnelle nicht finden.

Gruss
walter

Krümelk. v. D. wink

Last edited by wambacher (2015-08-04 08:10:00)

Offline

#4 2015-08-04 08:08:27

kreuzschnabel
Member
Registered: 2015-07-03
Posts: 6,640

Re: Kompaß in Openstreetmap einbauen

joergi2012 wrote:

Stimmt es, das bei Openstreetmap Norden immer Oben ist (und z.B. Osten demnach rechts!)?

Definiere „Openstreetmap“. Es wäre wahrscheinlich kein Problem, aus der OSM-Datenbank eine elbische Karte zu rendern, die Westen oben hat. Die gängigen Renderer halten sich aber an die Konvention, Norden nach oben zu nehmen.

Also abgesehen von der Möglichkeit, deinen Bildschirm zu drehen: Ja, Norden ist in aus Openstreetmap erzeugten Karten (was nicht mit Openstreetmap selbst, der Geodatenbank, verwechselt werden sollte) oben.

Wenn ja: Gibt es evtl. schon eine fertige Funktion, die einen standard Kompaß einbindet.

Hier verläßt mich mein Logikmodul. Ein „Wenn nein“ hätte ich noch logisch gefunden, aber wozu brauchst du eine Windrose auf der Karte, wenn schon mehr oder weniger feststeht, wo Norden ist?

--ks

Offline

#5 2015-08-04 08:14:40

Harald Hartmann
Member
From: 98667 Schönbrunn
Registered: 2014-04-02
Posts: 3,123
Website

Re: Kompaß in Openstreetmap einbauen

wambacher wrote:

Tja, dann schau mal hier: http://www.ancalime.de/rotated.html

Ja, aber da handelt es sich ja nicht mehr um "Standardkarten" wink Und klar, wenn ein Radweg von Norden nach Süden läuft, ich den aber im Querformat haben will, macht es ja durchaus Sinn, die Karte "gedreht" zu rendern und dann ist der Nordpfeil oder die Kompaßrose definitiv auch eine Pflichtangabe


Mein aktives Gebiet: Gemeinde Schleusegrund
Fingerprint meines Schlüssels: 71F7 3CD9 B647 9079 6B88 326E 8B8B 72AE 34F9 5AAD

Offline

#6 2015-08-04 09:53:10

Skinfaxi
Member
From: Blackstad, Sweden
Registered: 2013-07-30
Posts: 1,457

Re: Kompaß in Openstreetmap einbauen

hej joergi2012,
fuer Dein Problem existieren diverse "fertige" Lösungen. Nimmst Du aus den openstreetmap Daten generierte Karten - wie z.B. die freizeitkarte-osm, reitwanderkarte.de oder openandromaps - und verwendest die entsprechenden zum Kartenformat passenden Programme (z.B. Oruxmaps, Basecamp von Garmin oder qlandkarte) kannst Du die Karte mit Hilfe der im Programm vorgesehen Kompassrose beliebig verdrehen. Auch die diversen Garmingeräte können die Karte automatisch in Fahrtrichtung ausrichten - es ist also vernuenftig anzunehmen, dass die Navis anderer Hersteller das auch können.

Der einzige Nachteil dieser Lösung ist, dass Änderungen nicht so schnell sichtbar werden und Du immer mit dem Datenbestand zum Zeitpunkt der ERstellung der Karte arbeitest - der grosse Vorteil ist aber, dass es auch ohne jede onlineverbindung klappt.

Lieben Gruss
Jens


Dinge, die nicht in der Datenbank sind, können auch nicht veraltern

Offline

#7 2015-08-04 10:11:23

joergi2012
Member
Registered: 2012-02-11
Posts: 90

Re: Kompaß in Openstreetmap einbauen

Hi,
danke für Eure Antworten. Es ist eine ganz normale Karte, die auch nicht drehbar o.Ä. ist (siehe untenstehenden script).

Ich bekam teilweise Nachfragen, ob die Karte genordet ist, konnte dazu aber keine verbindliche Auskunft geben. Nun weis ich es besser :-) 

Ich werde, wenn ich Euch richtig verstanden habe, einfach eine statische Kompaßgrafik als Layer einbinden :-)

<script src="OpenLayers/OpenLayers.js">
</script><script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js">
</script>
<div id="map" style="width:750px;height:510px;"></div>'
<script type="text/javascript" src="OpenLayers/my_panzoombar.js"></script>
<script type="text/javascript">
var map;
function showMap()
{
map = new OpenLayers.Map("map",
{
maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
maxResolution: 156543.0399,
units: "m",
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
controls: [],
});
map.addControl (new OpenLayers.Control.LayerSwitcher());
map.addControl (new OpenLayers.Control.Attribution());
map.addControl (new OpenLayers.Control.Navigation());
map.addControl (new OpenLayers.Control.PanZoomBar({minZoom: 12}));
var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik (updated weekly)");
map.addLayers([layerMapnik]);
map.setCenter(new OpenLayers.LonLat(7.2741121239461,51.590829124866).transform(new OpenLayers.Projection("EPSG:4326"),
new OpenLayers.Projection("EPSG:900913")), 14);
marker.events.register("mousedown", marker, function(evt)
{
OpenLayers.Event.stop(evt);
}
);
map.layers[map.layers.length-1];
}
showMap();
</script>

Offline

#8 2015-08-04 10:25:50

kreuzschnabel
Member
Registered: 2015-07-03
Posts: 6,640

Re: Kompaß in Openstreetmap einbauen

joergi2012 wrote:

Ich bekam teilweise Nachfragen, ob die Karte genordet ist, konnte dazu aber keine verbindliche Auskunft geben.

Einfache Antwort fürs nächste Mal: Wenn auf einer Karte keine Nordrichtung ausdrücklich angegeben ist, dann ist Norden oben.

--ks

Offline

#9 2015-08-04 17:36:58

joergi2012
Member
Registered: 2012-02-11
Posts: 90

Re: Kompaß in Openstreetmap einbauen

So, habe jetzt eine Kompassgrafik gefunden. Nun stehe ich aber vor dem Problem, diese PNG Datei einzubinden. Irgendwie finde ich kein vernünftiges Beispiel, das ich verstehe. Könnt Ihr mir einen Tip geben, wie ich eine Grafik als "Overlay Layer" integrieren kann? Die Grafik verändert natürlich weder die Position noch die Größe

Offline

#10 2015-08-04 18:31:03

Andreas Binder
Member
From: Bavaria
Registered: 2010-06-26
Posts: 593

Re: Kompaß in Openstreetmap einbauen

wambacher wrote:

ich meine, ich hätte auch ein Feature zum Rotieren in Mapnik 3.x gesehen, kann es aber auf die Schnelle nicht finden.

Ich denke, Du hast dieses Openlayers-Beispiel gemeint http://openlayers.org/en/v3.1.0/examples/rotation.html

Offline

#11 2015-08-04 19:12:12

Andreas Binder
Member
From: Bavaria
Registered: 2010-06-26
Posts: 593

Re: Kompaß in Openstreetmap einbauen

Hi Joergi2012,
wenn die Kompassgrafik auch im rechten, unteren Karteneck sein darf, dann kannst Du die Grafik in die Attribution einbauen.

22730612ht.jpg

...
function init() {
	map = new OpenLayers.Map ("map", { controls:[
		new OpenLayers.Control.PanZoomBar({panIcons: false}),
		new OpenLayers.Control.Attribution(),

...
layerMyMap = new OpenLayers.Layer.TMS( 
		"myMap", 
		[ "" ],
		{ type:'png', getURL: get_osm_url, wrapDateLine: true, attribution: '&copy; <a href="http://www.openstreetmap.org/">OpenStreetMap und Mitwirkende CC-BY-SA</a><img src=compass.png>'});
	map.addLayer(layerMyMap);
...

Grüße
Andreas

Offline

#12 2015-08-04 19:38:20

joergi2012
Member
Registered: 2012-02-11
Posts: 90

Re: Kompaß in Openstreetmap einbauen

Hi Andreas,

danke für das Angebot. Aber ich habe mir jetzt eine eigene Kompassgrafik gebastelt, die ich rechts neben dem "Layer switcher" positionieren möchte. Jetzt müßte meine Kompass Grafik ja eigentlich einen geringeren Z-index Wert besitzen, damit entsprechende Punkte im "Layer switcher" evtl. angelickt werden könnten, oder? Leider weiß ich nicht, wie ich meine feststehende und nicht größenveränderbare Kompass Grafik in meinen script (Siehe mein heutiges posting um 9:11 Uhr) einbetten kann ...  sad

Offline

#13 2015-08-04 20:22:32

Andreas Binder
Member
From: Bavaria
Registered: 2010-06-26
Posts: 593

Re: Kompaß in Openstreetmap einbauen

Versuchs mal damit. Ist eine leichte Veränderung Deines Scripts. Ich habe eine Bilddatei namens compass.png verwendet, die im selben Verzeichnis wie die HTML liegt (Diese Lösung "missbraucht" ebenfalls das Attribution-Control)

<script src="OpenLayers/OpenLayers.js">
</script><script src="http://www.openstreetmap.org/openlayers/OpenStreetMap.js">
</script>
<div id="map" style="width:750px;height:510px;"></div>'
<script type="text/javascript" src="OpenLayers/my_panzoombar.js"></script>
<script type="text/javascript">
var map;
function showMap()
{
map = new OpenLayers.Map("map",
{
maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
maxResolution: 156543.0399,
units: "m",
projection: new OpenLayers.Projection("EPSG:900913"),
displayProjection: new OpenLayers.Projection("EPSG:4326"),
controls: [],
});
map.addControl (new OpenLayers.Control.LayerSwitcher());
map.addControl (new OpenLayers.Control.Attribution());
map.addControl (new OpenLayers.Control.Navigation());
map.addControl (new OpenLayers.Control.PanZoomBar({minZoom: 12}));
var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik (updated weekly)");
layerMapnik.attribution = "<img src=compass.png>";
map.addLayers([layerMapnik]);
map.setCenter(new OpenLayers.LonLat(7.2741121239461,51.590829124866).transform(new OpenLayers.Projection("EPSG:4326"),
new OpenLayers.Projection("EPSG:900913")), 14);
marker.events.register("mousedown", marker, function(evt)
{
OpenLayers.Event.stop(evt);
}
);
map.layers[map.layers.length-1];
}
showMap();
</script>
<style>
      div.olControlAttribution {
          right: 20px;
	  top: 3px;
      }
</style>

Last edited by Andreas Binder (2015-08-04 20:23:41)

Offline

#14 2015-08-04 21:23:56

lutz
Member
Registered: 2007-08-18
Posts: 1,620
Website

Re: Kompaß in Openstreetmap einbauen

hallo,

schaue dir mal  untter steuerelemente, kompass an:

http://gk.historic.place/historische_objekte/index.html

im quellcode müßte npoch ein ausdokumentiertes beispiel mit den layerswitcher in openlayers sein.....

grüße von lutz

Offline

#15 2015-08-04 22:11:39

maxbe
Member
Registered: 2010-01-19
Posts: 3,255
Website

Re: Kompaß in Openstreetmap einbauen

Ich würde auch wie im Beispiel von Lutz den Nordpfeil mit besonders hohem z-index als div ganz unabhängig von OpenLayers irgendwo über die Karte kleben und den Layerswitcher irgendwo darunter hinschieben.... Oder warten bis jemand ein schönes Beispiel mit OpenLayers 3 oder Leaflet bringt.

Offline

#16 2015-08-04 23:25:15

joergi2012
Member
Registered: 2012-02-11
Posts: 90

Re: Kompaß in Openstreetmap einbauen

Hi,

habe mich jetzt an das Beispiel von Andreas gehalten. Der Kompaß wurde oben rechts positioniert und der layerswitcher "tiefer gelegt". Sieht jetzt toll aus. Aber leider fehlt jetzt der "Atrribution" Hinweis unten in der rechten Ecke. Mache ich da einen Denkfehler? Wie kann ich den wieder anzeigen lassen?

Offline

#17 2015-08-05 00:54:43

joergi2012
Member
Registered: 2012-02-11
Posts: 90

Re: Kompaß in Openstreetmap einbauen

Soooo,

habe jetzt noch etwas rumexperimentiert und die für mich beste Lösung gefunden. Der Switchlayer, wurde nun weiter heruntergesetzt, damit der mit einer absoluten Positionierung rechts oben gesetzte Kompass Platz hat. Das ganze funktioniert einwandfrei. Damit habe ich jetzt doch auf eine Änderung im Javascript verzichtet.

Offline

#18 2015-08-05 16:28:55

Andreas Binder
Member
From: Bavaria
Registered: 2010-06-26
Posts: 593

Re: Kompaß in Openstreetmap einbauen

...Aber leider fehlt jetzt der "Atrribution" Hinweis unten in der rechten Ecke. Mache ich da einen Denkfehler? Wie kann ich den wieder anzeigen lassen?...

Möglichkeit 1
Setze die Attribution vor den Kompass (Attribution wird dann direkt überhalb des Kompasses angezeigt, d.h. rechts oben)

layerMapnik.attribution = layerMapnik.attribution = "&copy; <a href=http://www.openstreetmap.org/>OpenStreetMap und Mitwirkende CC-BY-SA</a><br><img align=right src=compass.png>";

Möglichkeit 2
Setze die Attributierung in den HTML-Body manuell rein. Erscheint dann unterhalb der Karte

&copy; <a href="http://www.openstreetmap.org/">OpenStreetMap und Mitwirkende CC-BY-SA</a>

Last edited by Andreas Binder (2015-08-05 16:30:56)

Offline

#19 2015-08-06 19:24:49

TobWen
Member
From: Ruhrgebiet
Registered: 2009-03-31
Posts: 1,112

Re: Kompaß in Openstreetmap einbauen

Ich habe auf der INTERGEO letztes Jahr in Berlin einen Vortrag dazu gehalten (@Markus: bald kommt noch was, ich habe echt viel zu tun).

Norden ist NICHT immer oben. Es gibt drei Arten von Norden:
* Gitternord
* Magnetisch Nord
* Geographisch Nord

Die OpenStreetMap-Projektion zeigt nach Gitternord - das hat aber nichts mit dem Kompass zu tun. Wenn man z.B. in Nordamerika unterwegs ist und mit OSM und einem Kompass Richtung Kanada wandern will, kommt man ganz woanders raus. Ganz gefährlich ist das für Segler. Man muss einen Kurs nämlich ständig korrigieren.

Ich habe dazu einen Artikel für ein Magazin geschrieben, der noch nicht veröffentlicht wurde. Ich könnte ihn umschreiben und die wichtigsten Teile veröffentlichen.


Was macht der RVR mit OpenStreetMap? https://forum.openstreetmap.org/viewtopic.php?id=63052
Aktuelle Luftbilder des RVRs (Ruhrgebiet) http://forum.openstreetmap.org/viewtopic.php?id=28511

Offline

#20 2015-08-06 19:41:32

maxbe
Member
Registered: 2010-01-19
Posts: 3,255
Website

Re: Kompaß in Openstreetmap einbauen

TobWen wrote:

Norden ist NICHT immer oben.

Ich glaube, es hat sich eingebürgert, trotzdem keinen Nordpfeil auf die Karte zu setzen, solange die Abweichung nur ein paar Grad beträgt. Sonst hätten wir auf jeder Wanderkarte eine kleine Kompassrose. Die Feinheiten überlässt man Experten, die mit den Linien, den Diagrammen und dem Kleingedruckten am Kartenrand klarkommen. Dem Rest unterstellt man, dass er eh nicht genauer zielen kann.

Wie sieht denn eine nordkanadische Karte aus? Sind da drei fette Pfeile zu den beiden Polen und zum Gitternord drauf?

Grüße, Max

Offline

#21 2015-08-06 19:53:38

TobWen
Member
From: Ruhrgebiet
Registered: 2009-03-31
Posts: 1,112

Re: Kompaß in Openstreetmap einbauen

maxbe wrote:

Ich glaube, es hat sich eingebürgert, trotzdem keinen Nordpfeil auf die Karte zu setzen, solange die Abweichung nur ein paar Grad beträgt. Sonst hätten wir auf jeder Wanderkarte eine kleine Kompassrose.

Achtung: Wanderkarten besitzen in der Regel eine Projektion, wie UTM oder Gauß-Krüger mit einer gewissen lokalen Begrenzung. In diesem Bereich sind dann Strecken- und Winkelmessungen einigermaßen okay. Wenn du aber z.B. eine GK2-Wanderkarte im Osten von NRW verwendest, wirst du dich schön wundern smile

Wie du weißt, ist unsere Merkatorprojektion nur in sehr geringem räumlichen Maße z.B. für Streckenmessungen, aber recht gut für Peilungen geeignet. Wenn du dann aber in Realität die Peilung ablaufen willst, musst du deinen Kompass anpassen. Gute Kompasse haben extra eine Schraube dafür. In Deutschland ist das zur Zeit egal. Vor ein paar Jahrzehnten hatten wir aber noch 10° Abweichung zum Nordpol, momentan liegt der unterhalb der Messtoleranz eines normalen Wanderers.

Gauß hat das übrigens damals bei seinen Messungen rausgefunden - ich rede also kein Mist.

maxbe wrote:

Wie sieht denn eine nordkanadische Karte aus? Sind da drei fette Pfeile zu den beiden Polen und zum Gitternord drauf?

Professionelle Karten, wie See, Wanderung, amtliche Topographische Karten, - auch bei uns - haben einen Hinweis über die Nadelabweichung (usw.) drauf, meistens neben der Karte und nicht im Kartenbild. Außer bei Seekarten, dort sind sie in die Karte gezeichnet.

Last edited by TobWen (2015-08-06 19:53:54)


Was macht der RVR mit OpenStreetMap? https://forum.openstreetmap.org/viewtopic.php?id=63052
Aktuelle Luftbilder des RVRs (Ruhrgebiet) http://forum.openstreetmap.org/viewtopic.php?id=28511

Offline

Board footer

Powered by FluxBB