爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 11072|回复: 76
收起左侧

[Flash修改] NPS-ver-0.40-beta发布,6688实现定位功能!补图了.

[复制链接]
发表于 2005-8-7 00:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

x
发个图:这是0.3版:

这是在我公司里,有个基站的数据没有收入,所以显示为"未知ID"
但区域代码有,所以,能认出地区来.


                               
登录/注册后可看大图


    定位原理:

      手机和基站通讯时,基站会发给手机(手机会收到)基站ID和区域ID,而每个基站的位置是固定的,这样,根据基站的编号就可以判断你手机所在的位置,也就是你的位置。
而要用JAVA程序得到基站ID,就要刷程序中附带的补丁,这个补丁让JAVA程序可以读小8的内存,来得到基站ID。
  JAVA程序得到的基站ID就好办了,KONCA最早写了KONGPS,这就是所有内似程序的雏形,但还没有定位的功能,但已经让大家看到了希望!

http://mobile.0110.cn/viewthread.php?tid=8392

  之后出现了NPS及衍生版本,如NJGPS(南京GPS)、QGGPS(全国GPS)等,任何人只要收集了ID,都可以自己做出自己的NPS,它是在JAVA程序编译时把ID和地址的对应关系加了进去,基本实现了定位的功能。所有这些程序都依赖于ID收集,AHUI做了网站可以完成ID的收集的规类工作,并可以生成NPS所需要的代码。但NPS在增加这、些ID时要重新编译,使用不是很方便,还要一定的JAVA基础(虽然要求不高,一般人看一下都能完成);

[url]http://mobile.0110.cn/viewthread.php?tid=10505

提交ID并生成代码:
http://www.cidu.net/gps/gps.asp

  嘟嘟雄大侠为了方便收集ID,写了一个LOCATER,可以让你随时收集ID,说明基站对应的ID和地址的对应关系;

http://mobile.0110.cn/viewthread.php?tid=10885

  再后来,出现了GPS6688,这是基于地图的GPS类软件,可以在6688上浏览地图,也可以定位,同样也要收集ID并管理,现在已经可以使用,但还需要完善。

http://mobile.0110.cn/viewthread.php?tid=10913
现在缺的是基站ID还不足,需要大家收集!请到这里提交!
http://www.cidu.net/gps/gps.asp

***************************************************************************
     以下为NPS-ver-0.30内容:

      首先声明,这并不是一个基于基站定位的完善版本,也不具备手机上管理基站数据的能力,因为它(NPS-ver-0.30)并没有在程序中使用“数据库”或者类似技术。NPS-ver-0.30只是让你在电脑上完成对基站编号(Cell ID)和区域编号(Area ID)与地址的对应关系进行管理,这一切,都是J2ME程序(也就是NPS-ver-0.30)在编译成JAVA程序时把“数据库”做到了程序里面,每次你管理数据时,都需要对NPS-ver-0.30进行重新编译(幸运的是,J2ME程序在编译时并不需要很长时间,只要你安装好了Jbuilder 9.0和SMTK)。
这个程序来源于Konca和他在KonGPS ver 0.1中提到的许多作者完成的KonGPS ver 0.1,本程序只是在原程序中加入了基站编号(Cell ID)和区域编号(Area ID)与地址的对应关系的判断语句,其它并没有实质性的改变,作者fsclub并不会JAVA开发,甚至搞不清JDK和SMTK的关系,以前只是在大学中学过C和自学了一点C++(搞不清那些什么类,公有私有,重载什么的),没有学过JAVA,但这一切都没关系,因为JAVA的语法和C差不多,正是因为这一点,之前才放出了那个灌水贴,因为没有搞清JAVA中的什么“句柄”的概念,看了《Thinking in JAVA》第三章关于JAVA关系运算中一些与C的不同之处,才明白了以前的错误理解。

在这里下载程序样例:
http://www.MP3-CN.com/6688/nps/index.htm

下面从使用的角度说明这个程序的用法。
1. 安装JBuilder 9.0;
2. 安装SMTK;
3. 对压缩包解压出NPS-ver-0.30文件夹;
4. 在Jbuilder9.0中打开工程文件konGPS.jpx;
5. 对原程序进行修改(添加基站数据),编译;
6. 将NPS-ver-0.30文件夹中的konGPS.jar和konGPS.jad两个文件拷贝到西门子6688的MMC中的JAVA/jam/NPS-ver-0.30文件夹中(NPS-ver-0.30文件夹需要自己在MMC中创建);
7. 在手机中运行NPS-ver-0.30,这时,就得到了你想要的结果!

下面分别说明具体做法和注意事项:

1. 安装JBuilder 9.0和SMTK:
  安装过程见下面的文件:SMTK_dev.pdf
http://www.cnjm.net/newpage/res.php?id=000126(约300K)
JBuilder9.0下载地址:
http://www.cnyou.com/down/down.asp?id=576&no=1(约160M)
当然也可以在网上找到JB9.0的注册方法;
SMTK的下载地址:
http://www.cnjm.net/newpage/res.php?id=000103(约10M)
当然也可以在网上找到SMTK的注册方法;
也许,在安装SMTK前,会要求你安装SMTK核心:
http://www.cnjm.net/newpage/res.php?id=000102(约10M)

2. 下载NPS-ver-0.3压缩包:
http://www.MP3-CN.com/6688/nps/index.htm

3. 解压缩后打开Jbuilder9.0,按照SMTK_dev.pdf中的说明进行JB9的设置后,打开NPS-ver-0.3中的konGPS.jpx文件,在左上方的窗口中找到“mainCanvas.java”,双击打开,在右边第96行和123行处加入以90行和117行为示例的代码;
例如:
你的工模中的区域码为0538,基站ID为06a5,你所在地区为青岛李沧区枣园路,
         则在第96行处加入      
                   if ("5328".equals(midlet.strAreaID))
                    {strAreaID = "青岛李沧区";break;}
         在第123行处加入
                    if ("06a5".equals(midlet.strCellID))
                    {strCellID = "枣园路";break;}
这时,若你有多个区域码和基站ID要添加,则多次加入这两个IF判断语句,就实现了多个区域码和基站ID的添加。
例如,作者fsclub在第96行处加入了:
if ("5321".equals(midlet.strAreaID))
{strAreaID = "青岛市南区"; break;}
if ("5323".equals(midlet.strAreaID))
{ strAreaID = "青岛城阳区"; break;}
……………………………………….
……………………………………….
在第123行处添加了:
if ("0701".equals(midlet.strCellID))
{ strCellID = "苇山二路";break; }
if ("0733".equals(midlet.strCellID))
{ strCellID = "仙家寨河边"; break;}
…………………………………….
…………………………………….

       注意,这里的区域名和地址名的字数必须小于等于5个字,否则在程序中不能完全显示!
4. 添加完成后,就可以在菜单中的PROJECT菜单中点击“Make project “konGPS.jpx””,几秒后编译完成,再将NPS-ver-0.30文件夹中编译完成的konGPS.jar和konGPS.jad两个文件拷贝到西门子6688的MMC中的JAVA/jam/NPS-ver-0.30文件夹中(NPS-ver-0.30文件夹需要自己在MMC中创建);
5. 在手机中运行NPS-ver-0.30,这时,就得到了你想要的结果!

注意以上软件代码遵循GPL发布(http://www.gnu.org/copyleft/gpl.html),请保留作者信息。


另外,如果你收集了ID,但你无法下载那么大(约190M)的几个文件(或者不能安装)搭建JAVA开发环境,请将你收集的区域ID和基站ID以下列形式编辑:

请帮我在第96行处加入:
if ("5321".equals(midlet.strAreaID))
{strAreaID = "青岛市南区"; break;}
if ("5323".equals(midlet.strAreaID))
{ strAreaID = "青岛城阳区"; break;}
……………………………………….
……………………………………….
请帮我在第123行处添加:
if ("0701".equals(midlet.strCellID))
{ strCellID = "苇山二路";break; }
if ("0733".equals(midlet.strCellID))
{ strCellID = "仙家寨河边"; break;}
…………………………………….
…………………………………….

将其保存为文本文件(ID.TXT),以E-mail的形式发给我,我将在我的可能的时间里为你编译,并将编译好看的程序发回你的信箱,为了节省时间,请一定以上面所指的TXT格式发给我(一定包含程序代码),我可以复制到代码中为你编译,否则,可能不能为你编译,请谅解。


20050826
我原来的IBM硬盘坏了,所有下载的东西都没有了,所以现在也没有办法为大家编译.请大家谅解.

[B]    1月13日1:46更新:
    用4位16进制来对基站进行编码,最大为FFFF,也就是最大为65536个基站.我想,中国应该不只这么一点基站..我也考虑了这个问题.首先再三说明,这并不是一个完善的版本.昨天上午已经和ahui讨论了,在他那个站上
http://www.cidu.net/gps/gps.asp
数据会自动按市生成.也就是说,在编译时可以控制每个市生成一个NPS-ver-0.30的代码,就避免了异地的基站ID可能相同的这种可能的情况的发生.
希望大家到
http://www.cidu.net/gps/gps.asp
提交数据,这样可以方便得到代码,你只需要复制和粘贴可以了!还会按市生成代码,避免了一些问题的产生!
[/B]

更新的在这里:

http://www.MP3-CN.com/6688/nps/index.htm

**************************************************************
**************************************************************

NPS-ver-0.40-beta发布,实现区域ID和基站ID关联!(2004年1月14日更新)

这是部分程序流程(点击看大图):

[upload=jpg]UploadFile/200411416484972032.jpg[/upload]

点击看大图

在特定的基站ID中只显示属于这个区域ID的基站ID,避免了不同区域ID中可能有相同基站ID而产生的错误。每个区域ID都需要一段下面这个Example的代码。在每个区域ID中分别加入属于它们自己的基站ID。
//********************************************************************
//    Start Example  Start Example  Start Example  Start Example
//********************************************************************
     int i=0;     while(i<1){
if ("5328".equals(midlet.strAreaID))
            {strAreaID = "青岛李沧区";y++;
       int t=0;  while(t<1) {
        if ("06a5".equals(midlet.strCellID))
              { strCellID = "枣园路"; break;}
        if ("0407".equals(midlet.strCellID))
              {strCellID = "北山";  break;}
// Add the programe Codes in the following:
//在这里加入基站编号确定地址的程序代码(加入的基站ID必须是属于这一区域
//码ID中的,如上面的基站ID-->"06a5"和"0407"这两个基站ID都是属于区域ID-->"5328"):

//以上表示同一个区域ID下的每个基站ID.
           strCellID = midlet.strCellID+"--未知ID"; t++;   }
      } break;
}

注意:

因为在EXAMPLE中第一行定义了"     int i=0;     while(i<1){    "
在不删除EXAMPLE那段代码的前提下,
在后面你加的代码中就不再需要定义 ''int i'',只需要 “     i=0;     while(i<1){  ”
也就是在你加和代码中去掉  “int ”。

下载新版程序NPS-ver-0.40-beta样例:

更新的在这里:
http://www.MP3-CN.com/6688/nps/index.htm

  个人认为还是NPS-ver-0.30好用。程序简单,只要保证你的区域ID和基站ID都是同一个城市的,那么,就一定不会出问题。


**************************************************************

[ 本帖最后由 fsclub 于 2006-3-22 16:26 编辑 ]
发表于 2005-8-26 13:15:08 | 显示全部楼层
谁有这个 NPS 0.30 / 0.40 ?我想要一份
回复 支持 反对

使用道具 举报

发表于 2005-8-26 14:34:05 | 显示全部楼层
我坐上板凳了。虽然看不懂,软件我不会
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-26 15:45:16 | 显示全部楼层
上面的链接已经更新,已经可以正常下载了.
回复 支持 反对

使用道具 举报

发表于 2005-8-26 17:47:14 | 显示全部楼层
晕,看不懂,但是还是支持~~~~~
回复 支持 反对

使用道具 举报

发表于 2005-8-26 17:49:30 | 显示全部楼层
顶一下~LZ花了不少力写的。。。。
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2005-8-26 18:13:19 | 显示全部楼层
我是真的看不懂,很很的支持,努力的顶
回复 支持 反对

使用道具 举报

发表于 2005-8-26 18:36:02 | 显示全部楼层
完全不知道要怎么弄!
谁教教我啊?
回复 支持 反对

使用道具 举报

发表于 2005-8-26 18:49:19 | 显示全部楼层
占个位置先!            
回复 支持 反对

使用道具 举报

发表于 2005-8-26 19:00:56 | 显示全部楼层
这么好的帖子的顶!
回复 支持 反对

使用道具 举报

发表于 2005-8-26 19:25:33 | 显示全部楼层
好东西
回复 支持 反对

使用道具 举报

发表于 2005-8-26 19:27:22 | 显示全部楼层
看不懂,谁写个简单得范略给大家看看
回复 支持 反对

使用道具 举报

发表于 2005-8-26 19:36:48 | 显示全部楼层
不明白,具体怎么做?
回复 支持 反对

使用道具 举报

发表于 2005-8-26 23:40:23 | 显示全部楼层
不容易明白,纯帮顶
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-27 08:47:41 | 显示全部楼层
看不懂的可以到东北网去看看老贴:
http://bbs.my-mobile.cn/viewthread.php?tid=10505

这个贴子真的很老,可能都一年多了,那里有很多人的讨论,看完了你可能就明白了,
20050826
我原来的IBM硬盘坏了,所有下载的东西都没有了,所以现在也没有办法为大家编译.请大家谅解.

[ 本帖最后由 fsclub 于 2005-8-27 17:04 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2005-8-27 10:58:00 | 显示全部楼层
我提供收集的区域ID和基站ID,楼主可以帮生成0。4版的文件吗?
回复 支持 反对

使用道具 举报

发表于 2005-8-27 11:19:20 | 显示全部楼层
个人认为其实没必要做这么复杂的显示到很细的地址。再说这个这么详细的地址的数据库势必大得不得了。
觉得如果有全国的比较全的能定位到显示地区的数据库就够了。
回复 支持 反对

使用道具 举报

发表于 2005-8-27 11:40:46 | 显示全部楼层
支持...........
回复 支持 反对

使用道具 举报

发表于 2005-8-28 16:14:49 | 显示全部楼层
这么好的东东 !!
  应该义无返顾的顶上去
回复 支持 反对

使用道具 举报

发表于 2005-8-28 16:57:00 | 显示全部楼层
辛苦了 ,支持一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-9-25 02:48

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表