RFC 7946 · map-ready · no sign-up

Address in.
GeoJSON point out.

pointkit geocodes a plain address and hands back a GeoJSON Point object with correct [longitude, latitude] order per RFC 7946 — ready for Mapbox GL, Leaflet, Turf.js, or any API that speaks GeoJSON.

GeoJSON
{{ heroResultText }}
A bare Point geometry. Wrap it in { "type": "Feature", "geometry": ..., "properties": {} } if your library expects a Feature.
{{ heroWarningText }}

What your map actually wants

GeoJSON is the format the frontend mapping world standardized on — Mapbox GL, Leaflet, Turf.js, and most geospatial APIs read and write it natively. A point is {"type":"Point","coordinates":[longitude,latitude]}: longitude first, per RFC 7946.

That order is the opposite of how people say coordinates out loud, and the opposite of MySQL's default SRID 4326 — two easy ways to end up with a pin on the wrong continent and no error to explain why. pointkit geocodes the address directly into the correct order, so there's no manual reordering step to get wrong.

Worked example: an address as a GeoJSON Feature

1600 Amphitheatre Parkway, Mountain View, CA is at latitude 37.4224, longitude -122.0842. RFC 7946 puts longitude first: [-122.0842, 37.4224].

The Feature

{
  "type": "Feature",
  "geometry": { "type": "Point", "coordinates": [-122.0842, 37.4224] },
  "properties": { "name": "Googleplex" }
}

Leaflet

Leaflet reads GeoJSON longitude first, but its own marker and map calls take latitude first. Both of these put a pin in the same place:

L.geoJSON(feature).addTo(map);
L.marker([37.4224, -122.0842]).addTo(map);

PostGIS

SELECT ST_GeomFromGeoJSON('{"type":"Point","coordinates":[-122.0842,37.4224]}');

Axis order by database

TargetOrderExample (37.4224, -122.0842)
MySQL 8.0+, SRID 4326lat, lngST_GeomFromText('POINT(37.4224 -122.0842)', 4326)
MariaDB, MySQL 5.7lng, latST_GeomFromText('POINT(-122.0842 37.4224)', 4326)
Postgres / PostGISlng, latST_GeomFromText('POINT(-122.0842 37.4224)', 4326)
WKTlng, latPOINT(-122.0842 37.4224)
GeoJSONlng, lat{"type":"Point","coordinates":[-122.0842,37.4224]}
Leaflet, Google Mapslat, lngL.marker([37.4224, -122.0842])

GeoJSON FAQ

Does this output a Point geometry or a full Feature?

A bare Point geometry: {"type":"Point","coordinates":[longitude,latitude]}. If your map library or API expects a full Feature or FeatureCollection, wrap it yourself — { "type": "Feature", "geometry": <this>, "properties": {} } is a one-line wrap once you have the coordinates.

Is GeoJSON longitude-first or latitude-first?

Longitude first: [longitude, latitude], per RFC 7946. This is the reverse of how coordinates are usually spoken out loud, and the reverse of MySQL/MariaDB's default SRID 4326 order.

Will this work directly with Mapbox GL, Leaflet, or Turf.js?

Yes, as GeoJSON — Mapbox GL sources, Leaflet’s L.geoJSON and Turf.js all take the Point object as-is. The one trap is Leaflet’s own non-GeoJSON API: L.marker and L.latLng take [latitude, longitude], so pass the object through L.geoJSON rather than handing them the coordinates array.

Can I convert a whole file of addresses to GeoJSON at once?

Yes — export the addresses as a CSV and use pointkit's batch converter, which appends a GeoJSON column to the file.