socketref,再见!高德

https://github.com/adoggie

  C++博客 :: 首页 :: 联系 :: 聚合  :: 管理
  246 Posts :: 4 Stories :: 312 Comments :: 0 Trackbacks

常用链接

留言簿(54)

我参与的团队

搜索

  •  

最新评论

阅读排行榜

评论排行榜

#

在swgis的flex应用框架内对于实时监控和回放界面使用stackview进行布局
 1 <mx:ViewStack id="viewstack1" width="100%" height="100%" creationPolicy="all">
 2             <s:NavigatorContent label="实时监控" width="100%" height="100%" id="GisRealView">
 3                 <s:layout>
 4                     <s:VerticalLayout/>
 5                 </s:layout>
 6                 <ns1:PaneGisRealView width="100%" height="100%">
 7                     <ns1:layout>
 8                         <s:VerticalLayout/>
 9                     </ns1:layout>
10                 </ns1:PaneGisRealView>
11             </s:NavigatorContent>
12             <s:NavigatorContent label="历史回放" width="100%" height="100%" id="GisReplayView">
13                 <s:layout>
14                     <s:VerticalLayout/>
15                 </s:layout>
16                 <ns1:PaneGisReplayView height="100%" width="100%"/>
17             </s:NavigatorContent>
18         
19         </mx:ViewStack>
stackview我通常习惯的设置为creationPolicy="all" ,因为这样的话stackview在初始化的时候将内部的所有 NavigatorContent都将进行初始化实例,如果不设置creationPolicy的话,flex将在用户切换NavigatorConent时创建实例(lazy create).
这本是个简单而且方便的设置行为,没想到在第一个view1的地图内显示feature位置都是okay的,但是切换到第二个view2的地图显示feature,发现feature对应的位置在x方向上都做了偏移。
view1.map显示linestring feature:

view2.map显示的linestring feature:


相同的linestring在两个map上显示居然位置产生了偏移,这个问题困扰了一整天和一个晚上,苦思不得其解,采用排斥法,切换view1,view2在stackview中排布次序,居然view2显示就正常了。
然后就联想到了createPolicy这个属性了,一切还原,去除这个属性(默认:lazy create),跑一下居然好了!
奇怪奇怪,没时间具体去研究这个属性在flex里面的实现机制了,就这样吧!
posted @ 2011-07-07 21:56 放屁阿狗 阅读(1311) | 评论 (0)编辑 收藏

openscales基于事件驱动,一般对地图的操作应用openscales已经提供了基本的访问框架和部件来支持不同的应用
ClickHandler处于event/mouse包内,我们遇到要处理点击地图捕捉Click,doubleClick,DropDrag时就会用到这个东东了
那很简单,我们只需要new ClickHandler(map,false) , 设置几个回调函数(click,doubleclick等等),最后调用这个handler.active =true即可
启用这个handler了。
在地图上用鼠标点击即可测试了
注意到ClickHandler里面用到了一个Timer,觉得奇怪的
 1 protected function mouseUp(evt:MouseEvent):void {
 2             if (evt) {
 3                 
 4                 this.map.removeEventListener(MouseEvent.MOUSE_MOVE,this.mouseMove);
 5                 
 6                 if (this._downPixel != null) {
 7                     // It was not a drag, but was it a simple or a double click ?
 8                     // Just wait for a timer duration to know and call the right function.
 9                     this._upPixel = new Pixel(evt.currentTarget.mouseX, evt.currentTarget.mouseY);
10                     this._ctrlKey = evt.ctrlKey;
11                     this._shiftKey = evt.shiftKey;
12                     this._clickNum++;
13                     this._timer.start();
14                 }
15             }
想了一下就明白了期间的用意,看看注释,目的是为了推迟回调,防止回调处理繁忙阻塞交互界面


posted @ 2011-07-02 00:39 放屁阿狗 阅读(523) | 评论 (0)编辑 收藏

启就的王燕同学

查询了dns解析的确没有任何问题,dns已经能正确将sw2us.com解析到61.152.116.120,好了到这里dns应该排除问题了。
通过写程序测试 80端口,如果直接ip方式访问http://61.152.116.120/,浏览器会发送http请求信息到80端口,都没有问题
但如果通过http://sw2us.com访问,问题就来了:

s.bind(('61.152.116.120',80))
s.listen(5)
ipfile=open('ips.txt','w')

while True:
try:
c,raddr = s.accept()
print raddr
time.sleep(1)
bytes = c.recv(1000)
print bytes
c.sendall('hello'*100)
c.close()
ipfile.write(str(raddr)+"\n")
ipfile.flush()
except: traceback.print_exc()
发现通过域名访问到80端口时,客户浏览器的这个链接一建立马上会被挂断(time.sleep还没执行完毕就被挂断了,导致之后接收浏览器的请求都来不 及,更不用谈回送页面数据了),而这个挂断的操作不是浏览器发起的,这定是路由环节上某一点发起的,我理解为是网络监管层。
好的,我又做telnet测试,我直接telnet sw2us.com 80 ,连上服务程序之后 输入GET / ,能正常的接收到服务器回送回来的数据,直到服务端主动挂断这个链接。
telnet与浏览器访问 sw2us.com的测试区别在于: 浏览器连接上web服务器80之后将传送http头请求,而telnet测试时并没有发送http头消息
GET / HTTP/1.1
Host: www.sw2us.com
User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-cn,zh;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: GB2312,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive

所以结论很简单,ip直接访问,网监者直接放行,而不管你是否发送http头,而域名请求时被网关根据要访问的端口和请求的协议(http根据请求包头来 判断)直接过滤掉,过滤的方法就是一旦发现目标80端口 + http协议包头,直接将刚刚建立的链接挂断,导致了浏览器一连接到webserver便丢失链接服务回送数据,导致不能正常显示网页的情况。
路由节点上做了过滤,所以很简单,去除这个限制吧!!!!

看到这个页面就没问题了! 非端口80都没问题,就这个该死的80为啥不通啊,telnet 80这个端口也是有数据过来的,定是 网监那里过滤了http消息了

posted @ 2011-06-30 10:23 放屁阿狗 阅读(203) | 评论 (0)编辑 收藏

中国特色 火星坐标

转载


http://www.unistrong.com/bbs/topic.aspx?topicid=2774
http://www.foooooot.com/club/4/topic/740/

我们平时用到的地球坐标系统,叫做WGS84坐标,国家保密插件,也叫做加密插件或者加偏或者SM模组,其实就是对真实坐标系统进行人为的加偏处理,按照 几行代码的算法,将真实的坐标加密成虚假的坐标,而这个加偏并不是线性的加偏,所以各地的偏移情况都会有所不同。而加密后的坐标也常被人称为火星坐标系 统,这是我们的国家又一个伟大的发明,让国外的政府和企业等,都看不懂我们的坐标系统。

其实很少有人知道国家保密插件问题,但作为导航电子地图产业或者汽车导航产业中的人,多多少少都会了解到这个问题。国家是出于国家安全考虑,将我们看到的 真实的坐标变成假的虚拟的坐标,这样,我们的国家就安全了,不会被恐怖分子破坏了。最简单的举例来说,比如鸟巢吧,你真实的坐标是这个,加密后就成了那 个,导航电子地图上看到的就是那个,那么人家导弹要是攻击那个的时候,那么导弹就打不中我们的鸟巢啦,我们的鸟巢就安全了。不过,个人担心这样加密后没有 打中鸟巢,会不会打中水立方呢,可能是无心插柳柳成荫了。

现在,所有的电子地图所有的导航设备,都需要加入国家保密插件。第一步,地图公司测绘地图,测绘完成后,送到国家测绘局,将真实坐标的电子地图,加密成 “火星坐标”,这样的地图才是可以出版和发布的,然后才可以让GPS公司处理。第二步,所有的GPS公司,只要需要汽车导航的,需要用到导航电子地图的, 统统需要在软件中加入国家保密算法,将COM口读出来的真实的坐标信号,加密转换成国家要求的保密的坐标,这样,GPS导航仪和导航电子地图就可以完全匹 配啦,GPS也就可以正常工作啦。

所以,所有的导航电子地图公司,像四维图新、瑞图、易图通、高德等等,都需要将自己的电子地图拿到国家测绘局进行加密处理,而所有的导航软件公司,都需要 将自己的导航软件中加入国家测绘局提供的加密算法的代码。而这一段代码,就是国家的机密,不是公开的,每次去国家测绘局加密处理都需要预约并在封闭的环境 中进行,编译完成后需要是在主程序的exe中,而不能编译在外部dll等文件中。

当然,国家的保密插件,是需要收费的,早期的时候,一个导航仪就需要10块钱的保密插件许可费,恩,保密插件也不是白用的,毕竟国家花了很多的钱和人力和 物力才做出来的保护国家安全的保密东西怎么可以随便送你用呢,收点钱也就算是正常也算是在预料之中啦。现在的话,好像已经下放到地图数据公司了,就是看这 个地图数据公司的经营状况,大概会出货多少份电子地图,然后一次性收取地图数据公司多少钱,可能是多少百万,然后这个钱呢,你们数据公司就自己找你们的导 航软件公司的客户收吧,算在每一台设备中的许可费,恩,国家的办事效率变高了,一次直接从导航电子地图公司收费比逐个收取导航软件公司的钱要来的容易和不 那么麻烦。

现阶段,有些人或者组织,为了自己的利益,将导航软件和导航地图进行破解,并发现了导航电子地图中存在的地图偏差,所以就采取人为的手段,将地图反加密, 将虚假的坐标转换成标准的WGS84坐标,最笨的方法就是线性的平移,大概偏差的距离为500米,基本上能够反回来,但误差较大,特别是南北距离加大的情 况下,而聪明一点的方法,用matlab等工具计算出其中的曲线,然后反转回来。多么的可怕那,这是触犯国家法律的行为,国家的安全就这样被你们破坏了, 这是一个刑事问题,而不是简单的破解软件破解地图的经济犯罪问题了。请大家务必务必遵守国家的法律,不要干出这样的傻事出来,出了事谁都保不了你,毕竟你 将成为国家的敌人。

最后,说说保密插件带来的弊端,好处不容忽视,国家为了安全考虑,保密了就安全了,但弊端是,制造了人为的障碍,非常的不好用,比如导航软件出来的坐标, 不能和Google Earth等国际软件匹配,Google Earth和Map在国内基本上就是废物。进一步带来的导航问题是,寻宝、分享等许多好玩的GPS活动,都无法在大陆地区展开,这一点真的让人很无奈。当 然,也有一些时候,由于导航软件的保密插件问题,导致不能导航等等。保密插件,是一个让人哭笑不得的东西,就如同国际的WGS84坐标对我们的54坐标或 者80坐标,就如同


名词总结:
地球坐标:指WGS84坐标系统
火星坐标:指使用国家保密插件人为偏移后的坐标
地球地图:指与地球坐标对应的客观真实的地图
火星地图:指经过加密偏移后的,与火星坐标对应的地图

以上内容浏览后,背景知识大概就明白了。

首先,我们手上所有的GPS设备,根据渠道和接口软件的不同,分为火星坐标设备与WGS84坐标设备两种,另外所有GPS设备中的地图以及网上的地图,分为火星地图(即人为偏移)和真实地图两种。
比如国内“正规渠道的车载GPS”,采用的是火星坐标配火星地图,完美结合,能够准确的在地球上使用,缺点就是记录的点和轨迹都是火星的,与其他地球人无法交流分享。
多数水货GPS设备,使用的都是地球坐标配火星地图,这样轨迹和航点都是真实坐标的,只不过在火星地图上偏移了
有些玩家,会将火星地图加入偏移算法(无论准确或不准确),人为纠偏,形成地球坐标配纠偏地图(自制地图),不考虑误差可以正常使用
而目前,所有正式发布的大陆境内电子地图,都是火星地图,所以只有大陆之外地区,才能够用到地球坐标与官方地球地图完美结合的解决方案
posted @ 2011-06-29 10:13 放屁阿狗 阅读(2685) | 评论 (0)编辑 收藏

其实绘画功能的代码还是比较简单的,就看你知不知道了。你需要避过几个注意点:

1、flex4 中application类已经不能再使用addChild来添加ui组件,而是要用AddElement(SpriteVisualElement)来进行添加

注意了,SpriteVisualElement这个类是在spark.core.SpriteVisualElement中,IDE中无法自动显示智能提示出这个包的位置,需要我们进行手动进行输入。具体贴出代码如下:

import mx.events.FlexEvent;
import flash.geom.Matrix;
import mx.core.UIComponent;
import spark.core.SpriteVisualElement;

private function appCompHandler(event:FlexEvent):void
{
 var testGrp:TestGraphics = event.target as TestGraphics;
 
 var sprve:SpriteVisualElement = new SpriteVisualElement;
 
 var fillType:String = GradientType.LINEAR;
 var colors:Array = [0xFF0000, 0x0000FF];
 var alphas:Array = [1, 1];
 var ratios:Array = [0x00, 0xFF];
 var matr:Matrix = new Matrix();
 matr.createGradientBox(20, 20, 0, 0, 0);
 var spreadMethod:String = SpreadMethod.PAD;
 sprve.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr, spreadMethod); 
 sprve.graphics.drawRect(0,0,100,100);

 this.addElement(sprve);
}


posted @ 2011-06-27 13:31 放屁阿狗 阅读(813) | 评论 (0)编辑 收藏

class AO_AppGroup(models.Model):
    name = models.CharField(max_length=40,db_index=True)        #组名称
    iconurl = models.CharField(max_length=40)    #图标资源
    client = models.ForeignKey('AppClient',db_index=True) #组隶属于某一个具体的用户
    aos = models.ManyToManyField('ActiveObject') #组内包含的ActiveObject
 aos = AO_AppGroup.objects.get(client__id=1).aos.filter(id=1).count()
posted @ 2011-06-21 00:14 放屁阿狗 阅读(256) | 评论 (0)编辑 收藏

http://opensource.adobe.com/wiki/display/flexsdk/FXG+2.0+Specification
posted @ 2011-06-19 09:44 放屁阿狗 阅读(265) | 评论 (0)编辑 收藏

中小GPS运营商的生存之道

http://www.gpsbao.com时间:2009-09-18来源:GPS报 关键字:GPS运营商 车辆调度
收藏此页: 新浪ViVi 添加到QQ书签 百度收藏 POCO网摘 添加到鲜果 天极网摘 我摘 和讯网摘 yahoo 收藏到收客网 Digbuzz我挖网 挖客 添加到google
中小型GPS运营如何才能在激烈的竞争中生存?本文从这一问题入手,从不同角度进行分析,以求能帮助GPS运营商找到一条适合自身发展的生存之道。

中小GPS运营商的生存之道

/李兆荣

关键词:GPS运营商 商业模式 车辆调度 车辆监控 GPS防盗

       随着我国经济的高速发展和人民生活水平的日益提高,近几年我国汽车保有量出现了井喷式的增长。据统计,2009年上半年国内汽车整体销量已近600万辆,比美国汽车市场多出100多万辆,中国超过美国,一跃成为全球最大车市。在车辆保有量飞速增长的同时,刺激了人们对交通地图、路况介绍、交通信息、安全与治安服务以及娱乐信息服务的需求。在这一背景下,很多投资者纷纷转投GPS运营商市场,尤其是中国的三大电信运营商为了在这一领域占得先机,都推出新的项目。从2007年辽宁移动试水车务通项目开始,这几年移动在车辆监控领域的动作非常大。相继推出了车务通、重庆移动的车管家,北京移动的E物流、深圳移动的物流通及广东移动的车行无忧项目。当然电信和联通也不甘示弱,联通推出的交通新时空、电信推出了类似的项目。面对着这么多压力,中小型GPS运营如何才能在激烈的竞争中生存?本文从这一问题入手,从不同角度进行分析,以求能帮助GPS运营商找到一条适合自身发展的生存之道。

一、商业模式的选择是重中之重

什么是商业模式?商业模式简单地讲就是GPS运营商通过什么途径或方式来盈利。商业模式是一种包含了一系列要素及其关系的概念性工具,用以阐明某个特定实体的商业逻辑。它描述了公司所能为客户提供的价值以及公司的内部结构、合作伙伴网络和关系资本(Relationship Capital)等用以实现(创造、推销和交付)这一价值并产生可持续盈利收入的要素。

目前国内的GPS运营商其商业模式相对简单,其盈利的方式有三大类,第一,收取客户的服务费,这是GPS运营商的主要盈利方式。第二,实施车辆GPS监控项目,赚取一定的工程费,第三,设备差价,由于现在GPS运营商为了抢夺客户资源,都是交三年服务费,免费送设备的方式,因此,设备差价这种盈利方式已经不是很明显。

从理论上看,当前GPS运营商的盈利方式没多大问题,即便如何增加内容,盈利的方式无法以上三种。那么运营商如何做才能实现收入的最大化呢?探讨这个问题,就必须先得分析运营商在整个价值链中所扮演的角色。GPS运营商其实就是SPService Provider),也就是服务提供商。SP的概念来自于移动增值服务,传统概念上讲,就是指移动互联网服务内容应用服务的直接提供者,负责根据用户的要求开发和提供适合手机用户使用的服务。SP通过电信运营商提供的增值接口为用户提供服务,然后由电信运营商在用户的手机费和宽带费中扣除相关服务费,最后电信运营商和SP再按照比例分成。传统的SP和电信运营商的合作属于紧密耦合型。而GPS运营商在和移动的合作方面不像传统的SP,属于松散型的合作模式。GPS运营商利用移动的无线网络给客户提供位置服务或其他行车过程中所需的服务,因此,电信运营商在整个价值链中承担着数据的接入服务,GPS运营商每月只需给电信运营商缴纳一定的数据流量费即可,电信运营商不会和GPS运营商就服务费进行分成。

GPS运营商的身份是服务提供商,GPS运营商在整个价值链中承担的是服务提供者的角色,服务是GPS运营商存在的根本,如果失去服务,GPS运营商就没有存在的必要。正因为如此,选择服务内容,将是GPS运营商的主要任务。

当前GPS运营商都有哪些服务内容呢?

第一、查车。通过GPS运营商提供的平台,车主可以查询车辆所处的位置,查车的方式主要包括电话查车和网络查车,操作的类型包括即时定位查询、定时定位查询、追踪定位查询。

第二、管车。管车,顾名思义就是管理车辆,主要包括实时监控和远程控制。服务内容主要表现为远程监听、自主/远程遥控设防/撤防、车门非法打开报警、非法启动报警、车门未关提示、遥控开关车门、中控锁自动化(刹车锁门、熄火开锁)、SOS紧急求助车主电话自控(通话、开关车门控制、车辆状态查询)远程断油断电、欠压报警、断电报警、GPS故障报警。

第三、应急处理。应急处理主要包括盗警和劫警的处理,其中包括防劫紧急报警处理、SOS紧急求助处理、车辆非法启动报警、远程监听。

第四、提供驾车资讯,主要包括远程路径导航、天气预报等资讯。

以上四类服务,前面三类服务属于基本型的服务,这是GPS运营赖以存在的根本。现在GPS运营商就是靠提供些基本的服务而收取的服务费用的。从当前的竞争形势看,这些服务无法提高GPS运营商的竞争力,也远远不能满足车主的需求。因此,GPS运营商要在激烈的竞争中赢得一席之地,必须增加服务内容,增加盈利的模式,为客户提供更多有价值的服务,提供更多的驾车资讯。

1、提供道路实时路况信息

要给客户提供有价值的驾车资讯或服务,GPS运营商必须深刻分析驾驶者的需求。通常而言,每个司机开车后最喜欢听的是交通广播电台,为什么呢?因为司机在驾车的过程中最需要了解的是道路的路况信息,根据司机的这一需求,GPS运营商应提供类似的信息,比如,那条路段出现拥堵,如何行驶才能避免塞车。哪些道路属于禁行,那条路车流量相对平稳。这些信息GPS运营没必要自己去采集,应直接和所在城市的交警部门联系,通过付费或方式获取实时交通信息。

 

posted @ 2011-06-18 15:43 放屁阿狗 阅读(412) | 评论 (0)编辑 收藏

     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  1 # -- coding:utf-8 --  2 #TK102 解码器定义  ...  阅读全文
posted @ 2011-06-16 21:56 放屁阿狗 阅读(610) | 评论 (0)编辑 收藏

     摘要: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->  1 # -- coding:utf-8 --  2 #解码器定义  3 &nbs...  阅读全文
posted @ 2011-06-15 16:54 放屁阿狗 阅读(402) | 评论 (0)编辑 收藏

仅列出标题
共25页: First 4 5 6 7 8 9 10 11 12 Last