maptalks.autoadsorb
v1.0.0-beta.1
Published
Adsorb vertux/border/both of geos on layer When drawing or editing
Downloads
74
Maintainers
Readme
maptalks.autoadsorb
Adsorb vertux/border/both of geos on layer When drawing or editing,inspired on maptalks.snapto
Examples
DEMO
Install
- Install with npm:
npm install maptalks.autoadsorb
. - Install with yarn:
yarn add maptalks.autoadsorb
. - Download from dist directory.
- Use unpkg CDN:
https://cdn.jsdelivr.net/npm/maptalks.autoadsorb/dist/maptalks.autoadsorb.min.js
Usage
As a plugin, maptalks.autoadsorb
must be loaded after maptalks.js
in browsers. You can also use 'import { Autoadsorb } from "maptalks.autoadsorb"
when developing with webpack.
<!-- ... -->
<script src="https://cdn.jsdelivr.net/npm/maptalks.autoadsorb/dist/maptalks.autoadsorb.min.js"></script>
<!-- ... -->
// new Autoadsorb, option layers is necessary.
const autoAdsorb = new maptalks.Autoadsorb({ layers: [layer] })
// or you can update some options later
autoAdsorb.setMode('vertux')
autoAdsorb.setDistance(20)
// Use when drawing with DrawTool.
autoAdsorb.bindDrawTool(drawTool)
// Use when editing geometry.
autoAdsorb.bindGeometry(geometry)
// Forced refresh of adsorption geometries.Usually used after drawend or editend.
autoAdsorb.refreshTargets()
API Reference
new maptalks.Autoadsorb(options)
- options Object options
- layers Array Get layer array or layerID array of the adsorption target.
- mode String there are three modes, auto/vertux/border, auto by default.
- distance Number the distance in pixel from mouse to the snap point, 10 by default.
- shellPoints Number number of shell points in Circle and Ellipse, 60 by default.The larger the number, the smoother the experience when adsorption Circle and Ellipse.
- needCtrl Boolean do adsorb only with Ctrl, default is false.
bindDrawTool(drawtool)
bind a drawtool on map.
bindGeometry(geometry)
bind a geometry on map which need edited.
refreshTargets()
forced refresh of adsorption geometries.
isEnable()
get enable status
setMode()
adsorb mode, 'vertux' will only adsorb Point ,'border' will only adsorb Line, and 'auto' will find both but may find Point only if Point and Line at very close
getMode()
get mode now
setDistance()
adsorb distance, used to set how far to find geometries around
getDistance()
get distance now
remove()
clear private object
Contributing
We welcome any kind of contributions including issue reportings, pull requests, documentation corrections, feature requests and any other helps.
Develop
The only source file is index.js
.
It is written in ES6, transpiled by babel and tested with mocha and expect.js.
Scripts
- Install dependencies
$ npm install
- Watch source changes and generate runnable bundle repeatedly
$ gulp watch
- Package and generate minified bundles to dist directory
$ gulp minify
- Lint
$ npm run lint