Open POI Service

Overview

The Open Point of Interest (POI) service provides a RESTful API to find points of interest near a location. Such points of interest can be restaurants, stores, sights, parks, or other geographical features. You can query the API using latitude and longitude World Geodetic System 1984 (WGS84) coordinates and a radius parameter in meters. The result contains the locations and descriptions of points of interest within the radius. The API returns data in GeoJSON format which you can easily include in custom applications.


API Reference


Service Usage

Call the /search endpoint with WGS84 coordinates as the long and lat parameters. Set the radius parameter to define the search radius in meters around the location.

The underlying dataset consists of the GeoNames geographical database. It contains cities, lakes, parks, public buildings, and more. The GeoNames geographical database is licensed under CC BY 3.0.


Introduction

To use this tutorial, you must have a valid Bearer access token.

For more information about how to get an access token, see the /token endpoint of the OAuth2 service's API Reference.

All tutorials are designed in a way that you can use them at the same time with the cURL REST client. You can also use the API Console to try out the API.


Request points of interest

You can query the POI service with any location. In this tutorial, you learn how to get points of interest at the center of Berlin.

The coordinates for the center of Berlin in WGS84 format are 52.518611, 13.408333. This means you set the long parameter to 13.408333 and the lat parameter to 52.518611. Set radius=200 to get locations within a 200m radius of this point.

You can quickly visualize the response using any GeoJSON renderer. For example, http://geojson.io or http://geojsonlint.com.
  /search?long=13.408333&lat=52.518611&radius=200
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.4081,
          52.5186
        ]
      },
      "properties": {
        "distance": 26.02,
        "name": "Rotes Rathaus",
        "asciiName": "Rotes Rathaus",
        "featureDescription": "administrative facility",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.4083,
          52.5183
        ]
      },
      "properties": {
        "distance": 57.01,
        "name": "Rathaus Berlin",
        "asciiName": "Rathaus Berlin",
        "featureDescription": "administrative facility",
        "countryCode": "DE"
      }
    }
  ]
}

Adjusting the radius to 500m yields a larger result set.

  /search?long=13.408333&lat=52.518611&radius=500
{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.4081,
          52.5186
        ]
      },
      "properties": {
        "distance": 26.02,
        "name": "Rotes Rathaus",
        "asciiName": "Rotes Rathaus",
        "featureDescription": "administrative facility",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.4083,
          52.5183
        ]
      },
      "properties": {
        "distance": 57.01,
        "name": "Rathaus Berlin",
        "asciiName": "Rathaus Berlin",
        "featureDescription": "administrative facility",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.40745,
          52.51748
        ]
      },
      "properties": {
        "distance": 229.06,
        "name": "Nikolaiviertel",
        "asciiName": "Nikolaiviertel",
        "featureDescription": "section of populated place",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.40718,
          52.51742
        ]
      },
      "properties": {
        "distance": 252.87,
        "name": "Nikolai Residence Hotel",
        "asciiName": "Nikolai Residence Hotel",
        "featureDescription": "hotel",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.4074,
          52.5168
        ]
      },
      "properties": {
        "distance": 347.2,
        "name": "Nikolaikirche",
        "asciiName": "Nikolaikirche",
        "featureDescription": "church",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.40941,
          52.52082
        ]
      },
      "properties": {
        "distance": 421.53,
        "name": "Berliner Fernsehturm",
        "asciiName": "Berliner Fernsehturm",
        "featureDescription": "tower",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.405,
          52.52
        ]
      },
      "properties": {
        "distance": 449.7,
        "name": "Winters Hotel Berlin Mitte The Wall",
        "asciiName": "Winters Hotel Berlin Mitte The Wall",
        "featureDescription": "hotel",
        "countryCode": "DE"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          13.40489,
          52.52003
        ]
      },
      "properties": {
        "distance": 462.91,
        "name": "Mitte",
        "asciiName": "Mitte",
        "featureDescription": "section of populated place",
        "countryCode": "DE"
      }
    }
  ]
}
You can visualize the GeoJSON object on a map to see the locations of the points of interest. In our example, the points of interest are highlighted by blue markers and the reference point is shown with a blue square. a visualization of points of interest in Berlin


  • Send feedback

    If you find any information that is unclear or incorrect, please let us know so that we can improve the Dev Portal content.

  • Get Help

    Use our private help channel. Receive updates over email and contact our specialists directly.

  • hybris Experts

    If you need more information about this topic, visit hybris Experts to post your own question and interact with our community and experts.