# Popup Control ![Since v3.0](https://img.shields.io/badge/since-v3.0-green) This is a React equivalent of Mapbox's [Popup Control](https://www.mapbox.com/mapbox-gl-js/api/#popup), which can be used to show tooltip popups with custom HTML content at specific locations on the map. ```js import * as React from 'react'; import ReactMapGL, {Popup} from 'react-map-gl'; function App() { const [viewport, setViewport] = React.useState({ longitude: -122.45, latitude: 37.78, zoom: 14 }); const [showPopup, togglePopup] = React.useState(false); return ( {showPopup && togglePopup(false)} anchor="top" >
You are here
}
); } ``` ## Properties ##### `latitude` (Number, required) Latitude of the anchor. ##### `longitude` (Number, required) Longitude of the anchor. ##### `altitude` (Number) - default: `0` Altitude of the anchor. ##### `offsetLeft` (Number) - default: `0` Offset of the anchor from the left in pixels, negative number indicates left. ##### `offsetTop` (Number) - default: `0` Offset of the anchor from the top in pixels, negative number indicates up. ##### `closeButton` (Boolean) - default: `true` If `true`, a close button will appear in the top right corner of the popup. ##### `closeOnClick` (Boolean) - default: `true` If `true`, the popup will closed when the map is clicked. ##### `tipSize` (Number) - default: `10` Size of the tip pointing to the coordinate. ##### `anchor` (String) - default: `bottom` A string indicating the popup's position relative to the coordinate. Options are `top`, `bottom`, `left`, `right`, `top-left`, `top-right`, `bottom-left`, and `bottom-right`. ##### `dynamicPosition` (Boolean) - default: `true` If `true`, the anchor will be dynamically adjusted to ensure the popup falls within the map container. ##### `sortByDepth` (Boolean) - default: `false` If `true`, the order of the popups will be dynamically rearranged to ensure that the ones anchored closer to the camera are rendered on top. Useful when showing multiple popups in a tilted map. ##### `onClose` (Function) Callback when the user closes the popup. ##### `captureScroll` (Boolean) - default: `false` Stop propagation of mouse wheel event to the map component. Can be used to stop map from zooming when this component is scrolled. ##### `captureDrag` (Boolean) - default: `true` Stop propagation of dragstart event to the map component. Can be used to stop map from panning when this component is dragged. ##### `captureClick` (Boolean) - default: `true` Stop propagation of click event to the map component. Can be used to stop map from calling the `onClick` callback when this component is clicked. ##### `captureDoubleClick` (Boolean) - default: `true` Stop propagation of dblclick event to the map component. Can be used to stop map from zooming when this component is double clicked. ##### `capturePointerMove` (Boolean) - default: `false` Stop propagation of pointermove event to the map component. Can be used to stop map from calling the `onMouseMove` or `onTouchMove` callback when this component is hovered. ## Styling Like its Mapbox counterpart, this control relies on the mapbox-gl stylesheet to work properly. Make sure to add the stylesheet to your page. ## Source [popup.js](https://github.com/visgl/react-map-gl/tree/6.0-release/src/components/popup.js)