h3 3.4.4 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|

|
4
4
|
|
5
|
-
[](https://travis-ci.org/seanhandley/h3_ruby)
|
5
|
+
[](https://travis-ci.org/seanhandley/h3_ruby)
|
6
|
+
[](https://codeclimate.com/repos/5ca38395a86379029800281f/maintainability) [](https://coveralls.io/github/StuartApp/h3_ruby?branch=master) [](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
|