Members Map
Members with a location on their profile, drawn on a map they can pan and zoom.
Before you start
Section titled “Before you start”| Plugin | Ultimate Member - User Locations, or BuddyPress with a Memberside Location profile field |
| Endpoint groups | Locations, Directory |
| Plan | Every plan |
| Also needs | A Google Maps API key under Memberside → API Keys, and a Google Maps SDK key per platform for a native map |
Add it to your app
Section titled “Add it to your app”- Nothing, to see it in the builder: Memberside draws the preview’s map, so you can lay the screen out before you have a Google account at all.
- Set a Google Maps API key under Memberside → API Keys → Google Maps Platform. Your site draws its own map with it — needed for any build without a native map, and for address search.
- For a native map, set Google Maps SDK key (Android) and Google Maps SDK key (iOS) in the same section. Both are different keys from the Google Maps API key above them, and from each other — see Connection and API keys.
- Enable Maps SDK for Android on the Android key and restrict it to your package name and signing SHA-1. The builder’s Members Map settings show the SHA-1 to add.
- Enable Maps SDK for iOS on the iOS key and restrict it to your bundle ID. It has to be a second key: Google restricts a key to Android apps or to iOS apps, never both.
- Drag Members Map onto a navigation bar or into the side drawer.
- Run a new build. Each platform’s key is compiled into its own app.
Native map or your site’s map page
Section titled “Native map or your site’s map page”Which map the installed app draws is decided when you build:
| Your site has | The installed app draws |
|---|---|
| A Google Maps SDK key for that platform | A native map |
| No SDK key at all | Your site’s own Members Map page — which needs the Google Maps API key on the site, or the app draws no map |
The builder preview is not on this list on purpose. Its map is ours, and it looks the same whichever row you are on, so a working preview is not evidence that the app’s map will work. The build log is.
The build log says which, and why. A native build logs the package name and the signing SHA-1 Google has to accept, and a build without one says the key was missing, or did not look like a Google API key.
Your site’s map page carries pins, clustering, the list and marker cards like the native map. It does not draw the member’s own position as a blue dot. If the page cannot load, the screen falls back to the member list. It needs Memberside 2.38.0 or later on your site.
The signing SHA-1 for Android
Section titled “The signing SHA-1 for Android”On Android, Google accepts the Android key only from an app it recognises. Under In the installed app, the Members Map settings show the SHA-1 of the certificate your last build was signed with. Add it with your package name (the App ID in General settings) to the key’s Android restriction, and enable Maps SDK for Android on the key. Before your first build there is no SHA-1 yet; build once and it appears.
Once the app is on Google Play, add the Play App Signing SHA-1 from Play Console too. Play re-signs what you upload with its own certificate, so a restriction holding only the upload SHA-1 draws grey tiles for everyone who installs from the store. See Android signing.
Settings
Section titled “Settings”| Setting | What it does | Default |
|---|---|---|
| Title, Description | Shown at the top | Empty |
| Location data from | Which plugin holds your members’ coordinates. Only shown when your site can serve both | Whichever your site uses |
| Location field | Which location field to plot. Blank plots every one your site defines | Blank |
| Marker card details | The profile fields shown on the card a tapped marker opens | None |
| List row details | The profile fields shown under each name in the list | None |
| Find members by | Whatever the map is showing, or A distance from the centre | Whatever the map is showing |
| Distance | How far from the centre to search, 1 to 20000 | 50 |
| Units | km or miles | km |
| Map height | The map’s height in pixels, 160 to 900 | 300 |
| Zoom | The zoom level it opens at, 5 to 20 | 5 |
| Marker | The member’s avatar, their role’s icon, or a plain pin | The member’s avatar |
| Map buttons | Which of zoom, map / satellite, compass and recenter the map shows | Compass and recenter |
| Controls on | Which corner the zoom and recenter buttons sit in | Middle right |
| Map colours | The map’s own palette. On the Appearance tab | Automatic |
| Marker size | How big the pins are, 16 to 48 px. On the Appearance tab | 24 |
| Map fills | Which of the screen’s edges the map runs to. On the Appearance tab | Between the bars |
| Member list starts | Open over the lower map, or closed behind a Members button. On the Appearance tab | Open |
| Show a member list under the map | A scrollable list beneath | On |
| Search again when the map is moved | Re-query as the member pans | On |
| Group nearby members | Close markers become one bubble with a count | On |
| Let members take themselves off the map | Adds a switch to the screen | On |
| Starting centre | Latitude and longitude the map opens at, overriding your site’s | Your site’s |
| Restrictions | Which roles see the tab | Everyone |
Distance and Units only appear when Find members by is set to a distance from the centre.
A Zoom of 5 opens on a city and the country around it. A community spread across one town wants something nearer 11; 20 is a single street.
5 is also as far out as anyone can go — see below — so it is the widest view the map ever shows.
Starting centre needs both a latitude and a longitude. One on its own is not a place, so it is ignored and the map falls back to your site’s own centre.
Where the coordinates come from
Section titled “Where the coordinates come from”Most sites have one answer and never see the Location data from setting. It appears only when your site can serve both:
- Ultimate Member — User Locations stores a member’s coordinates against a
user_locationfield on your profile form. - BuddyPress stores them against a Memberside Location xProfile field. Add one under Users → Profile Fields and pick that field type.
One map shows one of them. To offer both, place a second Members Map.
Switching the setting clears Location field, because the two plugins name their fields differently — a key from one means nothing to the other.
What a marker shows
Section titled “What a marker shows”Marker card details and List row details are separate settings on the Appearance tab, both picking from the same profile fields your site defines. They are separate because the surfaces are: the card has room for several fields with their labels, a list row has one line.
The fields offered follow Location data from — your Profile form’s fields for Ultimate Member, your xProfile groups’ for BuddyPress.
Marker size sets the member pin’s diameter, and everything else the map draws follows it: the viewer’s own pin, the bubble a group of members collapses into, the initials inside a pin with no avatar, and how close two members have to be before they group at all. One number rather than four, so a map cannot end up with pins of mismatched sizes.
The map’s own buttons
Section titled “The map’s own buttons”Four buttons, each switched on or off on its own:
| Button | |
|---|---|
| Zoom in and out | A plus and a minus. Off by default — the map pinch-zooms without them |
| Map / satellite | Switches between the drawn map and Google’s photography. Off by default |
| Compass, rotate and tilt | Two-finger rotate and tilt, with a compass that resets north. On by default |
| Recenter on my location | Jumps to where the member is. On by default, and only available with Show my current location |
Controls on puts the zoom and recenter buttons in one of six places — top, middle or bottom, left or right. They always travel together: a map with its buttons split between two corners is harder to use, not more flexible.
Two buttons ignore that setting, on purpose:
- Map / satellite always sits at the bottom right, held clear of your bottom navigation and of the member list when it is open. It is the button a thumb reaches for while the other hand is panning, so it gets the corner nearest the thumb whatever the rest are doing.
- The compass is drawn by Google on Android and keeps its own corner there.
Which edges the map runs to
Section titled “Which edges the map runs to”Map fills, on the Appearance tab, decides how far the map spreads:
| Between the bars | The map sits inside your app’s navigation, like any other screen |
| Up to the top edge, behind the clock | The map runs up behind the status bar, with any top navigation floating over it |
| To the top and bottom edges | It also runs down behind the bottom navigation and the phone’s gesture bar |
Whichever you choose, the member list and the map’s own buttons stay clear of the navigation — nothing you need to tap ends up underneath it.
What colour the map is
Section titled “What colour the map is”Map colours, also on the Appearance tab, sets the palette of the map itself — the land, water and roads, not the pins.
| Palette | |
|---|---|
| Automatic | Google’s own colours in light mode, a dark map in dark mode. The map changes with the rest of the app the moment a member switches |
| Standard | Google’s own colours, in both modes |
| Silver | Desaturated grey. Light |
| Retro | Warm sepia. Light |
| Dark | Neutral greyscale. Dark |
| Night | Blue-black. Dark |
| Aubergine | Deep purple. Dark |
Automatic is the default, and is the right answer for most apps: before it, a map in a dark app was a bright white rectangle under a dark member list.
A named palette is used in both modes. That is deliberate — you chose that colour — but it does mean picking a light palette for an app people read at night, or a dark one for an app that never goes dark, is yours to get right.
Palettes do not apply to satellite view, which is Google’s own photography. A member who switches the map to satellite sees it unchanged.
How far out a member can zoom
Section titled “How far out a member can zoom”Zooming out stops at level 5 — a city and the country around it. Further out, the pins stop being places and become a scatter, and the member list under the map is the better way to answer “who is where”. Google also starts drawing bare grey above and below the world there, which reads as a broken screen rather than as the end of the range.
The limit is the same everywhere: the builder preview, the phone, and a map set to fill to both edges. It is not a setting, but Zoom cannot be set below it, so the two always agree.
What your members see
Section titled “What your members see”A map with a marker per member, and — with the list on — the same members underneath.
Tapping a marker or a row opens a card: the member’s name and photo, whichever fields you chose, their address and distance where the site publishes them, and View profile. That opens the Profile — the BuddyPress one on a BuddyPress map, which takes its own settings from the BuddyPress Profile feature.
Marker decides what a pin looks like. The member’s avatar draws their photo in a circle. Their role’s icon draws the image set on their Ultimate Member role, falling back to their avatar where a role has none — the app is told which to use, because role settings are not something it can read. A plain pin draws the same marker for everyone.
With Group nearby members on, markers that sit close together are drawn as one bubble carrying a count, and tapping it zooms in until they separate. Where they cannot separate — members whose coordinates round to the same point, which at the default precision is anyone within about 110m of each other — it lists them instead, and picking one opens their card.
The preview groups them the same way but cannot zoom, so a bubble there always opens the list.
Turn it off to draw every member as their own marker. Worth doing for a small community, where a bubble reading “3” is less use than three faces.
With Let members take themselves off the map on, the screen carries a Hide me from this map switch. It hides that member’s pin from everyone else without clearing the location they saved, so turning it back on needs no re-entry. It never hides anyone else from them.
Under the map is Show members near me. Tapping it asks for the device location, centres the map there and lists whoever is within the distance you set. A member who does not tap it is never asked.
With Search again when the map is moved on, panning re-queries, so the list always matches what is on screen. Turning it off makes the map a viewer for one search rather than a live one, which is calmer on a slow connection.
How precise the pins are
Section titled “How precise the pins are”Coordinates are rounded before the app receives them. Set this under Memberside → REST API → Locations, beside the switches for the group itself.
| Setting | Rounds to | Also returned |
|---|---|---|
| City | About 1.1 km | |
| Neighbourhood | About 110 m | |
| Street | About 11 m | |
| Exact | Nothing — the true point | The street address and a maps link |
Neighbourhood is what a site gets until someone changes it.
Exact is the one to think about. At that setting any signed-in member can read the exact location and street address of every member who has one, in bulk, through the app. That suits a directory of businesses. It is rarely what a community of people wants.
This rounding applies to the app only. It does not change what your website’s member directory shows — change that in Ultimate Member - User Locations.
Asking for location
Section titled “Asking for location”The app asks for location permission in two places: when a member adds their own location to their profile, and when they tap Show members near me on this screen. Nothing asks on launch, and the map works for a member who declines — they see everyone else’s pins, just not their own position.
The prompt text is fixed, and App Review reads exactly those words — see Store readiness.
When it does not work
Section titled “When it does not work”| Symptom | Cause | Fix |
|---|---|---|
| A grey tile where the map should be | The server Maps key was used instead of an SDK key, or the key belongs to the other platform | Set Google Maps SDK key (Android) and (iOS) and rebuild |
| A grey tile with the right key | Maps SDK for Android or iOS is not enabled on it | Enable both in Google Cloud |
| Grey tiles only in the Play Store download | The Play App Signing SHA-1 is not on the key | Add it from Play Console |
| The installed app shows a web map, not a native one | Your site had no SDK key when you built | Set the key and rebuild. The build log says which map it chose |
| The installed app shows only the member list | No SDK key, and your site’s map page could not load: no Google Maps API key, or Memberside older than 2.38.0 | Set the key, or update Memberside |
| The preview shows a flat plate, not a map | Rare now that Memberside draws it, and it means our map could not load — a blocked network, or an ad blocker stopping maps.googleapis.com | Reload the builder. Your own keys are not involved |
| The map works in preview, not on the phone | Expected: the preview’s map is ours and the app’s is yours. The key restriction does not match the app’s signing certificate | Check the restriction, or Android signing |
| The phone shows the member list with no map above it | The app found no map to draw and gave the screen to the list rather than leaving a blank rectangle | Set that platform’s SDK key, or the site’s Google Maps API key for the page fallback, and rebuild |
| The map is empty | The Locations group is off, or no member has a location | Check both |
| Some members are missing | Their location is in a field the Location field setting excludes | Leave it blank to plot every field |
| The card is greyed out | Neither Ultimate Member - User Locations nor BuddyPress is active | Activate one |
| The Location field list is empty | The chosen source defines no location field yet | Add one, or switch Location data from |
| A marker’s card shows “No details to show” | That member has no value for any field you chose | Expected. Pick a field more members fill in |
| The card is empty for everyone | No fields are set under Marker card details | Pick some on the Appearance tab |
| The app got noticeably larger | This screen carries the Maps SDK | Expected. Remove the feature to remove the cost |
| Pins sit near a member but not on them | Coordinates are rounded before the app sees them | Expected. Change it under Memberside → REST API → Locations |