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:

  1. Go to Elite → Modules in WordPress admin
  2. Find Map Search in the module list
  3. 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.

FeatureOpenStreetMap (default)Google Maps
API key requiredNoYes
Per-load billingNoYes — you pay Google directly
Typical monthly cost$0$5–50 depending on traffic
Map styleClean, technical lookFamiliar Google look
Geocoding accuracy in UAEGood for most communitiesExcellent, especially for new developments
Cluster, radius, polygon searchSupportedSupported
Street ViewNoYes

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.

Tip. Start with OpenStreetMap. Most agencies never need to switch. If you do switch to Google later, your existing map embeds re-render automatically — no markup changes needed.

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

ParameterDescription
heightMap height. Use any CSS unit — 600px, 80vh, 500px. Default 500px.
clusteryes (default) — pins group into clusters when zoomed out. no — show every pin always.
filterssticky — filters stay applied as buyer pans. reset — filters reset to defaults on pan.
zoomInitial zoom level. 11 covers Dubai, 13 covers a community.
centerOptional starting coordinates — "25.0762,55.1394" centres on Dubai Marina.
purposePre-filter — sale, rent, off-plan.
typePre-filter by property type.
communityPre-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 lat and lng columns. 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.

OSM geocoder rate limits. OpenStreetMap’s free geocoder limits to 1 request per second. So bulk-saving 500 properties at once will take about 9 minutes to geocode all of them. Elite handles the throttling for you in the background — no action needed, just be patient on first import.

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.”

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.

  1. Elite → Map Search → Saved Polygons → New
  2. Draw the polygon directly on the map by clicking each corner
  3. Name it descriptively — “Marina Walk only” or “Downtown — Burj Khalifa zone”
  4. 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.

TechniqueWhat it does
Marker clusteringGroups nearby pins into single cluster markers. The browser only renders what’s actually visible.
Lazy loadingPins are loaded on demand as the buyer pans, not all upfront.
Viewport filteringListing 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.

When to enable server-side clustering. If you have under 10,000 listings, leave it off — client-side is faster. If you have more than 10,000, turn it on. Elite → Map Search → Settings → Server-side clustering.

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.

  1. Go to Elite → Map Search → Coordinate Audit
  2. The audit shows every listing missing coordinates
  3. 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 lat and lng columns 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.