OpenLinkMap

From OpenStreetMap Wiki
Jump to navigation Jump to search
Showing detailed information of a city
Searching in your surrounding

Website has been dead since January 2023.

OpenLinkMap is a web application visualizing additional information on a OpenStreetMap background map.

The web application was released in January 2010. The project was initiated with the aim of visualizing mapped (Wikipedia-)links on a map (that's why the application is called OpenLinkMap).

At the beginning the project only visualized (Wikipedia-)links, but in a steady process of developing, the application was extended by many new features. Now OpenLinkMap offers a lot of useful features with the aim to show as much information from OpenStreetMap as useful as possible in a single application and to present the user all available information at a glance.

The application presents a lot of details of POIs, such as linked images, an abstract from Wikipedia, next bus stops or parkings, details about smoking, cuisine, internet access and much more. It also showed links to websites with departure information for public transport stops.

The aim of this project is to provide an extended map, visualizing data which is not visible in a standard tile map, and to add information from other web sources or link to them (wikipedia, departure times).

Alexander Matheisen, the founder of the project, announced shutdown of his service on 11. January 2016. The service has later been continued by Jens Kammann.

Features

  • POI layer: 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
    • display a POI's name in the user's preferred language
    • indicator showing whether a POI is currently open or closed
    • popups showing various additional information, e.g. smoking, opening hours, contact, website, cuisine, etc. (list of considered tags)
    • country specific addressformats
    • support for semicolon-separated values
  • public-transport layer
    • visualization of public transport stops and additional information such as accessibility
    • linked operator websites with realtime departure information (up-to-date list of supported operators)
  • built-in support for Osmosis TagTransform rulefiles
  • hillshading
  • the startposition of the map is automatically set by IP the browser geolocation API if possible
  • search, based on Nominatim
    • local bounded search
    • display search results on the map
  • permalinks
  • support of touchscreen devices
  • available in different languages: translation of names, wikipedia information and the user interface
  • export HTML code to embed a small map with a popup into another website
  • manipulate different options with URL parameters

Software being used

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.

All API requests support JSONP. To use this format, you have to set the url parameters

format=json
callback=<Callback-function>

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
format: csv, json; Default: csv

Response:

CSV file: <lon>|<lat>|<osmid>|<type>

Example: http://www.openlinkmap.org/api/list.php?bbox=6.67336,51.203552,6.679132,51.206406

Public transports within a certain area

http://openlinkmap.org/api/ptlist.php

Parameters:

bbox: Bounding box, values separated by comma in the format left,bottom,right,top
format: csv, json; Default: csv

Response:

CSV file: <lon>|<lat>|<osmid>|<type>

Example: http://www.openlinkmap.org/api/ptlist.php?bbox=6.67336,51.203552,6.679132,51.206406

Details

http://openlinkmap.org/api/details.php

Parameters:

format: text (formatted HTML), xml, json; 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: 0
lang:   Preferred language as ISO 639-1 code. Default: HTTP Accept-Language header

Response:

XML, JSON or formatted HTML

Example: http://www.openlinkmap.org/api/details.php?id=18530948&type=way

Extended Details

http://openlinkmap.org/api/extdetails.php

Parameters:

format: text (formatted HTML), xml, json; 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: 0
lang:   Preferred language as ISO 639-1 code. Default: HTTP Accept-Language header

Response:

XML, JSON or formatted HTML

Example: http://www.openlinkmap.org/api/extdetails.php?id=18530948&type=way

Near objects

http://openlinkmap.org/api/nextobject.php

Parameters:

lat:    latitude of requested position (needed in connection with lon, if no OSM-object is requested; otherwise not needed)
lon:    longitude of requested position (needed in connection with lat, if no OSM-object is requested; otherwise not needed)
type:   Type of the requested object: node/way/relation (needed in connection with id, if no position is requested; otherwise not needed)
id:     OSM ID of the requested object (needed in connection with type, if no position is requested; otherwise not needed)
format: text (formatted HTML), xml, json; Default: text

Response:

XML, JSON or formatted HTML

The returned distance is only air-line distance!

Example: http://www.openlinkmap.org/api/nextobject.php?id=80148145&type=way&format=xml

Last database update

http://openlinkmap.org/api/timestamp.php

Parameters:

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 (simple plain text), xml, json; Default: xml
offset: Difference in hours between user's timezone and UTC (needed for calculating the difference between current timestamp and last update); Default: 0

Response:

XML, JSON 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

Parameters:

lang:   Preferred language as ISO 639-1, e.g. needed for selecting the name in the correct language; standardvalue: lang from HTTP_ACCEPT_LANGUAGE with highest priority
format: text (simple plain text), xml, json; Default: text
id:     OSM ID of the requested object
type:   Type of the requested object: node/way/relation

Response:

XML, JSON or plain text

With this request you can get the name of an object (in an specified language).

Example: http://www.openlinkmap.org/api/name.php?format=xml&id=18530948&type=way&format=xml

Userlanguage

http://openlinkmap.org/api/userlang.php

Parameters:

none

Response:

Preferred language as ISO 639-1.

Returns the language which has the highest priority in the user settings, detected by HTTP Accept-Language header.

IP-Location

http://openlinkmap.org/api/ippos.php

Parameters:

 format: text (simple plain text), xml, json; Default: text

Returns the position of the user, detected by IP.

Tag-Translation

http://openlinkmap.org/api/tagtranslation.php

Parameters:

 lang: Preferred language as ISO 639-1
 tag: One or more tags to translate, split with ",". Key and value are connected with "=" (like in the example below).
 format: text (simple plain text), xml, json; Default: text

Returns the translation of one or more tags.

Example: http://www.openlinkmap.org/api/tagtranslation.php?lang=en&tag=amenity.fuel,shop.bakery

Public transport details

http://openlinkmap.org/api/ptdetails.php

Parameters:

format: text (formatted HTML), xml, json; 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: 0
lang:   Preferred language as ISO 639-1 code. Default: HTTP Accept-Language header

Response:

XML, JSON or formatted HTML

Example: http://www.openlinkmap.org/api/ptdetails.php?id=80725474&type=node

Embed map in another website

You can embed a small map with a marker and a popup in your website:

<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>

There is also a mode where you can embed a small slippymap with all points shown in OpenLinkMap:

<iframe width="420" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://www.openlinkmap.org/small.php?lat=<LAT>&lon=<LON>&zoom=<ZOOM>" style="border: 1px solid black"></iframe>

Tagging

POI-Layer

Necessary tags

A POI has to contain at least one of the following tags to be shown on this layer. You can find more information about each tag and valid values on their wikipages.

Additional tags

There are some more tags which are considered in the popups. You can find more information about each tag and valid values on their wikipages.

Public-transport-Layer

Necessary tags

A POI has to contain at least one of the following tags to be shown on this layer. You can find more information about each tag and valid values on their wikipages.

Additionally, the object must have a name=* tag.

Additional tags

There are some more tags which are considered in the popups. You can find more information about each tag and valid values on their wikipages.

Depending on the rulefile for linked departure times, there are some more tags considered, like ref=*, uic_ref=*, ibnr_ref=*, etc.

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

  • rurseekatze (Project founder, does not run the website any more)

Available languages

  • English
  • French
  • German
  • Italian
  • Japanese
  • Nederlands
  • Russian

There is a language missing in this list? Help us to translate OpenLinkMap or this wikipage into another language! You can do this either on Transifex, or you translate the Gettext-files from the Github-Repository into your language and send these file to me. Contact me for more information!

Bugs / New Features / Ideas / TODOs

  • add more UI languages
  • add more background map styles
  • improve parsing of opening hours: dates, months, holidays; show whether a POI opens or closes in the next x minutes
  • add routing feature
  • show complete ways and areas
  • ruler feature
  • improve browser support
  • popup-shadows
  • show small flag indicating cuisine=*
  • include weather and local time of citys/countrys
  • add edit-mode like wheelmap.org
  • better design, effects with CSS3
  • better support of mobile devices
  • show names of near objects in userlanguage if possible
  • include translated background maps, dependend on user's preferred language
  • add edit link to sidebar
  • show a loading indicator while loading an image
  • Bugfix: sometimes popups cannot be closed
  • differentiate between different POI-categories by color or icons
  • show circle around user's position
  • panorama feature
  • filter POIs by wikipedia/image/website-tags
  • adjust centroids to Mapnik
  • show tooltips with name of a POI by hovering markers
  • show search results layer above POI-layer
  • show type of POI (e.g. an icon in the popups)
  • show number of clustered points in clustermarkers
  • add permalinks to save search request
  • country- and language-dependent format of update timestamp
  • jump to the top of the extended details (otherwise search results are shown before and you have to scroll down)
  • Bugfix: some browsers do not load near objects
  • show description tagged with description:<lang>=*
  • detect and show syntax errors in opening_hours=*
  • add tag for (free) wifi availability
  • daily data update - process starts at 01:00 and finishes about 05:00
  • support addr:place=* for viewing addresses
  • bug: use wheelchair:toilets instead toilets:wheelchair (correct value)

Contribute

Contributors are welcome to help as programmers, translators or designers. Please contact me if you want to contribute.

Mapping: The usability of this map depends on the data. Please use your knowledge to keep the mapped information up-to-date and insert more details!

Programming: You created an interesting new feature or fixed a bug in the existing code? Please send me your code and I will add it.

Translating: OpenLinkMap wants to be available for many users and in many languages. Please translate the application or this wiki page in other languages!

Design: The current design is not very good. Please help to improve it or improve the support in many browsers.

Ressources: OpenLinkMap is currently just a project run in my free time, so needed resources like hardware or domains are limited. You are welcome to support me with these resources!

Bug reports, browsertests and feature suggestions are desired. Please contact me.


Download

The commit history can be seen in the Git-Repository [ dead link (web archive) ]. The Changelog [ dead link (web archive) ] lists up all changes between the published versions.

Own developments

Everybody is allowed to use OpenLinkMap as a base for own development, if this is compatible to the terms and conditions of the GNU General Public License Version 3. In exceptional case I also allow the usage under modified conditions!

My free time is limited and the development of OpenLinkMap already costs a lot of time, which means I do not develop applications by request! I can only help by answering questions related to my code or the setup.

Contact

(to be added)

Credits

Links