geo_midpoint: Point of Equidistance to Up to Three Longitude, Latitude...

Description Usage Arguments Value Author(s) See Also Examples

View source: R/geo_midpoint.R

Description

Generates a latitude and longitude point that is equidistant to up to three latitude and longitude points

Usage

1
geo_midpoint(coordinate_matrix, alternative = FALSE)

Arguments

coordinate_matrix

A matrix of latitude and longitude columns and up to three rows

alternative

Whether to use alternative line creation method. Could be needed when nearly inverse angles cause intersections to be ambiguous.

Value

Returns a vector of length 2 containing a latitude and longitude point.

Author(s)

Shant Sukljian

See Also

geo_sed geo_point_dist

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# Load required packages
require(mapview)
require(sp)

# Create sample geo dataset
sample_coord <-
   matrix(
        c(
            sample(327131680:419648450, 3) / 10000000,
            sample(-1147301410:-1241938690, 3) / 10000000
        ),
        ncol = 2
    )

# Generate circumcenter and radius
gmp <- geo_midpoint(sample_coord)

# Find distance to circumcenter
radius <- geo_point_dist(rbind(sample_coord[1, ], gmp))

# Create 80 sided polygon based on gmp's center and radius
gmp_poly <- geo_surround_poly(gmp, radius, 80)

# Join all the points into a single matrix
bound_poly <- rbind(sample_coord, as.vector(gmp), gmp_poly)

# Create SpacialPoints object and pass to mapview for visualization
mapview(
    SpatialPoints(
        bound_poly[,c(2, 1)],
        proj4string = CRS("+proj=longlat +datum=WGS84")
    )
)

geosed documentation built on Sept. 3, 2019, 9:04 a.m.