1.0.0-beta.1 • Published 2 years ago

maptalks.autoadsorb v1.0.0-beta.1

Weekly downloads
1
License
MIT
Repository
github
Last release
2 years ago

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

More Things