我用的是WindowsMobile的智能手机,上面有 谷歌地图 ,打开这个软件,即使不开GPS定位功能也能显示我的位置,基本上很准.
开了GPS定位后就更准了.
GPS定位的原理很清楚,但这种不开GPS时也能定位我却不大明白,谷歌不至于有所有基站的坐标数据库吧.(我在太原)

解决方案 »

  1.   

    谷歌一下http://hi.baidu.com/ant_mobile/blog/item/6d619b11042fd2f7c2ce7950.html基站分布图,通过基站定位数据来看google基站数据分布
    2009-12-22 20:13
          无论是应用更广泛的gps定位,还是基站定位、Wi-Fi定位,都需要依托于强大精确的地图,而google这位行业老大哥无论从技术还是实力都明显更胜一筹,很有可能在新一轮的拼图大赛中夺得桂冠。google搜集了全球大部分的GSM基站数据,为我们的出行提供了极大的便利。ant站长根据网友在Mobiletrack上进行基站定位以及基站查询搜集到的数据绘制了一张google基站数据中国部分的分布图。搜集到的数据只占google基站数据库的一小部分,所以这张图并不能完整的展现google基站数据库,但是从这张图中我们还是可以看出一些讯息。      1 google的基站数据库分布是有规律的,东部沿海一线地区以及中部较发达地区的基站数据更多,西部偏少。当然这其中还有一个重要原因是本身移动基站的分布规律也是如此的。      2 所有的基站定位数据都是使用Google maps客户端通过GPS上传的,所以这张图也可以看做是带GPS的Google maps用户的分布图。       3 这张图也可以看出使用Mobiletrack和通过anttna.com查询基站信息的用户的分布图。
      

  2.   

    看个移动公司给用户提供的通讯协议的例子:http://www.cobub.com/lbs/?developer
      

  3.   

    可以看看这个http://wenku.baidu.com/view/8c9bc7d5b9f3f90f76c61b9e.html
      

  4.   

    #define WRITE_FILE_FREE_BUF(pucBuf, iBufLen, fp, pAddr)\
    if (1 != CCU_FWrite(pucBuf, iBufLen, 1, fp))\
    {\
        CCU_FClose( fp );\
        CCU_MemFree(CCU_MEM_INFO, pAddr);\
        pAddr = CCU_NULL_PTR;\
        return CCU_ERR;\
    }/* 485发送消息调试定位打印 */
    #define CCU_SEND_TO_MONITOR_NODE(ulResourceId, pucData, ulLength)\
    if(CCU_TRUE == g_ulCommSendParam)\
    {\
        UINT32 j = 0;\
        INT32  iSec = 0;\
        INT32  iUSec = 0;\
        struct timeval tv;\
        struct timezone tz;\
        gettimeofday (&tv , &tz);\
        iUSec = tv.tv_usec;\
        iSec  = tv.tv_sec;\
        CCU_Printf("\r\n---ccu-->485node: _ulResId: 0x%x, _len:%d, _iSec:%lu , _time:%d--\r\n",\
                     (unsigned int)ulResourceId, (int)ulLength,(UINT32)iSec, (int)iUSec);\
        for (j = 0; ((j < 64) && (j < (ulLength))); j++)\
        { \
            CCU_Printf("%2X ", (unsigned int)pucData[j]); \
            if (0 == ((j+1) % 32)) \
                CCU_Printf("\r\n"); \
        } \
        CCU_Printf("\r\n"); \
    }
      

  5.   

     CCU_Printf("\r\n---485node-->ccu: _ucChanNum: %d, _ulLen:%d, _iSec:%lu ,_ulUSec:%d--\r\n",\
                     ucChanNum, (int)ulLen, (UINT32)iSec,(int)iUSec);\