Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredJoin us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM. Register now.
I have Google Maps fully working in a custom visual except for the filtering of the rest of the report when I select a marker in the map.
My question is; how can I store the
identity: powerbi.visuals.ISelectionId
in the marker properties such that I can use
this.selectionManager.select(marker.identity, true)
to filter the report on e.g. a click event on the map?
I currently have:
var markers = this.viewModel.dataPoints.map(function (dp, i) {
return new google.maps.Marker({
position: new google.maps.LatLng(
dp.lat,
dp.lng
),
title: dp.category,
zIndex: i
})
})Thanks for any help or suggestions!
Martijn
Solved! Go to Solution.
I solved it the easy way by creating the click event on creation of the marker:
var markers = this.viewModel.dataPoints.map(function (dp, i) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(
dp.lat,
dp.lng
),
title: dp.category,
zIndex: i
})
google.maps.event.addListener(marker, 'click', (function (marker) {
return function () {
thisRef.selectionManager.select(dp.identity)
}
})(marker));
return marker;
})I solved it the easy way by creating the click event on creation of the marker:
var markers = this.viewModel.dataPoints.map(function (dp, i) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(
dp.lat,
dp.lng
),
title: dp.category,
zIndex: i
})
google.maps.event.addListener(marker, 'click', (function (marker) {
return function () {
thisRef.selectionManager.select(dp.identity)
}
})(marker));
return marker;
})I noticed that it is possible to add custom properties to a Marker, but that typescript forces you to use .set and .get.
Updated code:
var markers = this.viewModel.dataPoints.map(function (dp, i) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(
dp.lat,
dp.lng
),
title: dp.category,
zIndex: i
});
marker.set('identity',dp.identity);
google.maps.event.addListener(marker, 'click', (function (marker) {
return function () {
thisRef.selectionManager.select(marker.get('identity'));
}
})(marker));
return marker;
});
Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!
Check out the October 2025 Power BI update to learn about new features.