h3 3.4.4 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Gemfile.lock +1 -1
- data/README.md +2 -1
- data/ext/h3/Makefile +1 -1
- data/ext/h3/src/.gitignore +2 -1
- data/ext/h3/src/CHANGELOG.md +9 -0
- data/ext/h3/src/CMakeLists.txt +72 -45
- data/ext/h3/src/RELEASE.md +2 -1
- data/ext/h3/src/VERSION +1 -1
- data/ext/h3/src/docs/api/hierarchy.md +2 -0
- data/ext/h3/src/docs/api/indexing.md +3 -1
- data/ext/h3/src/docs/api/inspection.md +20 -0
- data/ext/h3/src/docs/api/misc.md +2 -0
- data/ext/h3/src/docs/api/regions.md +2 -0
- data/ext/h3/src/docs/api/traversal.md +2 -0
- data/ext/h3/src/docs/api/uniedge.md +2 -0
- data/ext/h3/src/docs/community/bindings.md +4 -0
- data/ext/h3/src/docs/community/tutorials.md +12 -0
- data/ext/h3/src/scripts/update_version.sh +50 -0
- data/ext/h3/src/src/apps/applib/include/args.h +122 -0
- data/ext/h3/src/src/apps/applib/include/utility.h +5 -62
- data/ext/h3/src/src/apps/applib/lib/args.c +216 -0
- data/ext/h3/src/src/apps/applib/lib/utility.c +40 -206
- data/ext/h3/src/src/apps/filters/geoToH3.c +7 -9
- data/ext/h3/src/src/apps/filters/h3ToComponents.c +50 -47
- data/ext/h3/src/src/apps/filters/h3ToGeo.c +7 -30
- data/ext/h3/src/src/apps/filters/h3ToGeoBoundary.c +7 -27
- data/ext/h3/src/src/apps/filters/h3ToLocalIj.c +42 -25
- data/ext/h3/src/src/apps/filters/hexRange.c +43 -24
- data/ext/h3/src/src/apps/filters/kRing.c +4 -4
- data/ext/h3/src/src/apps/filters/localIjToH3.c +63 -21
- data/ext/h3/src/src/apps/miscapps/h3ToGeoBoundaryHier.c +68 -44
- data/ext/h3/src/src/apps/miscapps/h3ToGeoHier.c +68 -43
- data/ext/h3/src/src/apps/miscapps/h3ToHier.c +48 -37
- data/ext/h3/src/src/apps/testapps/mkRandGeo.c +32 -27
- data/ext/h3/src/src/apps/testapps/mkRandGeoBoundary.c +33 -28
- data/ext/h3/src/src/apps/testapps/testH3GetFaces.c +136 -0
- data/ext/h3/src/src/h3lib/include/faceijk.h +19 -7
- data/ext/h3/src/src/h3lib/include/h3api.h.in +12 -1
- data/ext/h3/src/src/h3lib/lib/algos.c +7 -2
- data/ext/h3/src/src/h3lib/lib/faceijk.c +135 -103
- data/ext/h3/src/src/h3lib/lib/h3Index.c +86 -5
- data/lib/h3/bindings/private.rb +1 -0
- data/lib/h3/inspection.rb +34 -0
- data/lib/h3/version.rb +1 -1
- data/spec/inspection_spec.rb +33 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 95994576b5df069470128bda24d6768b3c8d5fe9ee61ebf0b5f4f16126f64208
|
4
|
+
data.tar.gz: a439783870113f4101d00a3fb94c8f4fec978ddabc55410531aa3e0f3c787fdd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6315cd5682f58cf7384b67fbf8dd4cba4eaa59ccbede04386a94d526b26d593dd0a92df2c4446dc5ff3a662622acbede640d63bae7345c64be0225b92c81d244
|
7
|
+
data.tar.gz: 9b543348c2c66cc8a441ba42e27503d8ace2b83b6714b577e5531a1cb29cb28810a5e816b90adda4a344a2082ed6e4623a25f10b7126a648498fe200787b930e
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,16 @@ This project adheres to [Semantic Versioning](http://semver.org/).
|
|
6
6
|
|
7
7
|
We track the MAJOR and MINOR version levels of Uber's H3 project (https://github.com/uber/h3) but maintain independent patch levels so we can make small fixes and non breaking changes.
|
8
8
|
|
9
|
+
## [3.5.0] - 2019-7-25
|
10
|
+
### Added
|
11
|
+
- `h3_faces` and `max_face_count` support (#56)
|
12
|
+
### Changed
|
13
|
+
- New CMake options to prevent unnecessary building of filter apps and benchmarks.
|
14
|
+
|
15
|
+
## [3.4.4] - 2019-6-4
|
16
|
+
### Changed
|
17
|
+
- Internal h3 bugfixes.
|
18
|
+
|
9
19
|
## [3.4.0] - 2019-1-24
|
10
20
|
### Added
|
11
21
|
- `res_0_indexes` and `res_0_index_count` support (#51).
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -2,7 +2,8 @@
|
|
2
2
|
|
3
3
|
![h3](https://user-images.githubusercontent.com/98526/50283275-48177300-044d-11e9-8337-eba8d3cc88a2.png)
|
4
4
|
|
5
|
-
[![Build Status](https://travis-ci.org/StuartApp/h3_ruby.svg?branch=master)](https://travis-ci.org/seanhandley/h3_ruby)
|
5
|
+
[![Build Status](https://travis-ci.org/StuartApp/h3_ruby.svg?branch=master)](https://travis-ci.org/seanhandley/h3_ruby)
|
6
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/74a47e7fa516588ab545/maintainability)](https://codeclimate.com/repos/5ca38395a86379029800281f/maintainability) [![Coverage Status](https://coveralls.io/repos/github/StuartApp/h3_ruby/badge.svg?branch=master)](https://coveralls.io/github/StuartApp/h3_ruby?branch=master) [![Gem Version](https://badge.fury.io/rb/h3.svg)](https://badge.fury.io/rb/h3)
|
6
7
|
|
7
8
|
Ruby-to-C bindings for Uber's [H3 library](https://uber.github.io/h3/).
|
8
9
|
|
data/ext/h3/Makefile
CHANGED
data/ext/h3/src/.gitignore
CHANGED
@@ -57,6 +57,7 @@ dev-docs/_build/
|
|
57
57
|
env_docs/
|
58
58
|
node_modules/
|
59
59
|
website/dist/
|
60
|
+
website/package-lock.json
|
60
61
|
# Generated Doxyfile
|
61
62
|
dev-docs/Doxyfile
|
62
63
|
|
@@ -98,4 +99,4 @@ KML/res*cells.kml
|
|
98
99
|
KML/res*centers.kml
|
99
100
|
|
100
101
|
# Generated files
|
101
|
-
src/h3lib/include/h3api.h
|
102
|
+
src/h3lib/include/h3api.h
|
data/ext/h3/src/CHANGELOG.md
CHANGED
@@ -7,6 +7,15 @@ The public API of this library consists of the functions declared in file
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [3.5.0] - 2019-07-22
|
11
|
+
### Added
|
12
|
+
- CMake options for excluding filter applications or benchmarks from the build. (#247)
|
13
|
+
- `h3GetFaces` function to find icosahedron faces for an index, and helper function `maxFaceCount` (#253)
|
14
|
+
### Changed
|
15
|
+
- Argument parsing for all filter applications is more flexible. (#238)
|
16
|
+
### Fixed
|
17
|
+
- Fix printing program name in `h3ToHier` error messages. (#254)
|
18
|
+
|
10
19
|
## [3.4.4] - 2019-05-30
|
11
20
|
### Changed
|
12
21
|
- Local coordinate spaces cannot cross more than one icosahedron edge. (#234)
|
data/ext/h3/src/CMakeLists.txt
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright 2017
|
1
|
+
# Copyright 2017-2019 Uber Technologies, Inc.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -29,6 +29,9 @@ set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/cmake/toolchain.cmake"
|
|
29
29
|
"Toolchain to use for building this project")
|
30
30
|
|
31
31
|
option(ENABLE_COVERAGE "Enable compiling tests with coverage." ON)
|
32
|
+
option(BUILD_BENCHMARKS "Build benchmarking applications." ON)
|
33
|
+
option(BUILD_FILTERS "Build filter applications." ON)
|
34
|
+
option(BUILD_GENERATORS "Build code generation applications." ON)
|
32
35
|
|
33
36
|
if(WIN32)
|
34
37
|
set(SHELL PowerShell -Command)
|
@@ -117,9 +120,11 @@ set(APP_SOURCE_FILES
|
|
117
120
|
src/apps/applib/include/kml.h
|
118
121
|
src/apps/applib/include/benchmark.h
|
119
122
|
src/apps/applib/include/utility.h
|
123
|
+
src/apps/applib/include/args.h
|
124
|
+
src/apps/applib/lib/test.c
|
120
125
|
src/apps/applib/lib/kml.c
|
121
126
|
src/apps/applib/lib/utility.c
|
122
|
-
src/apps/applib/lib/
|
127
|
+
src/apps/applib/lib/args.c)
|
123
128
|
set(EXAMPLE_SOURCE_FILES
|
124
129
|
examples/index.c
|
125
130
|
examples/distance.c
|
@@ -149,6 +154,7 @@ set(OTHER_SOURCE_FILES
|
|
149
154
|
src/apps/testapps/testHexRanges.c
|
150
155
|
src/apps/testapps/testH3ToGeo.c
|
151
156
|
src/apps/testapps/testH3ToChildren.c
|
157
|
+
src/apps/testapps/testH3GetFaces.c
|
152
158
|
src/apps/testapps/testGeoCoord.c
|
153
159
|
src/apps/testapps/testHexRing.c
|
154
160
|
src/apps/testapps/testH3SetToVertexGraph.c
|
@@ -186,6 +192,8 @@ set(UNCONFIGURED_API_HEADER src/h3lib/include/h3api.h.in)
|
|
186
192
|
set(CONFIGURED_API_HEADER src/h3lib/include/h3api.h)
|
187
193
|
configure_file(${UNCONFIGURED_API_HEADER} ${CONFIGURED_API_HEADER})
|
188
194
|
|
195
|
+
set(INSTALL_TARGETS h3)
|
196
|
+
|
189
197
|
# Build the H3 library
|
190
198
|
add_library(h3 ${LIB_SOURCE_FILES} ${CONFIGURED_API_HEADER})
|
191
199
|
|
@@ -282,6 +290,12 @@ else()
|
|
282
290
|
)
|
283
291
|
endif()
|
284
292
|
|
293
|
+
# Release publishing
|
294
|
+
add_custom_target(update-version
|
295
|
+
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/update_version.sh
|
296
|
+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
297
|
+
)
|
298
|
+
|
285
299
|
# Website publishing
|
286
300
|
add_custom_target(publish-website
|
287
301
|
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/scripts/publish_website.sh
|
@@ -301,43 +315,58 @@ macro(add_h3_executable name)
|
|
301
315
|
endif()
|
302
316
|
endmacro()
|
303
317
|
|
304
|
-
|
305
|
-
|
306
|
-
add_h3_executable(
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
318
|
+
if(BUILD_FILTERS)
|
319
|
+
macro(add_h3_filter name)
|
320
|
+
add_h3_executable(${ARGV})
|
321
|
+
list(APPEND INSTALL_TARGETS ${name})
|
322
|
+
endmacro()
|
323
|
+
|
324
|
+
add_h3_filter(geoToH3 src/apps/filters/geoToH3.c ${APP_SOURCE_FILES})
|
325
|
+
add_h3_filter(h3ToComponents src/apps/filters/h3ToComponents.c ${APP_SOURCE_FILES})
|
326
|
+
add_h3_filter(h3ToGeo src/apps/filters/h3ToGeo.c ${APP_SOURCE_FILES})
|
327
|
+
add_h3_filter(h3ToLocalIj src/apps/filters/h3ToLocalIj.c ${APP_SOURCE_FILES})
|
328
|
+
add_h3_filter(localIjToH3 src/apps/filters/localIjToH3.c ${APP_SOURCE_FILES})
|
329
|
+
add_h3_filter(h3ToGeoBoundary src/apps/filters/h3ToGeoBoundary.c ${APP_SOURCE_FILES})
|
330
|
+
add_h3_filter(hexRange src/apps/filters/hexRange.c ${APP_SOURCE_FILES})
|
331
|
+
add_h3_filter(kRing src/apps/filters/kRing.c ${APP_SOURCE_FILES})
|
332
|
+
add_h3_filter(h3ToGeoBoundaryHier src/apps/miscapps/h3ToGeoBoundaryHier.c ${APP_SOURCE_FILES})
|
333
|
+
add_h3_filter(h3ToGeoHier src/apps/miscapps/h3ToGeoHier.c ${APP_SOURCE_FILES})
|
334
|
+
add_h3_filter(h3ToHier src/apps/miscapps/h3ToHier.c ${APP_SOURCE_FILES})
|
335
|
+
|
336
|
+
# Generate KML files for visualizing the H3 grid
|
337
|
+
add_custom_target(create-kml-dir
|
338
|
+
COMMAND ${CMAKE_COMMAND} -E make_directory KML)
|
339
|
+
add_custom_target(kml)
|
340
|
+
|
341
|
+
# Only the first 3 resolution grids are generated. The others can be generated,
|
342
|
+
# but the file sizes would be very, very large.
|
343
|
+
foreach(resolution RANGE 3)
|
344
|
+
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "KML/res${resolution}cells.kml")
|
345
|
+
set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES "KML/res${resolution}centers.kml")
|
346
|
+
add_custom_target(kml_cells_${resolution}
|
347
|
+
COMMAND ${SHELL} "$<TARGET_FILE:h3ToHier> ${resolution} | $<TARGET_FILE:h3ToGeoBoundary> 1 res${resolution}cells.kml \"Res ${resolution} Cells\" > KML/res${resolution}cells.kml"
|
348
|
+
VERBATIM
|
349
|
+
DEPENDS create-kml-dir)
|
350
|
+
add_custom_target(kml_centers_${resolution}
|
351
|
+
COMMAND ${SHELL} "$<TARGET_FILE:h3ToHier> ${resolution} | $<TARGET_FILE:h3ToGeo> 1 res${resolution}centers.kml \"Res ${resolution} Centers\" > KML/res${resolution}centers.kml"
|
352
|
+
VERBATIM
|
353
|
+
DEPENDS create-kml-dir)
|
354
|
+
add_dependencies(kml
|
355
|
+
kml_cells_${resolution}
|
356
|
+
kml_centers_${resolution})
|
357
|
+
endforeach()
|
358
|
+
endif()
|
359
|
+
|
360
|
+
if(BUILD_GENERATORS)
|
361
|
+
# Code generation
|
362
|
+
add_h3_executable(generateBaseCellNeighbors src/apps/miscapps/generateBaseCellNeighbors.c ${APP_SOURCE_FILES})
|
363
|
+
add_h3_executable(generateNumHexagons src/apps/miscapps/generateNumHexagons.c ${APP_SOURCE_FILES})
|
364
|
+
add_h3_executable(generateFaceCenterPoint src/apps/miscapps/generateFaceCenterPoint.c ${APP_SOURCE_FILES})
|
365
|
+
|
366
|
+
# Miscellaneous testing applications - generating random data
|
367
|
+
add_h3_executable(mkRandGeo src/apps/testapps/mkRandGeo.c ${APP_SOURCE_FILES})
|
368
|
+
add_h3_executable(mkRandGeoBoundary src/apps/testapps/mkRandGeoBoundary.c ${APP_SOURCE_FILES})
|
369
|
+
endif()
|
341
370
|
|
342
371
|
if(BUILD_TESTING)
|
343
372
|
option(PRINT_TEST_FILES "Print which test files correspond to which tests" OFF)
|
@@ -463,6 +492,7 @@ if(BUILD_TESTING)
|
|
463
492
|
add_h3_test(testHexRanges src/apps/testapps/testHexRanges.c)
|
464
493
|
add_h3_test(testH3ToParent src/apps/testapps/testH3ToParent.c)
|
465
494
|
add_h3_test(testH3ToChildren src/apps/testapps/testH3ToChildren.c)
|
495
|
+
add_h3_test(testH3GetFaces src/apps/testapps/testH3GetFaces.c)
|
466
496
|
add_h3_test(testMaxH3ToChildrenSize src/apps/testapps/testMaxH3ToChildrenSize.c)
|
467
497
|
add_h3_test(testH3Index src/apps/testapps/testH3Index.c)
|
468
498
|
add_h3_test(testH3Api src/apps/testapps/testH3Api.c)
|
@@ -487,11 +517,9 @@ if(BUILD_TESTING)
|
|
487
517
|
add_h3_test_with_arg(testH3NeighborRotations src/apps/testapps/testH3NeighborRotations.c 0)
|
488
518
|
add_h3_test_with_arg(testH3NeighborRotations src/apps/testapps/testH3NeighborRotations.c 1)
|
489
519
|
add_h3_test_with_arg(testH3NeighborRotations src/apps/testapps/testH3NeighborRotations.c 2)
|
520
|
+
endif()
|
490
521
|
|
491
|
-
|
492
|
-
add_h3_executable(mkRandGeo src/apps/testapps/mkRandGeo.c ${APP_SOURCE_FILES})
|
493
|
-
add_h3_executable(mkRandGeoBoundary src/apps/testapps/mkRandGeoBoundary.c ${APP_SOURCE_FILES})
|
494
|
-
|
522
|
+
if(BUILD_BENCHMARKS)
|
495
523
|
# Benchmarks
|
496
524
|
add_custom_target(benchmarks)
|
497
525
|
|
@@ -552,8 +580,7 @@ configure_package_config_file(
|
|
552
580
|
# * headers can be included by C++ code `#include <h3/h3api.h>`
|
553
581
|
# Installing the library and filters system-wide.
|
554
582
|
install(
|
555
|
-
TARGETS
|
556
|
-
kRing h3ToGeoBoundaryHier h3ToGeoHier h3ToHier
|
583
|
+
TARGETS ${INSTALL_TARGETS}
|
557
584
|
EXPORT "${TARGETS_EXPORT_NAME}"
|
558
585
|
LIBRARY DESTINATION "lib"
|
559
586
|
ARCHIVE DESTINATION "lib"
|
data/ext/h3/src/RELEASE.md
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
# Release Process
|
2
2
|
|
3
3
|
1. Create a PR "Preparing for release X.Y.Z" against master branch
|
4
|
-
* Update VERSION to `X.Y.Z`
|
5
4
|
* Alter CHANGELOG.md from `[Unreleased]` to `[X.Y.Z] YYYY-MM-DD`
|
5
|
+
* Run `make update-version` and give `X.Y.Z` when prompted
|
6
|
+
* Check that all merges that need to be in the changelog are present
|
6
7
|
|
7
8
|
2. Create a release "Release X.Y.Z" on Github
|
8
9
|
* Create Tag `vX.Y.Z`
|
data/ext/h3/src/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.
|
1
|
+
3.5.0
|
@@ -1,12 +1,14 @@
|
|
1
1
|
# Indexing functions
|
2
2
|
|
3
|
+
These function are used for finding the H3 index containing coordinates, and for finding the center and boundary of H3 indexes.
|
4
|
+
|
3
5
|
## geoToH3
|
4
6
|
|
5
7
|
```
|
6
8
|
H3Index geoToH3(const GeoCoord *g, int res);
|
7
9
|
```
|
8
10
|
|
9
|
-
Indexes the location at the specified resolution.
|
11
|
+
Indexes the location at the specified resolution, returning the index of the cell containing the location.
|
10
12
|
|
11
13
|
Returns 0 on error.
|
12
14
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# Index inspection functions
|
2
2
|
|
3
|
+
These functions provide metadata about an H3 index, such as its resolution or base cell, and provide utilities for converting into and out of the 64-bit representation of an H3 index.
|
4
|
+
|
3
5
|
## h3GetResolution
|
4
6
|
|
5
7
|
```
|
@@ -57,3 +59,21 @@ int h3IsPentagon(H3Index h);
|
|
57
59
|
```
|
58
60
|
|
59
61
|
Returns non-zero if this index represents a pentagonal cell.
|
62
|
+
|
63
|
+
## h3GetFaces
|
64
|
+
|
65
|
+
```
|
66
|
+
void h3GetFaces(H3Index h, int* out);
|
67
|
+
```
|
68
|
+
|
69
|
+
Find all icosahedron faces intersected by a given H3 index and places them in the array `out`. `out` must be at least of length `maxFaceCount(h)`.
|
70
|
+
|
71
|
+
Faces are represented as integers from 0-19, inclusive. The array is sparse, and empty (no intersection) array values are represented by -1.
|
72
|
+
|
73
|
+
### maxFaceCount
|
74
|
+
|
75
|
+
```
|
76
|
+
int maxFaceCount(H3Index h3);
|
77
|
+
```
|
78
|
+
|
79
|
+
Returns the maximum number of icosahedron faces the given H3 index may intersect.
|
data/ext/h3/src/docs/api/misc.md
CHANGED
@@ -6,6 +6,10 @@ As a C library, bindings can be made to call H3 functions from different program
|
|
6
6
|
|
7
7
|
- [entrepreneur-interet-general/h3.standard](https://github.com/entrepreneur-interet-general/H3.Standard)
|
8
8
|
|
9
|
+
## ClickHouse
|
10
|
+
|
11
|
+
- [geoToH3 function, since version 19.11](https://github.com/yandex/ClickHouse/blob/master/dbms/src/Functions/geoToH3.cpp#L35)
|
12
|
+
|
9
13
|
## ECL
|
10
14
|
|
11
15
|
- [hpcc-systems/HPCC-Platform](https://github.com/hpcc-systems/HPCC-Platform/tree/master/plugins/h3)
|
@@ -2,6 +2,18 @@
|
|
2
2
|
|
3
3
|
This page lists further learning materials and code walkthroughs for the H3 library and bindings. Contributions to this list are welcome, please feel free to open a [pull request](https://github.com/uber/h3/tree/master/docs/community/tutorials.md).
|
4
4
|
|
5
|
+
## Videos
|
6
|
+
|
7
|
+
- [Introduction to H3](https://www.youtube.com/watch?v=wDuKeUkNLkQ) (June 2019)
|
8
|
+
- [Engineering an H3-based Geospatial Data Platform at Uber](https://www.youtube.com/watch?v=aCj-YVZ0mlE)
|
9
|
+
- [Building City Cores with H3](https://www.youtube.com/watch?v=PutOhe8HVNU)
|
10
|
+
- [H3-js: Hexagons in the Browser](https://www.youtube.com/watch?v=BsMIrBHLfLE&list=PLLEUtp5eGr7CNf9Bj3w3i30rzaU8lKZeV&index=16&t=0s)
|
11
|
+
- [Hexagon Convolution for Data Smoothing & Forecasting](https://www.youtube.com/watch?v=z3PaGIQTFSE&list=PLLEUtp5eGr7CNf9Bj3w3i30rzaU8lKZeV&index=14&t=0s)
|
12
|
+
- [Spatial Intelligence Using Hex](https://www.youtube.com/watch?v=0OlIpNAqokQ&list=PLLEUtp5eGr7CNf9Bj3w3i30rzaU8lKZeV&index=18&t=0s)
|
13
|
+
- [Hierarchical Hexagons in Depth](https://www.youtube.com/watch?v=UILoSqvIM2w&list=PLLEUtp5eGr7CNf9Bj3w3i30rzaU8lKZeV&index=15&t=0s)
|
14
|
+
- [H3: Tiling the Earth with Hexagons](https://www.youtube.com/watch?v=_-265mfMzl4&list=PLLEUtp5eGr7CNf9Bj3w3i30rzaU8lKZeV&index=22&t=0s) (Introduction to H3, November 2018)
|
15
|
+
- [H3: Tiling the Earth with Hexagons](https://www.youtube.com/watch?v=ay2uwtRO3QE) (Introduction to H3, January 2018)
|
16
|
+
|
5
17
|
## Java
|
6
18
|
|
7
19
|
- [H3 Measurements](https://github.com/isaacbrodsky/h3measurements): Measurements of average cell area, average cell perimeter length, truncation error, and so on.
|
@@ -0,0 +1,50 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
# Copyright 2019 Uber Technologies, Inc.
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
|
16
|
+
# This script is used interactively as part of the H3 release process
|
17
|
+
# (RELEASE.md) to update the version number in the VERSION file. Before
|
18
|
+
# writing the new version to the file, changelog information is presented
|
19
|
+
# for verification. It is invoked by the make target `update-version`.
|
20
|
+
|
21
|
+
set -eo pipefail
|
22
|
+
|
23
|
+
CURRENT_VERSION=$(<VERSION)
|
24
|
+
echo "Current version: $CURRENT_VERSION"
|
25
|
+
CURRENT_TAG="v$CURRENT_VERSION"
|
26
|
+
|
27
|
+
if ! git rev-parse $CURRENT_TAG -- > /dev/null 2>&1; then
|
28
|
+
echo "Could not locate $CURRENT_TAG as a Git revision."
|
29
|
+
exit 1
|
30
|
+
fi
|
31
|
+
|
32
|
+
REVISION_RANGE="$CURRENT_TAG..HEAD"
|
33
|
+
|
34
|
+
read -p "Next version: " NEXT_VERSION
|
35
|
+
|
36
|
+
echo -e "\n * Changelog entries *"
|
37
|
+
git diff $REVISION_RANGE -- CHANGELOG.md
|
38
|
+
echo -e "\n * Committed merges *"
|
39
|
+
git log --merges --oneline $REVISION_RANGE
|
40
|
+
|
41
|
+
echo
|
42
|
+
read -p "Are all changes in the changelog [y/N]? " CHANGELOG_OK
|
43
|
+
if [ "y" = "$CHANGELOG_OK" ] || [ "Y" = "$CHANGELOG_OK" ]; then
|
44
|
+
echo $NEXT_VERSION > VERSION
|
45
|
+
echo "Wrote $NEXT_VERSION to the VERSION file"
|
46
|
+
else
|
47
|
+
echo "Cancelled - did not write VERSION file"
|
48
|
+
echo "Please update the CHANGELOG with the appropriate entries before bumping the version."
|
49
|
+
exit 2
|
50
|
+
fi
|