Heatmap and Hexbin Density Map Generator
Turn points from an Excel, CSV or GeoJSON file into a heatmap, or aggregate them into H3 hexagons, metric hexagons or square cells.
Your file is processed in the browser and its contents are not sent to a server. Only map tiles (Esri, OpenStreetMap) and libraries (jsDelivr) are downloaded.
Columns
A lower value pushes medium-density areas into the darkest colour as well.
File format
The first row should hold the column names. Names such as lat, lon, lng, latitude, longitude, x, y are recognised automatically. Both a point and a comma work as the decimal separator. CSV files are read as UTF-8, with a fallback to Windows-1254 for Turkish exports.
Related Tools
What heatmaps and density grids are for
Put thousands of points on one map and the markers pile up until you can no longer tell where they concentrate. A heatmap smooths the points within a radius into a continuous density surface, so clusters in customer addresses, delivery stops, fault reports, service requests or field observations stand out at a glance.
A grid map splits the area into equal cells and counts the points in each cell or sums a value. Hexagon centres are equally far from all their neighbours and hexagons avoid the corner effects of squares, which is why they are a common choice for density maps. Heatmap colours sit on a relative scale, while every grid cell has a known count, sum and mean. For comparing areas, feeding a dashboard or reporting, the grid is the better fit.
How to use it
- Drop your point file on the box or choose it. To try the tool first, "Open sample data" loads synthetic delivery points generated around Ankara.
- The tool tries to recognise the latitude and longitude columns by name. If it picked the wrong ones, correct them in the lists. If the coordinates are in metres, choose the coordinate system.
- If rows should not all count the same (order quantity, amount, repair time and so on), pick a weight column. Without a weight, every point counts as 1.
- In "Heatmap" view, adjust the radius, blur and saturation threshold with the sliders.
- In "Grid" view, choose H3 hexagons, metric hexagons or squares and show the point count, sum of weight, mean of weight or points per km² in each cell.
- Download the map as PNG and the cells as GeoJSON or CSV. GeoJSON opens in GIS software and web maps, CSV in any spreadsheet program.
Weight, sum and mean
A count tells you how many records fall in a cell. A sum measures what those records carry: a few large orders in one neighbourhood can matter more than many small ones. A mean shows the typical value of the records in a cell, for example the average repair time per fault. In cells with few points, a single outlier can move the mean a lot, so look at the count as well. Rows with a non-numeric weight are counted but left out of sums and means. Negative weights are not used in the heatmap.
Classification methods
- Natural breaks (Jenks): Minimises the differences within classes and maximises those between classes. It brings out natural groups in the data and is a good starting point for most density maps.
- Quantile: Each class receives roughly the same number of cells. The map looks balanced, but values that are very close can end up in different colours.
- Equal interval: Splits the range between the smallest and largest value into slices of equal width. It is the easiest to read; if a few cells are very high, most cells fall into the first class.
The same data can look quite different under the three methods, so state the method on any map you share.
Data and method
The file is read in the browser and its contents are not sent to any server. The heatmap is drawn in the browser. Points are merged into screen cells half the radius in size, and colours are scaled to the densest cell in the current view multiplied by the saturation threshold. The scale is recalculated at every zoom level, so heatmap colours cannot be converted back into counts.
H3 cells are computed with h3-js 4.4.0 (Apache-2.0 licence), the JavaScript library of the H3 system developed by Uber. Metric hexagons and squares are built in a spherical Lambert azimuthal equal-area projection centred on your data. Because the projection preserves area, every cell covers the same ground area across the whole dataset; H3 cell areas vary slightly with location and are computed for each cell. Natural breaks use the Fisher-Jenks method; with more than 1,000 cells they are computed on a 1,000-value sample taken at even steps from the sorted values.
CSV files are parsed with PapaParse 5.4.1 (MIT) and Excel files with SheetJS xlsx 0.18.5 (Apache-2.0). Coordinates in metres are converted to WGS84 with proj4js 2.9.0 (MIT); for ED50 the tool uses EPSG:1784 (ED50 to WGS 84 (30)), the transformation defined for Turkey. Basemaps belong to Esri and OpenStreetMap contributors and icons come from Lucide (ISC). Only map tiles and these libraries are downloaded. If you have accepted analytics cookies, only event names such as "analysis completed" are counted anonymously to measure how often the tool is used. Open-source libraries used and their licences: Data Sources.
Accuracy limits
- The map is only as accurate as the input coordinates. Coordinates geocoded automatically from addresses may snap to neighbourhood or street centres and create artificial clusters.
- Cell size and heatmap radius shape the result directly. The same data can look scattered in small cells and concentrated in large ones. This is a known effect of choosing areal units, and trying several sizes makes the interpretation more robust.
- Point counts also reflect population or business density. Many records in a crowded area do not mean a high rate. If you need a rate, divide the count by a suitable denominator such as population or number of subscribers.
For organisations
Rodosto builds dashboards that connect density maps to regularly updated data sources and track them alongside other indicators. You can read more about the company at rodostoteknoloji.com or send a question through the contact page.
Frequently Asked Questions
Should I use a heatmap or a hexagon grid?
A heatmap is good for a quick picture of where points concentrate, but its colours are on a relative scale and cannot be read as numbers. In a hexagon or square grid every cell has a known count, sum or mean, which makes the grid the better choice for comparing areas, reporting and passing the result to another system.
My spreadsheet has coordinates in metres. Can I use it?
Yes. Pick one of the TUREF (ITRF96) 3-degree TM zones, a WGS84 UTM zone or an ED50 UTM zone from the coordinate system list. The coordinates are converted to WGS84 latitude and longitude in the browser. For ED50 the tool uses EPSG:1784, the transformation defined for Turkey, which is accurate to about 2 metres.
How do I choose the H3 resolution or the cell size?
The tool suggests a starting value based on the extent of your data. Smaller cells show more detail, but each cell holds fewer points and the map gets noisy. As a rule of thumb, a size at which most cells contain several points keeps random fluctuation down.
Is my file uploaded to a server?
No. The file is read and processed in your browser and its contents are not sent to any server. Only basemap tiles (Esri, OpenStreetMap) and open-source libraries (jsDelivr) are downloaded. The tile servers only see which part of the map is on screen.