Elite module 03
Map Search setup.
Interactive map search with Leaflet/OpenStreetMap by default or Google Maps optional. Cluster, radius, polygon search. Scales to 5,000+ listings smoothly.
What Map Search does
Map Search adds an interactive map to your property archive. Every listing with coordinates appears as a pin. Buyers can zoom, cluster, draw a radius, or draw a polygon to filter by area. Filters update live as the map moves.
Tested smoothly with 5,000+ listings on a single map. No Google Maps API key needed — OpenStreetMap is the default and works for free.
Activate the module
Make sure your Elite licence is valid. Then:
- Go to Elite → Modules in WordPress admin
- Find Map Search in the module list
- Click Activate
A new menu appears: Elite → Map Search. This is where you choose your provider, manage saved polygons, and check geocoding status.
Choose a map provider
Map Search works with two providers. Pick one and you can switch later without losing any pin or saved polygon data.
| Feature | OpenStreetMap (default) | Google Maps |
|---|---|---|
| API key required | No | Yes |
| Per-load billing | No | Yes — you pay Google directly |
| Typical monthly cost | $0 | $5–50 depending on traffic |
| Map style | Clean, technical look | Familiar Google look |
| Geocoding accuracy in UAE | Good for most communities | Excellent, especially for new developments |
| Cluster, radius, polygon search | Supported | Supported |
| Street View | No | Yes |
OpenStreetMap (default)
Free. No API key. No per-load billing. Tile data comes from tile.openstreetmap.org. This is the best default for most UAE agencies — Dubai and Abu Dhabi communities are well-mapped on OSM.
Google Maps
If you prefer Google’s look or you need Street View, paste a Google Maps API key into Elite → Map Search → Settings. Google bills you directly for map loads.
Typical costs for an agency with normal traffic: a few dollars per month. Heavy traffic with thousands of daily map loads can push that to $50+ a month. Set a budget cap in your Google Cloud Console to be safe.
Display the map
Three ways to add the map to your site.
Shortcode
Drop on your search results page:
[pn_map height="600px" cluster="yes" filters="sticky"]
Hybrid layout (map + listings side by side)
The most common layout. Map on one side, listing cards on the other. Both react to filter changes.
[pn_map_layout sidebar="left" cluster="yes"]
Use sidebar="left" for listings-then-map (RTL friendly), or sidebar="right" for map-then-listings.
Gutenberg block or Elementor widget
Search for Prop Nexia Map in the block inserter or Elementor widget panel. Visual configuration — no shortcode syntax needed.
Map shortcode parameters
| Parameter | Description |
|---|---|
height | Map height. Use any CSS unit — 600px, 80vh, 500px. Default 500px. |
cluster | yes (default) — pins group into clusters when zoomed out. no — show every pin always. |
filters | sticky — filters stay applied as buyer pans. reset — filters reset to defaults on pan. |
zoom | Initial zoom level. 11 covers Dubai, 13 covers a community. |
center | Optional starting coordinates — "25.0762,55.1394" centres on Dubai Marina. |
purpose | Pre-filter — sale, rent, off-plan. |
type | Pre-filter by property type. |
community | Pre-filter to a specific community slug. |
Make sure listings have coordinates
Every property needs latitude and longitude to appear on the map. Listings without coordinates are silently skipped. Three ways to set them:
- Auto-geocode on save — Elite uses the listing’s address to fetch coordinates from your map provider’s geocoder. Happens once on first save. Most agencies use this and never touch the map manually.
- Manual pin-drop — Edit the property, go to the Location tab, click on the map to place the pin exactly where you want it. Useful for off-plan projects with no street address yet.
- Bulk import — coordinates can be included in the Importer CSV. Use
latandlngcolumns. Faster than auto-geocoding when you’re migrating thousands of listings.
Audit listings missing coordinates
Run an audit any time to find listings that won’t show on the map:
Elite → Map Search → Coordinate Audit. Lists every property without lat/lng, with a one-click button to re-geocode each one.
Search features
Three ways buyers can search the map. All three work with both OpenStreetMap and Google.
Cluster search
When zoomed out, nearby pins group into clusters with a number (“23 listings”). Click a cluster to zoom into the area. Default behaviour — no buyer action needed.
Radius search
Buyer clicks Draw radius, drops a pin on the map, drags out a circle. Every listing inside the circle is shown. Useful for “within 2km of Dubai Mall.”
Polygon search
Buyer clicks Draw polygon, draws a custom shape around any area. Useful when the buyer wants a specific neighbourhood that doesn’t match any official community boundary — for example, “just the waterfront stretch of Dubai Marina.”
Polygon search and saved areas
You can pre-save polygons as named areas. They appear as one-click filter buttons on the front end so buyers don’t have to draw them manually.
- Elite → Map Search → Saved Polygons → New
- Draw the polygon directly on the map by clicking each corner
- Name it descriptively — “Marina Walk only” or “Downtown — Burj Khalifa zone”
- Click Save. The named polygon now appears as a filter button on the front-end map.
Useful when:
- A community has irregular boundaries that don’t match the WordPress taxonomy
- You want to promote a specific cluster of listings (“Waterfront row only”)
- A new development needs its own filter before it has its own community page
Performance
Map Search uses three techniques to stay smooth at scale.
| Technique | What it does |
|---|---|
| Marker clustering | Groups nearby pins into single cluster markers. The browser only renders what’s actually visible. |
| Lazy loading | Pins are loaded on demand as the buyer pans, not all upfront. |
| Viewport filtering | Listing data is filtered to what’s currently visible before the map renders. |
| Server-side clustering (optional) | For maps with 10,000+ listings, the server computes clusters and caches them. Enable in settings. |
Real-world benchmarks: 5,000 listings on a single map render in under 2 seconds on a normal hosting plan. 50,000 listings need server-side clustering enabled, then render in about 3 seconds.
Troubleshooting
Map is blank or tiles don’t load
- For OpenStreetMap — check that your network firewall and hosting allow outbound requests to
tile.openstreetmap.org. Some restricted corporate networks block it. - For Google Maps — verify the API key is valid. In Google Cloud Console, confirm Maps JavaScript API is enabled, billing is active, and the key is not restricted to a domain that doesn’t include your site.
Pins don’t appear on the map
The most common cause: listings have no latitude or longitude set.
- Go to Elite → Map Search → Coordinate Audit
- The audit shows every listing missing coordinates
- Click Re-geocode to fix them in bulk, or open each one and pin-drop manually
Map is slow to load with many listings
- Make sure clustering is enabled:
cluster="yes"in the shortcode - For more than 10,000 listings, enable Server-side clustering in settings
- Check your hosting has at least 256MB PHP memory — large catalogues need headroom
Geocoding takes ages on bulk import
OpenStreetMap’s free geocoder limits to 1 request per second. This is normal and not a bug. For an Importer job of 500 properties, expect roughly 9 minutes of background geocoding. If you need faster:
- Switch to Google Maps as your provider — its geocoder has higher limits
- Include
latandlngcolumns in your Importer CSV — no geocoding needed
Wrong pin location for a specific listing
The geocoder couldn’t find the exact address. Open the property, go to the Location tab, and pin-drop manually. The manual pin always overrides geocoded coordinates and survives future saves.
