google-maps-draw-shape-lib
Version:
javascript library that allows drawing a polygon shape over a Google Map and get it's coordinates
86 lines (67 loc) • 3.06 kB
Markdown
[![npm latest][0]][1] [![ci][2]][3] [![license][4]][5]
`google-maps-draw-shape-lib` is a javascript library written over a small set of the [Google Maps API](https://developers.google.com/maps/), that allows you to draw a polygon shape over a google map and get it's coordinates.
```sh
npm i google-maps-draw-shape-lib
```
```js
import MapDrawShapeManager from 'google-maps-draw-shape-lib';
// Google Maps JavaScript API instance
const map = new google.maps.Map(element, mapOptions);
// Callback function that will be called when user create or delete shape
const onDrawCallback = (shape) => console.log(shape);
// Flag indicating whether it should set Drawing Mode enabled
const drawingMode = false;
// Flag indicating whether it should set Draw Free Hand Mode enabled
const drawFreeHandMode = false;
// Object containing the google polygon options to be used when drawing
const polygonOptions = {
clickable: false,
fillColor: "#303030",
fillOpacity: 0.1,
strokeColor: "#000000",
strokeWeight: 4,
strokeOpacity: 1
};
// String with the inner HTML of the draw initial point overlay
const initialPointInnerHtml = `<button class="your-custom-initial-point-class" title="Initial Point"></button>`;
// String with the inner HTML of the draw delete point overlay
const deletePointInnerHtml = `<button class="your-custom-delete-point-class" title="Delete">X</button></div>`;
// Create Google Maps Draw Shape Library instance
const manager = new MapDrawShapeManager(
map,
onDrawCallback,
drawingMode,
drawFreeHandMode,
polygonOptions,
initialPointInnerHtml,
deletePointInnerHtml
);
// Example of shape returned on callback function
const initalShape = [
{ lat: 38.71755745031312, lng: -9.34395756832437 },
{ lat: 39.780999209652855, lng: -8.82210698238687 },
{ lat: 38.91016617157451, lng: -6.82259526363687 },
{ lat: 38.71755745031312, lng: -9.34395756832437 }
];
// Draws the input shape on the map
manager.initDrawnShape(initalShape);
// Clears the drawn shape
manager.resetDrawnShape();
// Sets the draw mode to drag instead of click if drawFreeHandMode flag is true
manager.setDrawFreeHandMode(drawFreeHandMode);
// Sets the map on draw mode if drawingMode flag is true
manager.setDrawingMode(drawingMode);
```
Example of this library being used in React: [google-maps-draw-shape-react](https://tiagocavaco.github.io/google-maps-draw-shape-react/) ([source](https://github.com/tiagocavaco/google-maps-draw-shape-react))
[](./LICENSE.md)
[]: https://img.shields.io/npm/v/google-maps-draw-shape-lib
[]: https://www.npmjs.com/package/google-maps-draw-shape-lib
[]: https://github.com/tiagocavaco/google-maps-draw-shape-lib/actions/workflows/ci.yml/badge.svg?branch=main
[]: https://github.com/tiagocavaco/google-maps-draw-shape-lib/actions/workflows/ci.yml
[]: https://img.shields.io/github/license/tiagocavaco/google-maps-draw-shape-lib
[]: https://github.com/tiagocavaco/google-maps-draw-shape-lib/blob/main/LICENSE.md