OpenLinkMap
OpenLinkMap is a slippy map-enabled web application released in January 2010. The application is an extension of the default map, providing additional data associated with a location which is not visible on a rendered map. Initially the intent was to provide a linking layer between the map and Wikipedia; however, additional features have been exposed as part of OpenLinkMap, including the presence of internet access, smoking permissibility, related images, opening hours for venues such as restaurants or near objects like the next railway stations.
Contents |
Features
- open popups with additional information by clicking on markers
- worldwide data, daily updated
- markers are clustered for better clarity
- related Wikipedia article, translated into user's language
- related image, selected by tag or taken from a linked Wikipedia article
- show near objects like the next bus stop or parking
- show if a POI is open or closed currently
- various information, e.g. smoking, opening hours, contact, website, cuisine, etc.
- hillshading
- the position of the map when opening the website is set by IP or by the browser geolocation API if possible
- search, based on Nominatim
- search only in the current map view
- display search results on the map
- Permalinks
- support of touchscreen devices
- available in different languages
- export HTML code: embed a small map with a popup into another website
- save different settings by URL-parameters (more information below)
Software being used
- osmfilter
- osmconvert
- osmupdate
- OpenLayers
- Osmosis
- Linux
- PostgreSQL
- PostGIS
- Apache, PHP, Javascript, CSS, ...
URL parameters
lang=<Language code according to ISO 639-1>
Selects a certain language for the user interface and sets which language to choose for internationalised name tags. If not set, the HTTP Accept-Language header is used.
id=<ID of an OSM object>
Combined with the type parameter, the details of the specified object can be accessed directly.
type=node|way|relation
Combined with the id parameter, the details of the specified object can be accessed directly.
q=<search>
With this parameter, a search is performed immediately when the page is loaded.
bounded=1|0
If 1, the search specified by the q parameter is to be run only within the visible part of the map. Only useful in combination with the lat, lon and zoom parameters.
lat=<Latitude coordinate>
Combined with lon and zoom, the initial map view can be specified.
lon=<Longitude coordinate>
Combined with lat and zoom, the initial map view can be specified.
zoom=<Zoomlevel>
Combined with lat and lon, the initial map view can be specified.
offset=<Difference between the local timezone and UTC in hours>
With this parameter, the local time zone of the user can be specified in order to display opening hours and the date of the last database update correctly.
API
Everyone is welcome to use the API for small projects. It is recommended to notify the administrator of the project when regular traffic is to be expected to avoid exceeding the server’s resources.
POIs within a certain area
http://openlinkmap.org/api/list.php
Parameters:
bbox: Bounding box, values separated by comma in the format left,bottom,right,top
Response:
CSV file: <lon>|<lat>|<osmid>|<type>
Example: http://www.openlinkmap.org/api/list.php?bbox=6.67336,51.203552,6.679132,51.206406
Details
http://openlinkmap.org/api/details.php
Parameters:
format: text (for formatted HTML), xml; Default: xml id: OSM ID of the requested object type: Type of the requested object: node/way/relation offset: Difference between the local time zone and UTC in hours. Default value: 0 lang: Preferred language as ISO 639-1 code. Default: HTTP Accept-Language header
Response:
XML or formatted HTML
Example: http://www.openlinkmap.org/api/details.php?id=80148145&type=way
Erweiterte Details
http://openlinkmap.org/api/extdetails.php
Parameter:
format: text (für vorformatiertes HTML), xml; Standardwert: xml id: OSM-ID des abzufragenden Objektes type: Objekttyp des abzufragenden Objektes, node/way/relation offset: Unterschied in Stunden der Zeitzone des Users zu UTC (benötigt für die korrekte Anzeige der Öffnungszeiten); Standardwert: 0 lang: Bevorzugte Sprache nach ISO 639-1, z.B. für die Auswahl des Namens oder des Wikipedialinks, aber auch für die Auswahl der Beschriftungen; Standardwert: priorisierte HTTP_ACCEPT_LANGUAGE
Antwort:
XML oder formatiertes HTML
Beispiel: http://www.openlinkmap.org/api/extdetails.php?id=80148145&type=way
Objekte in der Nähe
http://openlinkmap.org/api/nextobject.php
Parameter:
lat: lat-Koordinate des abzufragenden Standortes (zusammen mit lon erforderlich, wenn kein bestimmtes Objekt bekannt ist; sonst nicht notwendig) lon: lon-Koordinate des abzufragenden Standortes (zusammen mit lat erforderlich, wenn kein bestimmtes Objekt bekannt ist; sonst nicht notwendig) type: Objekttyp des abzufragenden Objektes, node/way/relation (zusammen mit id erforderlich, wenn keine Koordinate bekannt ist; sonst nicht notwendig) id: OSM-ID des abzufragenden Objektes (zusammen mit type erforderlich, wenn keine Koordinate bekannt ist; sonst nicht notwendig) format: text (für vorformatiertes HTML), xml; Standardwert: text
Antwort:
XML oder formatiertes HTML
Die Entfernung ist lediglich die Luftlinie!
Beispiel: http://www.openlinkmap.org/api/nextobject.php?id=80148145&type=way&format=xml
Last database update
http://openlinkmap.org/api/timestamp.php
Parameter:
lang: Preferred language as ISO 639-1, e.g. needed for selecting the strings in the correct language; standardvalue: lang from HTTP_ACCEPT_LANGUAGE with highest priority format: text (for simple plain text), xml; standardvalue: xml offset: Difference in hours between user's timezone and UTC (needed for calculating the difference between current timestamp and last update); standardvalue: 0
Antwort:
XML or plain text
With this request you can get the timestamp of the last database update and the age of the data.
Example: http://www.openlinkmap.org/api/timestamp.php?format=xml
Name
http://openlinkmap.org/api/name.php
Parameter:
lang: Bevorzugte Sprache nach ISO 639-1, z.B. für die Auswahl des Namens oder des Wikipedialinks, aber auch für die Auswahl der Beschriftungen; Standartwert: priorisierte HTTP_ACCEPT_LANGUAGE format: text (für einfachen Plaintext String), xml; Standardwert: text id: OSM-ID des abzufragenden Objektes type: Objekttyp des abzufragenden Objektes, node/way/relation
Antwort:
XML oder Text
Mit dieser Funktion kann man den Namen eines gegebenen OSM-Objektes (in einer beliebigen Sprache) abfragen.
Beispiel: http://www.openlinkmap.org/api/name.php?format=xml&id=18530948&type=way&format=xml
Benutzersprache
http://openlinkmap.org/api/userlang.php
Parameter:
keine
Antwort:
String, der die Sprache des Benutzers nach ISO 639-1 zurückgibt.
Gibt die Sprache zurück, die beim Nutzer die höchste Priorität hat. Grundlage dafür ist HTTP_ACCEPT_LANGUAGE des Benutzers.
IP-Lokalisierung
http://openlinkmap.org/api/ippos.php
Parameter:
format: text (für einfachen Plaintext String), xml; Standardwert: text
Gibt den per IP-Adresse ermittelten Standort des Benutzers zurück.
Tag-Übersetzungen
http://openlinkmap.org/api/langfile.php
Parameter:
lang: Sprache nach ISO 639-1, in welcher die Übersetzungen gewünscht sind
Antwort:
Javascript-Code
Gibt ein Javascript-Array mit den Übersetzungen für viele Tags zurück.
Beispiel: http://www.openlinkmap.org/api/langfile.php?lang=de
Übersetzungen
Um auf die Übersetzungen zuzugreifen, integriert man folgenden Code in seine eigene Anwendung:
<script type="text/javascript" src="http://www.openlinkmap.org/locales/<SPRACHE>.js"></script> <script type="text/javascript" src="http://www.openlinkmap.org/api/langfile.php?lang=<SPRACHE>"></script>
Karte in andere Webseiten einbinden
Es besteht die Möglichkeit, eine kleine Karte mit einem Marker und dem dazugehörigen Popup in eine andere Webseite einzubinden:
<iframe width="420" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openlinkmap.org/embed.php?id=<OSM-ID>&type=<node|way|relation>" style="border: 1px solid black"></iframe>
Tagging
Tags needed to be shown on map
A POI has to contain at leat one of the following tags to be shown on the map. You can find more information about each tag and valid values on their wikipages.
- wikipedia=*
- wikipedia:*=*
- contact:phone=*
- website=*
- url=*
- phone=*
- fax=*
- email=*
- addr:email=*
- image=*
- url:official=*
- contact:website=*
- addr:phone=*
- phone:mobile=*
- contact:mobile=*
- addr:fax=*
- contact:email=*
- contact:fax=*
- image:panorama=*
- opening_hours=*
Additional information
There are some more tags which are considered in the popups and the extended details. You can find more information about each tag and valid values on their wikipages.
- name=* und name:LANGUAGE=*
- addr=*
- fee=*
- toll=*
- ref=*
- capacity=*
- service_times=*
- ele=*
- operator=*
- image=*
- description=*
- stars=*
- cuisine=*
- biergarten=*
- beer_garden=*
- smoking=*
- brewery=*
- microbrewery=*
- internet_access=*
- population=*
- disused=*
- fuel=*
- iata=* und icao=*
- wheelchair=*, wheelchair:toilets=*, wheelchair:rooms=*, wheelchair:access=*, wheelchair:places=*
- car_wash=yes
- car_repair=yes
- shop=kiosk
- kiosk=yes
Valid values
There are some tags with more than one valid value format which can be interpreted correctly:
| Information | Keys | Valid values |
|---|---|---|
| Wikipedia article in specified language | http://de.wikipedia.org/wiki/Köln de:Köln | |
| Wikipedia article in specified language | http://de.wikipedia.org/wiki/Köln de:Köln Köln | |
| wikipedia article in english | Cologne | |
| Note: Only one tag is needed to link a wikipedia article correctly! If it is the same article, the link to an article in another language can be found out by the Wikipedia-API. | ||
| Mobile phone | +49-1234-56789 +49 1234 56789 | |
| Fax |
|
+49-1234-56789 +49 1234 56789 |
| Website |
|
www.... http://www... http://... https://www... https://... |
| Image |
|
complete URL of image or image page; due to legal problems only images from Wikimedia Commons are displayed |
Contributors
Occasionally contributors:
Available languages
- English
- German
- French
- Italian
- Russian
There is missing a language in this list? Help us to translate OpenLinkMap or this wikipage into another language!
Bugs / New Features / Ideas / TODOs
- more supported languages: mainly nl, pl, lb, ksh, es, pt
- Tag "parking:lane=*" bei der Anzeige des nächsten Parkplatzes berücksichtigen
- more map styles
- Adressrelationen auswerten
- Öffnungszeiten-Parsing verbessern: Datum, Monate, Ferien, Zeitzone des POIs verwenden, Anzeige, wenn ein POI in der nächsten Zeit x schließt oder öffnet
- routing
- komplette Geometrien anzeigen
- Linealfunktion
- Browserunterstützung verbessern
- Adressformate länderspezifisch
- new design
- Popupschatten
- abhängig von cuisine=* passende Flagge anzeigen
- bei Städten/Ländern Wetter, Währung, Flagge, Hymne oder lokale Zeit anzeigen
- Bearbeitungsfunktion ähnlich [wheelmap.org]
- besseres Parsing von mehreren, durch Semikolon getrennten Werten
- besseres Design, Effekte mit CSS3
- besserer Suport von mobilen Geräten
- Einbinden von ÖPNV-Informationen wie Abfahrtszeiten, etc.
- Name von Nächsten Objekten in Nutzersprache anzeigen, wenn möglich
- Je nach Nutzersprache passende Sprachkarte des Toolservers einbinden
- Editlink in Seitenleiste
- Während Laden des passenden Bildes eine Ladegrafik anzeigen
- Popups lassen sich teilweise nicht schließen
- Unterscheidung der Punkte per Farbe oder Popups zwischen verschiedenen Kategorien
- Kreis um eigenen Standort anzeigen
- Panoramafunktion
- "Expertenmodus": Auswahl nur Objekte mit wikipedia/image/website anzeigen
- Mittelpunktsberechnung an Mapnik anpassen
- Popups mit Namen oder Tooltips beim Hovern anzeigen
- Suchergebnislayer über POI-Layer
- Anzeige des POI-Typen (zum Beispiel als Icon im Popup)
- in Clustermarkern die Zahl der verborgenen Punkte anzeigen
- Permalink zu Suchfunktion
- länderspezifische Formate Updatedatum
- bei POIs ohne Wikipedia-Link soll anhand des Namens ein passender Artikel gefunden werden
- mehrere Werte von Tags unterstützen
- beim Laden der zusätzlichen Informationen soll in der Seitenleiste an den Anfang dieser Box gesprungen werden (sonst sind teilweise die Suchergebnisse davor und man muss erst herunterscrollen)
- warum werden die nächsten Objekte in manchen Browsern nicht geladen?
- bei POIs ohne Namen den Objekttyp als Namen anzeigen
- description:<lang>=* einbauen
- translation files also as JSON
- detect and show syntax errors in opening_hours=*
Contribute
Mitarbeiter sind jederzeit willkommen, sei es als Programmierer, Übersetzer oder Designer. Schreibe mir einfach eine kurze E-Mail, wenn du auf irgendeine Weise helfen willst.
Mapping: Die Nützlichkeit dieser Karte hängt von den erfassten Daten ab. Trage also mit deinem Wissen dazu bei, dass die Karte noch umfangreicher, aktueller und genauer wird!
Programming: Du hast eine neue Funktion programmiert oder einen Fehler im Programmcode behoben? Schicke mir gerne deinen Code und nach einer Prüfung werde ich ihn einbauen.
Translating: OLM soll möglichst vielen Nutzern in ihrer Sprache verfügbar sein. Übersetze die Anwendung und diese Wikiseite in eine andere Sprache!
Design: Das jetzige Design ist stark verbesserungswürdig. Hier sind also Leute gefragt, die die Seite etwas auffrischen oder auch die Unterstützung in verschiedenen Browsern verbessern, damit OLM überall gleich aussieht.
Ressources: OLM ist ein Hobbyprojekt, dementsprechend sind die benötigten Ressourcen wie Hardware, Domains, etc. sehr knapp. Wenn du also mit einem der genannten Dinge helfen kannst, bist du herzlich willkommen.
Bugreports, Browsertests, Featurevorschläge oder Kritik sind ebenfalls hilfreich und gewünscht. Einfach Kontakt zu mir aufnehmen, wie, das steht unter Kontakt.
Download
- download the latest version (very new, but may contain some bugs) [from the Git Repository]
- stable and older versions can be downloaded on the [downloads page]
Es wird empfohlen, keine Version unterhalb der Version 7.0 zu verwenden! Frühere Versionen setzen eine andere Datenbank voraus, deren Installation weder in den Paketen noch hier auf der Wikiseite dokumentiert ist.
In each version you will find a file called "CHANGELOG" in the .tar.gz file that contains a list of changes since the last version.
The history of changes can also be seen in the [Git-Repository].
Own developments
Jeder darf OLM als Grundlage für eigene Anwendungen benutzen, soweit dies mit den Lizenzbedingungen der [GNU General Public License Version 3] vereinbar ist. In Ausnahmefällen erlaube ich aber auch andere Nutzungsbedingungen!
Es wird empfohlen, keine Version unterhalb der Version 7.0 zu verwenden! Frühere Versionen setzen eine andere Datenbank voraus, deren Installation weder in den Paketen noch hier auf der Wikiseite dokumentiert ist.
Da meine Freizeit begrenzt ist und ich schon mit der Entwicklung von OLM mehr als genug beschäftigt bin, programmiere ich nicht auf Anfrage! Meine Unterstützung beschränkt sich lediglich auf das Beantworten von Fragen zur Installation oder dem Codeverständnis.
Updates
In der Regel wird die Datenbank jeden Tag um etwa 01:00 aktualisiert. Das angegebene Datum kann manchmal leicht vom Zeitstempel der Daten abweichen. Sollten Änderungen also nicht beim nächsten Update auftauchen, sollten sie auf jeden Fall beim nächsten Update erscheinen.
Contact
You can contact me by different :
- [Sending messages over the wiki]
- [OSM-Message]
- [E-Mail] ("Contact" in the sidebar)
Credits
- OpenLinkMap's hosting is kindly supported by [CSL Computer Service Langenbach GmbH]
- Map and overlays are displayed by using OpenLayers
- The icon is taken from the [Oxygen-Iconset], licensed under [LGPLv3]
- gulp21 and Mitja supported me sometimes
- Gulp21 helped creating CSS3-animations and the Wikipedia parsing code
- Some code parts are taken from the project poi-tools
- The search is provided by Nominatim
- Geolocation by IP is provided by GeoIP-database]
- [Stephan Knauss] created a modified version of Openlayers.Protocol.HTTP
- The routing is provided YOURS Navigation
- Peter Büttner improved the code
- Daniele Forsi created the italian translation
- NothisIm created the russian translation
- The domain is sponsored by [joker.com]
- Many thanks to Markus Weber, who added new features to his programs osmfilter, osmconvert und osmupdate and supported me in using them
- Last but not least a lot of other people who collaborated by reporting bugs or suggesting new features
- Osmosis is used to update the data.
Links
- Quellcode
- FOSSGIS/Server/Projects/OpenLinkMap
- FacilMap/API/POIs — OpenLinkMap Layer for OpenLayers