Google Maps API 编码折线算法实现
在Google Maps API二次开发中,我们碰到了编码折线算法问题,通过GPolyline.fromEncoded调用可以有效地提高呈现速度.基于网上现在没有相关的实现,下面我给出编码折线中经纬度和级别算法,以供读者参考. 它用MFC和标准c实现,其它环境请读者自行修改相关代码即可.
一. 二进制转十进制(8位)
inline int BintoDec(char* b)
{
int i,j,v;
v = 0;
int len = strlen(b);
if (len < 1) return v;
i = 0;v = 0; j = 0;
for (i = len - 1;i >=0 ;i--)
{
if (b[i] == '1')
v += (int)pow(2,j);
j++;
}
return v;
}
二. 相关算法
1. 经纬度算法
CString polyline_lonlat_encode(double num)
{
int m,i;
CStr