Add a Map screen showing your listings

What you’ll build

A map screen shows your business or venue listings as tappable pins right inside your app. Tap a pin, and up comes that listing’s detail screen. You can put this map on the main tab bar (the permanent button row at the bottom of the app) or tuck it into the left menu instead.

It’s the “show me everything near me” screen that directory-style apps lean on most — restaurants, parks, dealers, member businesses, event venues. Everything on it — the pins, the categories, the listing details — comes straight from your existing listings. You’ll never type in a coordinate by hand.

Two content types can put a map of your listings into the app — pick whichever one matches where your listings actually live.

  • GeoDirectory – Map View is the content type this article walks through. It plots your GeoDirectory listings and lets you choose which ones appear by pointing it at a post type or category. Reach for this when your listings live in GeoDirectory and you want to scope the map.
  • Map (the plain one) is the core MAM map view. It takes no content source — the admin shows “No settings required” — so its name, zoom, pins, and everything else about how it looks come entirely from the app-level Map settings. Reach for this when the core map already shows what you want and you just need to style it.

Both open a full interactive map with tappable pins. Neither is the small “get directions to one address” button, though — that lives on an individual listing’s detail screen, not here.


Before you start

You need:

  • MAM Main active (the core MAM Suite plugin). It provides the plain Map content type and all of the app-level Map settings used below.
  • The GeoDirectory plugin (a third-party WordPress directory plugin) installed and active, with at least a few published listings that have addresses/coordinates.
  • MAM GeoDirectory active — the MAM Suite plugin that bridges GeoDirectory listings into the app. The GeoDirectory – Map View content type comes from this plugin.
  • Your MAM Suite entitlement for the content type you use. The plain Map content type requires its own MAM Suite product entitlement; GeoDirectory – Map View requires your MAM GeoDirectory entitlement.

Listings need a latitude and longitude set in GeoDirectory to show up — without one, no pin. Fix the address in GeoDirectory, then refresh the app.

If a content type is nowhere in the content-type list, check its entitlement first, then make sure the plugin that provides it is active.


Step 1 — Open App Setup

  1. In WordPress admin, go to Mobile App Manager → App Setup (under the MAM Suite menu).
  2. Decide where the map button should live:
    • Main tab bar — a permanent button row at the bottom of the app. Best for a map that’s central to the app. (The built-in Map tab uses a globe icon.)
    • Left menu — the slide-out menu. Best for a secondary map.

Both live on the same App Setup screen, and the steps below work the same either way.


Step 2 — Add a button and set its content type

  1. Add a new button to the tab bar (or left menu).
  2. Give it a label (“Map”, “Near Me”, “Explore”) and pick an icon.
  3. In the button’s content type dropdown, choose GeoDirectory – Map View.

Choosing a content type is how you tell the app what kind of screen this button opens — pick GeoDirectory – Map View and it opens the map surface backed by your GeoDirectory listings.

Choose the plain Map content type instead, and App Setup shows “No settings required” — it has no content source. Skip Step 3 and go straight to styling; the plain Map’s look comes entirely from the app-level Map settings described below.


Step 3 — Choose which listings appear (content source)

Pick GeoDirectory – Map View and a second selector shows up: the content source. This is what decides which listings actually get plotted. (Chose the plain Map content type instead? It has no content source — skip this step.)

The dropdown opens on Select Category… and then lists your GeoDirectory post types and their categories, shown as Post type -> Category (for example, Places -> Restaurants). You can choose:

  • A whole post type — every published listing of that type goes on the map.
  • A single category — only listings in that category. Use this when you want a focused map (“Map of breweries”) rather than everything.

Pick whichever source matches the screen you’re building, then save.

Point the content source at an event category, and GeoDirectory events can show up on the map too, by default. They stay included unless a developer suppresses them via the mam_gd_events_exclude_from_map filter (which defaults to false). Want your map to show only venues, with events on their own calendar screen instead? See Related articles → Hook: mam_gd_events_exclude_from_map.


Step 4 — Save and preview

  1. Save the App Setup screen.
  2. Reload the app (or your app preview). The new button appears in the tab bar / left menu.
  3. Tap it — your listings should plot as pins on the map. Tapping a pin opens that listing’s detail screen.

Missing pins usually trace back to one of three things: the listing has no coordinates in GeoDirectory, it isn’t published, or it’s not in the category you chose as the content source.


Customize how the map looks and behaves

The app-level Map settings live in App Setup, under the Misc settings group, and they shape the whole map surface. Get the basics right first, then refine from there.

Name and zoom

Setting What it does
Map Name (map_title) The title shown in the Map screen’s header — for example, “Find Us” or “Locations.”
Blank Map Nav Header Title (map_nav_header_title_blank) When on, hides the header title entirely (use instead of map_title if you want a blank header).
Initial Map Zoom (Default is 14) (default_map_zoom) A standard Google Maps zoom level entered as a whole number — lower is zoomed out (region), higher is zoomed in (street). Leave blank to use the default of 14, roughly neighborhood level. Adjust a few steps and re-check on a device until the starting view frames your listings.

Pins and markers

Which pin system you’re working with depends on which content type backs the map:

GeoDirectory – Map View draws pins from your GeoDirectory categories. Each listing’s pin comes from its category’s map-pin metadata (the category’s icon / map-pin image), and falls back to GeoDirectory’s default marker icon when a category doesn’t have one set. Give a category its own custom map pin image in GeoDirectory, and you can make food vs. lodging (say) distinguishable at a glance — this is set on the GeoDirectory category itself, not in App Setup.

The plain Map content type instead relies on app-level marker settings in the Misc group:

  1. Turn on Use Map Marker Images (use_map_marker_images) first — it’s the master switch, and while it’s off the map shows the default pins no matter what pin URLs you’ve set below.
  2. Point Main Map Marker Pin URL (map_pin_url) at the public URL of the image you want for standard listing pins.
  3. (Optional) Give favorited listings their own look by setting Favorite Listing Map Marker Pin URL (map_pin_favorite_url) to a distinct pin.

Both map_pin_url and map_pin_favorite_url are plain URL fields, so just paste in a publicly reachable image URL. Stick to square PNGs with a transparent background so the pin reads cleanly on the map, and keep the file size small — plenty of these load on the device at once. Still seeing default pins after you save? Double-check that Use Map Marker Images is on.

More map settings

These also live in the Misc group, and they refine the map surface further. Bring them in once the basics look right:

Setting What it does
Show map categories (map_show_categories) Show category filters on the map.
URL for All button on Map Categories (map_url_for_all_category) and URL for Featured Pin (map_url_for_featured_pin) Media-library image pickers for the category “All” button and featured pins.
Show map Table List (map_show_table) Show a list of results alongside the map.
Show map tip on first open? (map_show_tip), with Map Tip Title (map_tip_title) and Map Tip Message (map_tip_message) A one-time coach-mark shown the first time the map opens.
Turn Off Map Clustering? (map_turn_off_google_map_clustering) Disable grouping of nearby pins into clusters.
Show Listing Header on Map when tapped? (map_show_listing_header) and Load Selected Screen on Map Callout Tap (map_load_vc_name_on_tap) Control what appears and what screen loads when a user taps a pin.

Directory settings shared with the list screen

These live in the Listings settings group, and they apply across the whole directory/map/list experience:

Setting What it does
Hide Map on Listing Screen? (hide_map_on_list_view) When on, the list-style directory screen shows the list only and hides its built-in mini-map. (This affects the list screen’s embedded map, not your dedicated Map View screen.)
Display order using Distance from User (directory_display_distance_from_user) Orders listings by how close they are to the user’s current location — useful for “nearest first” behavior.

These are general directory settings, shared across the list, map, and calendar surfaces. If your build doesn’t have a dedicated list screen, “Hide Map on Listing Screen?” probably won’t matter to you.


How the data flows (optional background)

You won’t need this to build the screen, but it’s worth knowing when you’re troubleshooting:

  • Each listing’s latitude/longitude comes straight from its GeoDirectory record, and MAM normalizes it into the lat/lon fields the app actually reads.
  • For every listing, the app receives one row: its coordinates, default category, marker/pin icon, and everything needed to render the detail screen when it’s tapped.
  • Listings outside the active radius or area may not draw until the user pans the map or searches.

For the full per-listing field map, see Related articles → Mobile listing data shape.


Troubleshooting

Symptom Likely cause Fix
GeoDirectory – Map View isn’t in the content-type dropdown MAM GeoDirectory plugin not active, or its entitlement is blocked Activate the plugin and confirm the entitlement
Map screen opens but is empty No listings match the content source, or none have coordinates Check the chosen category/post type; add coordinates in GeoDirectory
Some listings missing They’re unpublished, in a different category, or outside the active search area Publish them, verify the category, or have the user search/pan
Events showing on a venue map (unwanted) Content source points at an event category, or events default-in Point the source at a non-event category, or have a developer apply the events-exclude filter
Custom pins still show as default markers On the plain Map, use_map_marker_images is off; on GeoDirectory – Map View, the category has no map-pin image set Turn on Use Map Marker Images (plain Map), or set a per-category pin in GeoDirectory
Content type shows “No settings required” and no source picker That’s the plain Map content type, which has no content source Use GeoDirectory – Map View if you need to scope which listings appear

Verification

This article was drafted against:

  • mam-main/includes/content-classes/local-app-map-class.php — the plain Map content type (vc_type map), which returns “No settings required” and opens the in-app map view; requires product entitlement 11.
  • mam-geodirectory/content-classes/local-app-geodirectory-v2-class.php — the GeoDirectory – Map View content type (vc_type list_map), its Post type -> Category content-source selector, the mam_gd_events_exclude_from_map filter (default false), and the per-category marker-pin resolution in finalize_marker_info().
  • mam-main/includes/app-settings/admin-settings-page.php — Map settings in the misc group: map_title, map_nav_header_title_blank, default_map_zoom (default 14), use_map_marker_images, map_pin_url, map_pin_favorite_url, map_show_categories, map_url_for_all_category, map_url_for_featured_pin, map_show_table, map_show_tip/map_tip_title/map_tip_message, map_turn_off_google_map_clustering, map_show_listing_header, map_load_vc_name_on_tap; plus hide_map_on_list_view and directory_display_distance_from_user (Listings group).
  • mam-main/includes/app-settings/tab-bar-button-configs.php — the Map tab-bar button (do_map, black_globe icon).

  • Plugin: mam-geodirectory
  • Mobile listing data shape
  • Hook: mam_gd_events_exclude_from_map
  • Integration: GeoFilters — city/neighborhood filtering for directory screens
Was this article helpful?
Contents

    Need Support?

    Can't find the answer you're looking for? Don't worry we're here to help!