Hover Styles
Change the style of a symbol when hovered. Requires Trimble Maps v3.0.0 or later.<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="https://maps-sdk.trimblemaps.com/v4/trimblemaps-4.2.3.css" /> <script src="https://maps-sdk.trimblemaps.com/v4/trimblemaps-4.2.3.js"></script> <style> body { margin: 0; padding: 0; } #map { position: absolute; top: 0; bottom: 0; width: 100%; } </style> </head> <body> <div id="map"></div> <script> TrimbleMaps.setAPIKey('YOUR_API_KEY_HERE'); const map = new TrimbleMaps.Map({ container: 'map', style: TrimbleMaps.Common.Style.TRANSPORTATION, center: [-100.486052, 37.830348], zoom: 2, }); let hoveredStateId = null; map.on('load', () => { map.addSource('states', { type: 'geojson', data: 'https://developer.trimblemaps.com/maps-sdk/assets/us_states.geojson', }); // The feature-state dependent fill-opacity expression will render the hover effect // when a feature's hover state is set to true. map.addLayer({ id: 'state-fills', type: 'fill', source: 'states', layout: {}, paint: { 'fill-color': '#627BC1', 'fill-opacity': [ 'case', ['boolean', ['feature-state', 'hover'], false], 1, 0.5, ], }, }); map.addLayer({ id: 'state-borders', type: 'line', source: 'states', layout: {}, paint: { 'line-color': '#627BC1', 'line-width': 2, }, }); // When the user moves their mouse over the state-fill layer, we'll update the // feature state for the feature under the mouse. map.on('mousemove', 'state-fills', (e) => { if (e.features.length > 0) { if (hoveredStateId) { map.setFeatureState( {source: 'states', id: hoveredStateId}, {hover: false} ); } hoveredStateId = e.features[0].id; map.setFeatureState( {source: 'states', id: hoveredStateId}, {hover: true} ); } }); // When the mouse leaves the state-fill layer, update the feature state of the // previously hovered feature. map.on('mouseleave', 'state-fills', () => { if (hoveredStateId) { map.setFeatureState( {source: 'states', id: hoveredStateId}, {hover: false} ); } hoveredStateId = null; }); }); </script> </body> </html>
Hover Styles
<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="https://maps-sdk.trimblemaps.com/v4/trimblemaps-4.2.3.css" /> <script src="https://maps-sdk.trimblemaps.com/v4/trimblemaps-4.2.3.js"></script> <style> body { margin: 0; padding: 0; } #map { position: absolute; top: 0; bottom: 0; width: 100%; } </style> </head> <body> <div id="map"></div> <script> TrimbleMaps.setAPIKey('YOUR_API_KEY_HERE'); const map = new TrimbleMaps.Map({ container: 'map', style: TrimbleMaps.Common.Style.TRANSPORTATION, center: [-100.486052, 37.830348], zoom: 2, }); let hoveredStateId = null; map.on('load', () => { map.addSource('states', { type: 'geojson', data: 'https://developer.trimblemaps.com/maps-sdk/assets/us_states.geojson', }); // The feature-state dependent fill-opacity expression will render the hover effect // when a feature's hover state is set to true. map.addLayer({ id: 'state-fills', type: 'fill', source: 'states', layout: {}, paint: { 'fill-color': '#627BC1', 'fill-opacity': [ 'case', ['boolean', ['feature-state', 'hover'], false], 1, 0.5, ], }, }); map.addLayer({ id: 'state-borders', type: 'line', source: 'states', layout: {}, paint: { 'line-color': '#627BC1', 'line-width': 2, }, }); // When the user moves their mouse over the state-fill layer, we'll update the // feature state for the feature under the mouse. map.on('mousemove', 'state-fills', (e) => { if (e.features.length > 0) { if (hoveredStateId) { map.setFeatureState( {source: 'states', id: hoveredStateId}, {hover: false} ); } hoveredStateId = e.features[0].id; map.setFeatureState( {source: 'states', id: hoveredStateId}, {hover: true} ); } }); // When the mouse leaves the state-fill layer, update the feature state of the // previously hovered feature. map.on('mouseleave', 'state-fills', () => { if (hoveredStateId) { map.setFeatureState( {source: 'states', id: hoveredStateId}, {hover: false} ); } hoveredStateId = null; }); }); </script> </body> </html>