greiner-hormann

WebJar for greiner-hormann

License

License

MIT
Categories

Categories

ORM Data
GroupId

GroupId

org.webjars.npm
ArtifactId

ArtifactId

greiner-hormann
Last Version

Last Version

1.3.2
Release Date

Release Date

Type

Type

jar
Description

Description

greiner-hormann
WebJar for greiner-hormann
Project URL

Project URL

http://webjars.org
Source Code Management

Source Code Management

https://github.com/w8r/GreinerHormann

Download greiner-hormann

How to add to project

<!-- https://jarcasting.com/artifacts/org.webjars.npm/greiner-hormann/ -->
<dependency>
    <groupId>org.webjars.npm</groupId>
    <artifactId>greiner-hormann</artifactId>
    <version>1.3.2</version>
</dependency>
// https://jarcasting.com/artifacts/org.webjars.npm/greiner-hormann/
implementation 'org.webjars.npm:greiner-hormann:1.3.2'
// https://jarcasting.com/artifacts/org.webjars.npm/greiner-hormann/
implementation ("org.webjars.npm:greiner-hormann:1.3.2")
'org.webjars.npm:greiner-hormann:jar:1.3.2'
<dependency org="org.webjars.npm" name="greiner-hormann" rev="1.3.2">
  <artifact name="greiner-hormann" type="jar" />
</dependency>
@Grapes(
@Grab(group='org.webjars.npm', module='greiner-hormann', version='1.3.2')
)
libraryDependencies += "org.webjars.npm" % "greiner-hormann" % "1.3.2"
[org.webjars.npm/greiner-hormann "1.3.2"]

Dependencies

There are no dependencies for this project. It is a standalone project that does not depend on any other jars.

Project Modules

There are no modules declared in this project.

License Greiner-Hormann polygon clipping

  • Does AND, OR, XOR (intersection, union, difference, if you're human)
  • Plays nicely with Leaflet, comes with an adaptor for it
  • Handles non-convex polygons and multiple clipping areas
  • ~3kb compressed, no dependencies

Demo and documentation

Note: If you are looking for something more powerful, take a look at the Martinez polygon clipping implementation.

Install

$ npm install greiner-hormann

Browserify

var greinerHormann = require('greiner-hormann');

Browser

<script src="path/to/greiner-hormann(.leaflet).min.js"></script>

Use

...
var intersection = greinerHormann.intersection(source, clip);
var union        = greinerHormann.union(source, clip);
var diff         = greinerHormann.diff(source, clip);

...

if(intersection){
    if(typeof intersection[0][0] === 'number'){ // single linear ring
        intersection = [intersection];
    }
    for(var i = 0, len = intersection.length; i < len; i++){
        L.polygon(intersection[i], {...}).addTo(map);
    }
}

Format

Input and output can be {x:x, y:y} objects or [x,y] pairs. It will output the points in the same format you put in.

Versions

Version
1.3.2