simplemaplab

Pin Drop Map

Drop pins anywhere on the world map — by click, search, or pasted coordinates. Edit per-pin labels and notes, organise with five colour categories, optionally connect pins into a path with cumulative distance, share the whole map via a URL link, and export to CSV, GeoJSON, or KML. Up to 100 pins. Free, no sign-up.

Pin colorOr click anywhere on the map
Loading map…
Pins (0 of 100)

What we built differently — share without an account

Most pin-map tools online either gate behind a sign-up (Google My Maps, BatchGeo, MapMe) or work as throwaway scratch pads with no way to come back to your work (pinmap.com, mapdroppin.com). We split the difference: no account, but your work is shareable and bookmarkablevia a URL hash that encodes every pin’s lat/lng, color, label, and notes.

The encoding is base64 of a compact JSON array, appended to the page URL as #p=…. Open the URL on any device, anywhere — same pins. No server, no database, no privacy policy concerns. The URL is the data.

That makes the tool useful for the standard "I want to remember a list of places" use case — but also for collaboration: paste the URL into a chat, an email, or a document, and the recipient sees your pin map. They can edit and re-share with their own URL. No app to install, no friction.

How to use the pin drop map

Five steps. Most users complete a 10-pin map in under two minutes.

  1. Drop your first pin. Click anywhere on the map, type a city/address into the search box, or paste a "lat, lng" coordinate pair into the coordinates field. The pin appears on the map with the chosen pin color and an auto-numbered label.
  2. Edit the pin. Each pin in the list below the map shows the label as an editable text field, the lat/lng, the colour selector, and a notes toggle (✎). Click the address (⌖) icon to fill in the human-readable address from OpenStreetMap. The map popup updates with your edits live.
  3. Reorder, recolour, remove. Use ↑/↓ to move pins up or down — useful for laying out a tour or route. Switch each pin’s colour from the per-pin dropdown (5 colours: red, blue, green, orange, purple) to categorise pins. Remove a pin with × or clear all with the Clear button.
  4. Connect pins (optional). When you have 2+ pins, the "Connect pins" toggle draws a line through them in order. The cumulative path distance shows above (km and miles). Useful for planning a multi-stop trip, a survey transect, or a delivery route.
  5. Share or export. Tap "Share URL" to copy a link with your pins encoded into the URL hash — anyone opening the link sees the same pins (no sign-up, no server). Or export to CSV (spreadsheet-ready), GeoJSON (drops into QGIS, Mapbox, Leaflet), or KML (Google Earth, Google My Maps).

What people use this tool for

Seven recurring patterns we see in the analytics.

Trip and itinerary planning

Drop a pin for each place on your trip — hotels, museums, viewpoints, restaurants. Toggle "Connect pins" to see the order and total distance. Reorder via ↑/↓ to optimise the route. Save by tapping Share URL — the link encodes every pin into the URL hash so you can email, message, or bookmark it.

Real estate viewings and property tours

Drop a pin for each property you’re considering. Use colours: red for "must see", blue for "maybe", green for "already viewed". Add notes per pin (square footage, asking price, agent contact). Export to CSV for your spreadsheet or KML to share with your partner via Google Earth.

Field research and survey work

Mark sample sites, survey points, or sighting locations on the map as you go. Each pin can have notes (date, observation, weather). Export GeoJSON for ingestion into ArcGIS / QGIS, or KML for sharing with collaborators. Up to 100 pins per session — sufficient for most one-day field campaigns.

Delivery routes and last-mile planning

Plot delivery addresses on the map, reorder for optimal sequence, and read the cumulative path distance. The exported CSV plugs into route-optimisation software, fleet GPS systems, or Google Maps directions. Each pin can carry a customer note.

Geocaching and orienteering challenges

Mark control points, hidden caches, or hint locations. Use color categories to differentiate (red = found, blue = pending). Share via URL link with other participants — same map, same pins, no account required. Export GPX-equivalent via GeoJSON or KML for Garmin / smartphone import (KML works directly with Gaia GPS, AllTrails, and CalTopo).

Wedding venues, event sites, and group meetups

Drop pins for venue, parking, ceremony, reception, and after-party. Add notes (capacity, accessibility, contact). Send the URL to vendors and family — they see the same map you do. Or export KML and embed into an event website via Google My Maps.

Photo geotagging and memory map

After a trip, drop a pin where you took each notable photo. Add the photo title or short description as the label. Notes can hold the EXIF date or camera. Export GeoJSON to combine with photo metadata in a personal "year in places" project.

Four ways to drop a pin

MethodHowExample
Click on the mapTap any point — pin lands there with auto-incrementing idTap a coastline → pin at the click coordinate
SearchPhoton autocomplete on cities, addresses, landmarks worldwide"Eiffel Tower" → pin at 48.8584, 2.2945
Paste coordinates"lat, lng" decimal degrees, comma or space separated"40.7128, -74.006" → New York City
URL hashOpen a Share URL — pins decode from base64-encoded compact JSON#p=W1s0MC43LCAtNzQuMC4uLg…

Three export formats — and which to use

FormatSizeOpens inBest for
CSV~50 bytes per pinExcel, Google Sheets, any text editor, BatchGeoSpreadsheet analysis, sharing pin lists in tables, importing into mailing-list tools.
GeoJSON~150 bytes per pinQGIS, Mapbox, Leaflet, ArcGIS, geojson.io, our other toolsWeb mapping, GIS workflows, ingestion into custom maps and charts.
KML~250 bytes per pinGoogle Earth, Google My Maps, Gaia GPS, AllTrails, CalTopoDesktop / mobile mapping apps that don’t natively read GeoJSON.

How the tool actually works

1. Map and basemap

The map uses MapLibre GL JS with vector tiles from OpenFreeMap (Liberty style). No API key, no rate limit, no usage cap. The map supports pinch-zoom, two-finger pan, and click events. Pins are rendered as DOM elements with the standard "drop" pin shape (rounded teardrop) and a numbered badge inside.

2. Pin storage

Pins live in React state during the session. They never travel to a server (we are entirely client-side / serverless). When you tap Share URL, the tool serializes the pin list to compact JSON (5-tuple: lat, lng, color, label, notes), runs base64 encoding on the UTF-8 bytes, and appends the result as #p=... to the URL hash.

3. URL state restoration

When the page loads, we read the hash. If it starts with #p=, we decode the base64, parse the JSON, and reconstruct the pin list. Decoding failures are silently ignored (the user gets an empty map and can start fresh).

4. Distance calculation

Cumulative path distance uses the haversine formula on a spherical Earth (R = 6,371 km, IUGG mean). Each segment is computed independently and summed. Result is in kilometres (with miles shown alongside). For pin counts ≤100 the computation runs in microseconds.

5. Reverse geocoding (on demand)

The ⌖ (target) button on each pin row calls OpenStreetMap Nominatim once to fetch the nearest address. We do not auto-geocode — that would burn the public rate limit on large batches. Click it per-pin when you actually want the address.

6. Export generators

CSV is built by joining tab-escaped values. GeoJSON wraps the pin list in a FeatureCollection with Point geometries. KML uses OGC KML 2.2 with five inline styles (one per color) and Placemark elements. All three exports run client-side as Blob downloads — no upload, no server.

SimpleMapLab vs other pin drop tools

Honest comparison. Each tool wins different scenarios — this is a feature checklist, not a value judgement.

FeatureSimpleMapLabpinmap.comGoogle My MapsmapdroppinBatchGeo
Free, no sign-up✗ (account)Limited / paid
Drop pins by click
Drop pins by search / addressLimitedLimited
Drop pins by paste coordinatesAPI only
Per-pin notesLimitedLimited
Per-pin custom colors✓ (5)Limited✓ (many)Limited✓ (paid)
Reorder pins for routing✓ (↑/↓)Drag
Path connection + cumulative distanceLimitedPaid feature
Export CSVLimitedAPI only
Export GeoJSONLimitedAPI only
Export KMLLimitedAPI only
Shareable URL (no server)✓ (account-bound)
Mobile-first interfacePartialPartial

Related tools and resources

For finding what city / county / state / country each pin is in: What City Am I In?, What County Am I In?, What Country Am I In?. For full address from each pin\u2019s coordinates: Coordinates to Address. For a route\u2019s great-circle distance / bearing: Distance Between Two Places and Bearing & Compass Calculator. For plotting a list of ZIP codes: Map with ZIP Codes. For drawing on a map (lines, polygons, freehand): Map Drawer. For making a map with a custom legend: Map with Legend Maker.

Frequently asked questions

Three ways. (1) Click anywhere on the map — a pin appears at the click. (2) Type a city, address, or landmark into the search box and pick a result. (3) Paste "lat, lng" decimal-degree coordinates into the coordinates field and tap Drop pin. All three deposit a pin with auto-numbered id and the currently-selected color.
Yes. Each pin row in the list below the map shows the label as an editable text input — click the label, type a new one, click away, done. Below the label, a notes textarea (toggle with the ✎ icon) holds free-form notes per pin. Both edits update the map popup and the share URL live.
When you tap Share URL, the tool encodes the entire pin list (lat/lng, color, label, notes for each pin) as compact JSON, base64-encodes it, and appends it to the page URL as a hash fragment (#p=…). Anyone opening that URL on the same tool sees the same pins. No server is involved — the data lives in the URL itself. URLs can hold ~50 pins comfortably; for 100 pins the URL is around 4-6KB which still works in modern browsers but may be too long for some apps to copy reliably.
Up to 100 per session. The limit exists to keep the map render performance smooth and the share URL short enough to copy/paste reliably. For larger datasets, consider exporting to GeoJSON and using a dedicated GIS tool like QGIS.
When you toggle "Connect pins", the tool draws a polyline through all pins in their list order. The cumulative distance is computed using the haversine formula on a spherical Earth (radius 6,371 km) — same math as our Distance Between Two Places tool. Reorder pins with the ↑/↓ buttons to change the path.
Great-circle (shortest-path) distance summed across consecutive pins. It does NOT account for roads, terrain, or any travel mode — it is the as-the-crow-flies distance for each segment, added together. For driving distance, you would need a routing engine like OSRM or Mapbox Directions. For point-to-point line distance, the path metric is correct.
Currently the only import path is the URL hash (paste a previously-shared URL). CSV/GeoJSON/KML import is on the roadmap. Workaround: convert your data to "lat, lng" pairs and paste each one in (one at a time) using the coordinates field.
Once the page has loaded, the pin data and the math run entirely client-side. The map basemap requires a network connection to fetch tiles. For offline use, take a screenshot of the map after dropping pins; the pins themselves are local.
Coordinates are stored to 6 decimal places (~11cm precision). For map clicks, the precision matches what MapLibre returns, which is typically sub-metre accurate. For search-based pins, accuracy depends on the OpenStreetMap geocoder — usually within tens of metres for cities and addresses.
Currently only 5 preset colors (red, blue, green, orange, purple) are supported. Custom hex colors are on the roadmap. The 5 colors were chosen for high mutual contrast on most map basemaps and good colour-blind separability.
Pins overlap visually but remain separately editable in the list. Each click on the map drops a new pin even if the click is on top of an existing pin. To remove duplicates, use × on the unwanted pins.
It includes whatever you typed: lat/lng, color, label, notes. If your notes contain personal info, that travels in the URL. URLs are not transmitted to our server (we are entirely static / serverless), but anyone with the URL can read them. Treat the URL as you would treat the data inside it.
Tap the ↓ KML button after dropping at least one pin. The resulting file follows the OGC KML 2.2 standard and opens directly in Google Earth (drag-drop) and Google My Maps (Create New Map → Import). Each pin uses a colored placemark style matching its in-tool color.
Yes. The math is public-domain. OpenFreeMap basemap is free with no API key. OpenStreetMap data (used for the optional address lookup) is permissively licensed (ODbL). No watermark, no rate limit, no sign-up. The exported files are yours to use however you like.
Pin numbers come from the order of dropping (1, 2, 3…). The user-editable label can be anything — letters, names, addresses, codes. The number on the pin marker is fixed; the label below shows whatever you type. For pure-letter pins, set the labels to "A", "B", "C" and ignore the marker numbers.
Data sources & methodology

Map basemap: OpenFreeMap Liberty vector tiles (free, no API key). Geocoding: Photon autocomplete (search) + OpenStreetMap Nominatim reverse-geocoder (on-demand address lookup). Pin geometry: MapLibre GL JS native Marker elements with HTML rendering. Distance math: haversine formula on a spherical Earth (radius 6,371 km, IUGG mean). URL state encoding: compact JSON 5-tuples per pin (lat, lng, color, label, notes), base64-encoded UTF-8, appended as #p=… hash. Exports: KML follows OGC KML 2.2; GeoJSON follows RFC 7946; CSV uses double-quote escaping for label / notes / address. All data is permissively licensed; no API keys, no rate limits, no data leaves your browser beyond the optional Photon search query and Nominatim per-pin address lookup.

More SimpleMapLab tools

Map Drawer

Draw lines, polygons, freehand paths, arrows, and text on any map.

Map with Legend Maker

Annotate any map with markers, region fills, and a custom legend.

Coordinates to Address

Reverse-geocode lat/lng to a full address with elevation.

Distance Between Two Places

Great-circle distance between any two points on Earth.