Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <string>#include <vector>#include <cmath>using namespace std;const double R = 6000000;const double PI = acos(-1.0);string base32="0123456789bcdefghjkmnpqrstuvwxyz";vector<int> index(256);string getGeoHash(double latitude,double longitude,int l=6) {string res;res.reserve(8);int n = l*5;vector<double> lati_range {-90,90};vector<double> longi_range{-180,180};int bits = 0;for(int i = 0; i < n; i++) {if(i%2==0) {double m = (longi_range[0] + longi_range[1])/2;if(longitude > m) {bits = bits * 2 + 1;longi_range[0] = m;} else {bits = bits * 2;longi_range[1] = m;}} else {double m = (lati_range[0] + lati_range[1])/2;