spatial_hash v0.1.5 SpatialHash
Documentation for SpatialHash.
Link to this section Summary
Functions
Returns an array containing the hash elements for the given point for each dimension
Returns array of hash ranges for a given axis-aligned envelope
Convenience function for creating a grid for use with longitude/latitude grids.
You can specify a grid spacing, or it will default to 0.001
Link to this section Types
Link to this type
geometry()
geometry :: {number, number} | %{type: String.t, coordinates: list} | %Geo.Point{coordinates: term, srid: term} | %Geo.MultiPoint{coordinates: term, srid: term} | %Geo.LineString{coordinates: term, srid: term} | %Geo.MultiLineString{coordinates: term, srid: term} | %Geo.Polygon{coordinates: term, srid: term} | %Geo.MultiPolygon{coordinates: term, srid: term}
Link to this section Functions
Link to this function
hash(point)
Returns an array containing the hash elements for the given point for each dimension.
Examples
iex> SpatialHash.hash([-0.2, -1.3], [{-180, 180, 0.05}, {-90, 90, 0.2}])
[3596, 443]
iex> SpatialHash.hash([0.2, -80.2], [{-180, 180, 0.05}, {-90, 90, 0.1}])
[3604, 98]
iex> SpatialHash.hash([0.2, -80.2])
[180200, 9800]
Link to this function
hash_range(shape)
Returns array of hash ranges for a given axis-aligned envelope
Examples
iex> SpatialHash.hash_range(%Envelope{
...> min_x: -90.082756,
...> min_y: 29.949766,
...> max_x: -90.079484,
...> max_y: 29.952280
...> }, [{-180, 180, 0.01}, {-90, 90, 0.01}])
[8991..8992, 11994..11995]
iex> SpatialHash.hash_range(
...> %{type: "LineString", coordinates: [
...> { -90.082746, 29.950955},
...> {-90.081453, 29.952280},
...> {-90.079489, 29.949770}
...> ]})
[89917..89920, 119949..119952]
iex> SpatialHash.hash_range(
...> %{type: "Point",
...> coordinates: { -90.082746, 29.950955}})
[89917..89917, 119950..119950]
Link to this function
hash_range(env, dims)
hash_range(%Envelope{max_x: term, max_y: term, min_x: term, min_y: term} | geometry, grid) :: point_range