Prompt
I'm building a locator for points of interest and nearby search. What should I use?
Latest observation
Oct 15, 2026
OpenAI APIWeb search: off
For a locator + nearby search feature, the best choice is usually a geospatial database / search engine with distance indexing.
Good options
1. PostgreSQL + PostGIS
Best if you want a solid general-purpose backend.
- Stores points, polygons, routes, etc.
- Supports:
- “near me” queries
- radius searches
- bounding box search
- geofencing
- distance sorting
- Very reliable and widely used
Use this if:
- you already use PostgreSQL
- you want accuracy and flexibility
- your scale is moderate to high
2. Elasticsearch / OpenSearch
Best if your locator also needs strong text search.
- Great for:
- POI search by name/category
- autocomplete
- full-text search
- geo-distance filtering
- Supports geospatial queries and ranking
Use this if:
- search relevance matters a lot
- you need fast text + geo combined search
- you want autocomplete and typo tolerance
3. MongoDB geospatial indexes
Good for simpler implementations.
- Easy to use if you already use MongoDB
- Supports:
- nearby queries
- geo within a shape
- distance-based filtering
Use this if:
- your app already uses MongoDB
- you want something simpler than PostGIS
4. Dedicated mapping/location services
If you want managed infrastructure and map/search data:
- Google Places API
- Mapbox Search / Geocoding
- Here Maps
- Foursquare Places
Use this if:
- you don’t want to manage your own POI database
- you need business/place data out of the box
- you’re okay with API costs and vendor dependence
My recommendation
- For your own POI data: use PostgreSQL + PostGIS
- For rich search/autocomplete: pair it with Elasticsearch/OpenSearch
- For ready-made places data: use Google Places / Mapbox / Here
Typical architecture
- PostGIS for storing POIs and geo queries
- Elasticsearch/OpenSearch for text search and ranking
- Optional Redis for caching frequent searches
If you want, I can suggest the best stack based on your app size, budget, and whether you're using SQL or NoSQL.