Open source · Built for India · Runs from a folder

Find the nearest EV charger anywhere in India

Type where you are. PlugIn resolves it through Nominatim, scans the station dataset for the closest match, and hands you back a driving route drawn by OSRM — on a map that is just an HTML file. Geocoding and routing are the only two things that leave your machine.

API keys
0

Nothing to register or rotate.

External calls
2

Geocoding and routing. That is it.

Steps to a route
3

Location in, drawn route out.

Build steps
0

Static files. Open and run.

BengaluruDelhi NCRMumbaiChennaiHyderabadPuneAhmedabadKolkataJaipurKochiSuratLucknow

How it works

Three steps. No account, no dashboard, no tour.

The whole tool is a pipeline you can read in one sitting. Each step does one thing and returns something you could print.

  1. Enter a location

    A city, a neighbourhood, a landmark, or raw coordinates. geopy sends the string to Nominatim and gets back a latitude and longitude you can trust enough to route from.

    geopy → Nominatim

  2. Find the nearest station

    Every charging station in the dataset is measured against your point using great-circle distance. The closest match wins, along with the number of stations checked.

    Dataset scan · local

  3. Get the driving route

    OSRM turns two points into a real road line. Folium drops that line, the stations and the markers onto a Leaflet map and writes it out as plain HTML you can open, host, or email.

    OSRM → Folium

Live map

This is the real output, not a mockup.

The frame below is the Folium map the script generates — same file you get on disk. Pan it, zoom it, follow the route line.

  • Your geocoded location
  • Nearest charging station
  • OSRM driving route

What is inside

Small surface area, sharp edges.

Geocoding that takes plain words

“Koramangala, Bengaluru” or 12.9352, 77.6245 — both work. Nominatim handles the fuzzy human input; lat/lon skips the lookup entirely when you already know where you are.

geopy · Nominatim

CSV-first data

Stations live in a CSV. Add rows, trim rows, swap in your own file — the schema is the only contract.

Real road geometry

Not a straight line between two pins. OSRM returns the driving path over OpenStreetMap road data.

No API keys

No dashboard, no quota, no secret in a .env you have to remember. The public Nominatim and OSRM endpoints do the work.

Works offline

Distances, the dataset scan and map rendering all happen locally. Only geocoding and routing touch the network.

One file out

Folium writes standalone HTML. Open it from your desktop, drop it on any host, or paste it into a chat.

Attribution done properly

OpenStreetMap contributors carry the map, Nominatim carries the geocode, OSRM carries the route. The page and the generated map both say so, because the licence asks you to.

ODbL · attribution kept in output

Coverage

A national grid, drawn as one schematic.

The clusters the sample dataset reaches for. Point-to-point arcs stand in for the driving routes OSRM returns between them.

Schematic view — node positions show city geography, not station counts.

Delhi Jaipur Ahmedabad Surat Mumbai Pune Hyderabad Bengaluru Chennai Kochi Lucknow Kolkata
Schematic · OpenStreetMap geometry simplified for the web

Quickstart

Two commands from cold clone to a drawn route.

Python, a couple of packages, one script. If you can run a script from a terminal, you can run PlugIn.

bash

pipeline.py
from geopy.geocoders import Nominatim
from geopy.distance import distance
import folium

# 1. words in, coordinates out
geolocator = Nominatim(user_agent="plugin")
here = geolocator.geocode("Koramangala, Bengaluru")

# 2. nearest station in the dataset
station = nearest(here.point, stations)   # great-circle

# 3. route, then draw it
route = osrm_route(here.point, station.point)
folium.Map(location=here.point).save("map.html")

Stack

Six moving parts. Every one of them open.

  • Pythonthe whole pipeline
  • Foliummap rendering
  • Leafletwhat Folium emits
  • geopygeocoding client
  • Nominatimplace lookup
  • OSRMdriving routes
  • OpenStreetMapthe map itself

Next time the battery light comes on, be closer.