Forum Academy Marketplace Showcase Pricing Features

Trouble displaying specific information from a Custom State on a map

I have an option where users select contacts from a repeating group. The selected contacts are stored in a custom state called “Selected contacts”.

My map (Google Map BDK) displays a marker for each of the selected users from the custom state.

I want users to be able to click a marker on my map which will then display, for example [ContactFirstName] works here.

The problem is that the custom state necessarily stores a list of values so when I click on the Marker, it displays the [ContactFirstName] of all Contacts in the custom group but I only want to display the [ContactFirstName] of the contact that the marker relates to. Is there a way to do this? I feel it’s to use a “Do a Search for” or some such but I can’t work it out.

Any help much appreciated.
Thank you.

Hi @joefarrowsmith
how are the markers displayed now? I’ve never used Google Map BDK, is it just an element like group/repeating group that you pass a list of values (in your case selected contacts) and it automatically displays them at the right positions?

Correct. I have a RG in which all contacts that meet the criteria of a search are displayed. The search results can then be selected (using an ionic checkbox) which, when checked, updates a list held in a custom state. That custom state’s list (called “Selected Contacts”) is then used as the data source for my markers.

The way it works in Google Map BDK is that you have up to five separate markers. Each Marker has options for Type, Data Source, Address field (ie a field in your data set as a Geographic Address that you use for the map to get the address for the map location of the marker) , Label field, Info Window (which shows information on the marker when it’s clicked) and then Icon information.

My issue is that the Custom State that contains the selected contacts holds a LIST of contacts. This is no problem when it comes to the Map BDK displaying a marker for each contact. But I can’t get it to display the corresponding information in the same record as the address because it seems to require a single search result to provide that information but being based on a Custom State that provides a list, it can’t do this. (If that makes sense)

Looking at the Editor link from https://bdkdemos.bubbleapps.io/bdk_google_maps, you should have something like “Current marker” property on the googlemap(bdk) element.

Maybe you could try, in the custom group where you want this info, reference the googlemap(bdk)'s Current Marker’s name?

You might hack something based on that demo, we can also hop on a quick call.

Thank you so much. I’ve spent the afternoon trying to cobble something together with this and I’ve achieved a compromise where I’ve managed to get some data onto a label, just not the data I wanted.

I’ll try and explain the issue I’m having with this screen shot…

On it you’ll notice that there are different options when your Marker Type is “Geographic Address” to when it’s set to, say, a DataType that contains other data you might want (such as a Contact’s Office). When you use a Data Type for the Marker Type, you get the Info Window option which will display information from a field that relates to that Marker. This is a really handy option but it’s not available when you use the Geographic Type so you’re limited with what additional information you can add to enhance the UX. One of the issues I’ve had is the age old fact that Geographic Address results in a list of Addresses and I can’t find a way of extracting relating data from that list to apply to the relevant marker as that requires a single entry.

I really appreciate your help. I think I can achieve some success with Workflows and I’ll come back to it in a short while.

Thanks again
Joe

@joefarrowsmith,

I’d love to give you a specific solution but in these kind of cases it’s difficult when I can’t interact with the editor myself and actually see and tweak the data flow if necessary :confused:

Maybe someone else had these issue before and will provide a solution?