Skip to main content
Data visualization 6 min read

How we integrated HERE EV Charge Point and census data to map the distribution of EV charging stations

EV charge points in German districts

Last month, we released HERE360 story about How Germany's EV charging infrastructure has grown since green government, that included an interactive map and ranking that provide a comprehensive insight into the development of the EV charging infrastructure across the regions of Germany since 2020. The map shows the distribution of charging stations in the counties and cities, based on data from the HERE EV Charge Points API. In this blog post, I will discuss how we downloaded and prepared the data then share some insights into how it was built. 

diagram how we build ev

A diagram showing how we prepared the data then built the visualization into web mapping application.

Gathering the Data

In order to build this visualization, we need three types of data:

  1. The polygon geometry of the administrative region boundaries, in this scenario, the districts of Germany which total to 401 administrative Kreis or Landkreis. We downloaded this data from the Federal Statistical Office of Germany. 
  2. The total population for each administrative region. This population data is also available from the Federal Statistical Office of Germany
  3. The EV Charging Station location in Germany. We downloaded this data from HERE EV Charge Points API, using the following request sample below to the stations resource to retrieves a list of EV charging stations within the search geometry query parameter. 
Copied
        GET https://ev-v2.cc.api.here.com/ev/stations.json
?corridor=52.51666,13.38333;
52.13333,11.61666;53.56527,10.00138
-H 'Authorization: Bearer{YOUR_TOKEN}'
      
  

 And the response would return the list of EV charging stations and its property including the location.

Copied
        
{
  "hasMore": true,
  "count": 50,
  "evStations": {
    "evStation": [
      {
        "poolId": "276u33db845jn-aGVyZS1ldjplY29tb3ZlbWVudDo4OTU5MDU0ODI",
        "totalNumberOfConnectors": 2,
        "connectors": {
          "connector": [
            {
              "supplierName": "RWE eRoaming",
              "connectorType": {
                "name": "IEC 62196-2 type 2 (Mennekes)",
                "id": "31"
              },
              "chargeCapacity": "380-480VAC, 3-phase at max. 32 A",
              "maxPowerLevel": 22.08,
              "customerChargeLevel": "3",
              "customerConnectorName": "AC EV connector (Mennekes - type 2)",
              "fixedCable": false,
              "connectorDetails": {
                "privateAccess": false,
                "open24x7": true,
                "openingHours": {
                  "regularOpeningHours": [
                    {
                      "daymask": 127,
                      "period": [
                        {
                          "from": "00:00:00",
                          "to": "24:00:00"
                        }
                      ]
                    }
                  ],
                  "annualOpenings": [ ]
                },
                "pay": true,
                "manufacturer": "RWE"
              },
              "chargingPoint": {
                "chargeMode": "3",
                "voltsRange": "380-480V AC",
                "phases": 3,
                "ampsRange": "32A",
                "numberOfConnectors": 2
              }
            }
          ]
        },
        "evStationDetails": {
          "privateAccess": false,
          "restrictedAccess": true,
          "accessibilityType": "RESTRICTED",
          "paymentMethods": {
            "subscription": {
              "provider": "RWE eRoaming",
              "accept": true
            },
            "note": "Mobile Payment Option Available"
          },
          "notes": "Ladestation RWE Effizienz GmbH"
        },
        "address": {
          "city": "Berlin",
          "country": "DEU",
          "region": "Berlin",
          "street": "Luisenstraße",
          "streetNumber": "31",
          "postalCode": "10117"
        },
        "contacts": {
          "phone": [
            {
              "value": "+498002255793",
              "label": "PHONE"
            }
          ]
        },
        "distance": 421,
        "position": {
          "latitude": 52.5199013,
          "longitude": 13.3800898
        },
        "name": "RWE Effizienz GmbH",
        "id": "276u33db-b2c840878cfc409fa5a0aef858419037",
        "lastUpdateTimestamp": "2015-08-28T04:39:27.737Z",
        "timeZone":"Europe/Berlin"
      },
      {
      --- removed to shorten document
      }
    ]
  }
}

  

Preparing Data Using GIS

For working with the data, we started in ArcGIS Pro to visualize, edit, and export a subset of HERE EV Charge Point data to prepare it for later processing. Starting with the polygon geometry of the administrative boundaries in Germany to serve as our area of interest, we then joined the population data to each of the administrative region. We also calculated the total area in square kilometers for each administrative region. 

The next step in the process involved adding the EV charging stations data including its locations to see which stations fell within our administrative regions, and further, to determine the total number of stations per administrative region. The end result of this process is a GeoJSON layer, as shown below, that can be used in the web mapping application. 

Copied
        {
....
          "arcs" : [
            [
              -230,
              240,
              241,
              242,
              243,
              244
            ]
          ],
          "type" : "Polygon",
          "properties" : {
            "EV_Stations_2022" : 70,
            "EV_Stations_2021" : 57,
            "EV_Stations_2020" : 43,
            "OBJECTID" : 52,
            "District" : "Cloppenburg, Landkreis",
            "Population" : 173980,
            "Region" : "EU",
            "Region_name" : "Niedersachsen",
            "Area_SQ_KM" : 1423,
          },
          "id" : 52
        },
...
}
  

Visualize using HERE Maps API for Javascript

The GeoJSON layer is then converted to TopoJSON for its efficiency in size using Mapshaper.org, it contains the polygon geometry for each administrative region boundary with population data, total area in square kilometers and the total of EV charging station is added to the web mapping application using HERE Maps API for Javascript. Each administrative region polygon is drawn on the map using different color shading based on the number of EV charging stations per 100,000 people and 10 square kilometers, making the the beautiful choropleth maps shown below. 

Copied
        const normalizedByPopulation =
        (feature.properties.EV_Stations_2022 / feature.properties.Population) * 100000

const normalizedByArea =
        (feature.properties.EV_Stations_2022 / feature.properties.Area_SQ_KM) * 10

const increase2022 = 
        ((feature.properties.EV_Stations_2022 / feature.properties.EV_Stations_2021) - 1) * 100

const increase2021 = 
        ((feature.properties.EV_Stations_2021 / feature.properties.EV_Stations_2020) - 1) * 100
  

The web mapping application also shows the ranking page showing the list of the administrative regions and analyzed the development of charging infrastructure in Germany since 2020. In this page, for each administrative region, you can see the following information:

  • District name
  • Population 
  • Area in square kilometers
  • The count of EV charging stations in 2022
  • The count of EV charging stations in 2021
  • The count of EV charging stations in 2020
  • EV charging station in 2022 per 100,000 people
  • EV charging station in 2022 per 10 square kilometers
  • 2022 % count change from 2021
  • 2021 % count change from 2020 

Summary

The HERE Charge Point API provided the most important piece of information about the EV charging stations for this visualization. ArcGIS Pro was used to do GIS tasks such as joining population data, doing spatial join of the EV charging stations location per administrative region, and producing the file format that can be used in the web. The HERE Maps API for Javascript was used for the final visualization to produce the web mapping application. 

 

 

Erwin Soekianto

Erwin Soekianto

Developer Evangelist

Have your say

Sign up for our newsletter

Why sign up:

  • Latest offers and discounts
  • Tailored content delivered weekly
  • Exclusive events
  • One click to unsubscribe