Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@carnallfarrar/react-mapbox-light

Package Overview
Dependencies
Maintainers
2
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@carnallfarrar/react-mapbox-light

A light adaptation of mapbox-gl for React application

  • 1.1.0
  • unpublished
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
2
Created
Source

react-mapbox-light

A modern and light adaptation of mapbox-gl for React.

Components

  • MapboxMap
  • GeoJSON
  • PopUp

Getting Started

npm i @carnallfarrar/react-mapbox-light mapbox-gl --save

You will need to add mapbox CSS by importing it into your JS/TS files or inject it into your HTML

import "mapbox-gl/dist/mapbox-gl.css";
<html>
  <head>
    ...
    <link
      href="https://api.mapbox.com/mapbox-gl-js/v2.6.1/mapbox-gl.css"
      rel="stylesheet"
    />
  </head>
</html>
import { MapboxMap, GeoJSON, PopUp } from 'react-mapbox-light';
...

      <MapboxMap
        token={process.env.REACT_APP_MAPBOX_TOKEN!}
        control="bottom-left"
        scrollZoom={false}
        mapboxOptions={{
          style: "mapbox://styles/mapbox/light-v10",
          center: [-2.2783131, 53.1400067],
          zoom: 6,
        }}
      >
        <GeoJSON
            data={geojson}
            id="outline-layer"
            layers={[
                {
                id: "outline",
                type: "line",
                source: "outline-layer",
                layout: {},
                paint: {
                    "line-color": "#fff",
                    "line-width": 2,
                },
                },
            ]}
            onMouseMove={(e, features) => handleMouseMove(e, features)}
        />
        <PopUp
            lnglat={popUpProperty?.lnglat}
            closeButton={false}
            closeOnClick={true}
        >
            <div>Popup content here!</div>
        </PopUp>
      </MapboxMap>

Documentation

MapboxMap

This is the main component used to render a Mapbox map into the DOM.

Properties
PropertytypeRequiredDescription
tokenstringYesMapbox GL token to use for the map
controlstringNoNo control is diplayed if not provided, if provided value should be the position of the control.
scrollZoombooleanNodefault to True. if provided with false it will disable zoom on scroll
mapboxOptionsobjectNoMapbox options to pass to the map, see mapbox doc
onStyleLoadFunctionNoa callback function called when the map style has loaded

GeoJSON

a GeoJSON component instantiating a source and multiple layer for a given geojson.

Properties
PropertytypeRequiredDescription
dataObjectYesThe data for the GeoJSON to display
idstringNoThe ID to use to display the source provided as data
layersArrayYesMapbox layer(s) to use to display GeoJSON provided as data
onClickFunctionNoonClick event provided to all layers displayed
onMouseEnterFunctionNoonMouseEnter event provided to all layers displayed
onMouseLeaveFunctionNoonMouseLeave event provided to all layers displayed

PopUp

using the mapboxgl inbuilt popup functionality you can include a React component or plain HTML as a child component to populate the popup content

Properties
PropertytypeRequiredDescription
latlngmapboxgl.LngLatYesThe lat and long coordinates of the mouse position
closeButtonBooleanYesAdd a close button to the popup
closeOnClickBooleanYesClose the popup on click anywhere in the map

FAQs

Package last updated on 24 Feb 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc