1.3.0 • Published 3 years ago

whq-google-map v1.3.0

Weekly downloads
5
License
ISC
Repository
github
Last release
3 years ago

WHQ Google Map

Wrapper for embedding a Google Map more easily.

Installation

npm install whq-google-map

Usage

import GoogleMap from 'whq-google-map'

// new GoogleMap(options)

const mapCanvas = document.querySelector('.map-canvas')
const mapMarkers = [
    {
        coords: { lat: 100, lng: -100 },
        title: 'Location #1' <-- Optional
    },
    {
        coords: { lat: 100, lng: -100 },
        title: 'Location #2' <-- Optional
    },
    ...
]
const mapStyles = [...]

const myMap = new GoogleMap({
    apiKey: 'YOUR_API_KEY',
    element: mapCanvas,
    initialCoords: { lat: 100, lng: -100 },
    zoom: 12,
    markerIcon: 'img/map-marker.png',
    markers: mapMarkers,
    markerClick: {
        enabled: true,
        zoom: 9,
        centerOnMarker: true,
        bindSelector: '.element-to-bind',
        boundElementContainer: '.container',
        activeClass: 'active'
    },
    styles: mapStyles
})

myMap.init()

Options

OptionTypeDescription
apiKeyStringYour Google Maps API key.
coordsStringObject with lat and long properties.
elementNodeThe map canvas element.
markerIconStringOptional. Path to a custom marker icon. PNGs work the best cross-browser.
markersStringOptional. Node list of markers.
markerClickStringOptional. Options for marker click events.
stylesArrayOptional. Array of custom styles.
zoomIntegerOptional. Custom zoom level. Default: 4

Marker Click Options

OptionTypeDescription
enabledBooleanOptional. Whether or not marker click events are enabled. Default: False
zoomIntegerOptional. Zoom level after marker click. Default: False
centerOnMarkerBooleanOptional. Whether or not to center the map on a marker when it is clicked. Default: True
bindSelectorStringOptional. An element selector to bind each marker to.
boundElementContainerStringOptional. Selector of the element that contains the bound elements. This is required to scroll to the bound element.
activeClassStringOptional. Class to add to the bound element when its corresponding marker is clicked. Default: active

Binding Elements

To get bound elements to work, you must add the data-title attribute to the DOM node that corresponds to the title of each marker.

<li class="bound-element" data-title="Location #1">Location #1</li>

Icon Override

Override the global icon option by adding the data-icon attribute to the markers data.

const mapMarkers = [
    {
        coords: { lat: 100, lng: -100 },
        title: 'Location #1',
        icon: '/path/to/custom-icon.png'
    },
    ...
]
1.3.0

3 years ago

1.2.5

6 years ago

1.2.4

7 years ago

1.2.3

7 years ago

1.2.2

7 years ago

1.2.1

7 years ago

1.2.0

7 years ago

1.1.0

7 years ago

1.0.0

7 years ago

0.1.0

7 years ago