bool latLngToCellCmd()

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;
}