#include #include #include #include "s2/s2earth.h" #include "s2/s2cell_id.h" #include "s2/s1angle.h" using namespace std; uint64 latLonStringsToCellId(string latString, string lonString) { S1Angle lat = S1Angle::Degrees(atof(latString.c_str())); S1Angle lon = S1Angle::Degrees(atof(lonString.c_str())); S2LatLng latLng = S2LatLng(lat, lon).Normalized(); S2CellId s2CellId = S2CellId(latLng); return s2CellId.id(); } int main(int argc, char **argv) { fstream file; file.open("./sample-lat-lon.csv", fstream::in); if (!file) { cerr << "Could not open input file" << endl; exit(1); } string latString = ""; string lonString = ""; string header; getline(file, header, '\n'); cout << header << ",cellid" << "\n"; while (getline(file, latString, ',')) { getline(file, lonString, '\n') ; uint64 generatedCellId = latLonStringsToCellId(latString, lonString); cout << latString << "," << lonString << "," << generatedCellId << "\n"; } return 0; }