Popularity
1.1
Growing
Activity
0.0
Stable
5
1
1
Monthly Downloads: 10,054
Programming language: Elixir
License: MIT License
Tags:
Geolocation
segseg alternatives and similar packages
Based on the "Geolocation" category.
Alternatively, view segseg alternatives based on common mentions on social networks and blogs.
-
topo
A Geometry library for Elixir that calculates spatial relationships between two geometries -
geoip
Elixir library to find geo location information given an IP address, hostname or Plug.Conn -
distance_api_matrix
Google Distance Matrix API Library for Elixir -
ipgeobase
Find Russian and Ukraine city by IP address and find country for other country Elixir -
srtm
Query locations for elevation data from the NASA Shuttle Radar Topography Mission
Elixir and Phoenix Application Security Platform
Replace Snyk, reCaptcha, and Cloudflare bot defense with the only application security platform built for Elixir and Phoenix.
Promo
paraxial.io
Do you think we are missing an alternative of segseg or a related project?
Popular Comparisons
README
Segment-Segment Intersection for Elixir
Calculates intersection type and location for two line segments.
Installation
defp deps do
[{:seg_seg, "~> 0.1.0"}]
end
Usage
The SegSeg
module provides a function intersection
that calculates the
intersection between two line segments and returns a tuple with three elements:
- Boolean
true
if the two segments intersect at all,false
if they are disjoint - An atom representing the classification of the intersection:
:interior
- the segments intersect at a point that is interior to both:vertex
- the segments intersect at an endpoint of one or both segments:edge
- the segments are parallel, collinear, and overlap for some non-zero length:disjoint
- no intersection exists between the two segments
- A tuple
{x, y}
representing the point of intersection if the intersection is classified as:interior
or:vertex
, otherwisenil
.
Examples
SegSeg.intersection({2, -3}, {4, -1}, {2, -1}, {4, -3}) #=> {true, :interior, {3.0, -2.0}}
SegSeg.intersection({-1, 3}, {2, 4}, {-1, 4}, {-1, 5}) #=> {false, :disjoint, nil}
SegSeg.intersection({1, 2}, {3, 0}, {2, 1}, {4, 2}) #=> {true, :vertex, {2, 1}}
SegSeg.intersection({-1, 0}, {0, 2}, {1, 4}, {-1, 0}) #=> {true, :edge, nil}
Tests
> mix test