in src/apps/filters/h3.c [67:117]
bool latLngToCellCmd(int argc, char *argv[]) {
int res = 0;
double lat = 0;
double lng = 0;
Arg latLngToCellArg = {
.names = {"latLngToCell"},
.required = true,
.helpText =
"Convert degrees latitude/longitude coordinate to an H3 cell.",
};
Arg helpArg = ARG_HELP;
Arg resArg = {.names = {"-r", "--resolution"},
.required = true,
.scanFormat = "%d",
.valueName = "res",
.value = &res,
.helpText = "Resolution, 0-15 inclusive."};
Arg latArg = {.names = {"--lat", "--latitude"},
.required = true,
.scanFormat = "%lf",
.valueName = "lat",
.value = &lat,
.helpText = "Latitude in degrees."};
Arg lngArg = {.names = {"--lng", "--longitude"},
.required = true,
.scanFormat = "%lf",
.valueName = "lng",
.value = &lng,
.helpText = "Longitude in degrees."};
Arg *args[] = {&latLngToCellArg, &helpArg, &resArg, &latArg, &lngArg};
if (parseArgs(
argc, argv, sizeof(args) / sizeof(Arg *), args, &helpArg,
"Convert degrees latitude/longitude coordinate to an H3 cell.")) {
return helpArg.found;
}
LatLng ll = {.lat = H3_EXPORT(degsToRads)(lat),
.lng = H3_EXPORT(degsToRads)(lng)};
H3Index c;
H3Error e = H3_EXPORT(latLngToCell)(&ll, res, &c);
// TODO: Add support for JSON formatting
if (e == E_SUCCESS) {
h3Println(c);
} else {
h3Println(H3_NULL);
}
return true;
}