??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲一本综合久久,狠狠综合久久综合88亚洲,99久久婷婷免费国产综合精品http://www.shnenglu.com/socketref/category/6602.htmlgis,mouse,luolasizh-cnSat, 31 Aug 2013 08:16:53 GMTSat, 31 Aug 2013 08:16:53 GMT60UL地图l制引擎从Qt切换到Cairohttp://www.shnenglu.com/socketref/archive/2013/08/31/202891.html攑ֱ阿狗 攑ֱ阿狗 Sat, 31 Aug 2013 07:39:00 GMThttp://www.shnenglu.com/socketref/archive/2013/08/31/202891.htmlhttp://www.shnenglu.com/socketref/comments/202891.htmlhttp://www.shnenglu.com/socketref/archive/2013/08/31/202891.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/202891.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/202891.html地图Render部分采用的是QtQ所以过E非帔R利,用Eclipse+CDT重徏工程Q略微几个小改动便完成了UL?br />但之后发CQt带来的问题了Q地囄制引擎支持ƈ发处理多个绘制请求,不同的绘制请求将在不同的U程Thread中被执行Q多U程的情况便出现了问题,提示QPixmap不能在非UIU程被构造,如果构造,便出C内存数据讉Kq例的异帔R误,q程直接coredumpQ这个问题困C一些时_
之后改了改代码,数据处理和l制代码隔离开Q线Ethread中进行数据加载、分析、计,l制代码采用Qt的signal/slot机制完成Q就是工作线E处理好数据之后通过emit signal绘制请求发送给uiȝE的slot处理函数。这U实现方法的问题在于l制工作都将被串行执行,性能下降?br />几年前在ULlibsvg到wince旉用过cairo( cairographices.org) ,有点使用l验Q且cairo是gnome的标准图形库Q性能应该不错Q所以直接改为cairo?br />cairomm是cairo的c++包装Q编译还需sig++Qcairo的apiq是Z富的Q字体,反走P矩阵... 操作也是相当?nbsp;
很快UL完成Q运行效果还是比较满意,现在正考虑地图引擎UL到ios讑֤Q目前需要琢cairommQsig++Qpixmap之类的东西如何移植问?或者直接采用ios的Fundation的绘图api)



攑ֱ阿狗 2013-08-31 15:39 发表评论
]]>
Gps监控pȝ sw2us.com/gpshttp://www.shnenglu.com/socketref/archive/2012/06/30/180822.html攑ֱ阿狗 攑ֱ阿狗 Fri, 29 Jun 2012 17:24:00 GMThttp://www.shnenglu.com/socketref/archive/2012/06/30/180822.htmlhttp://www.shnenglu.com/socketref/comments/180822.htmlhttp://www.shnenglu.com/socketref/archive/2012/06/30/180822.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/180822.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/180822.html
全格Gps2012监控pȝ
我们是上全g息科技公司Q我们的团队以Gis位置服务pȝ为方向,多年来积累开发了多套Gps定位pȝ{核心品,且拥有所有的技术能力和版权?/div>
目前我们正在L合作伙伴Q我们可以提供系l^台服务且我们的强也在于此,也可以做gpsq维服务?/div>
如果您用的系l也是同深圳那么多Gps厂家q的一套系l的话,您可以看看我们的pȝQ参考一下优~点?/div>
>我们是掌握最新Gis应用服务的技术开发团?/div>
>我们拥有非常丰富的Gis开发、应用、实施的l验和专业的_
>我们提供.灉|的可配置、扩展的pȝq_Q根据客户需求而定制功能,包括Q界面、操作接口、报表或者整合客L业务
>我们拥有自主的地囑^収ͼ提供B/S模式Q不采用googleQbaidu{互联网地图Q不采用geoserver{开源的地图Q完全我们自己开发的地图引擎Q速度快,效率高,讑֤q行要求低、灵zd扩展
>我们的监控系l采用flex技术,监控位置和报警完全实Ӟ服务器主动推送gps信息到浏览器端,q一Ҏ非flex技术绝不能做到的,所以设备运行状态实现零延时 
>我们的系l监控终端除了支持pc览器,q支?androidQiphone{移动终端访问控Ӟ可进行手阌Ӏ监控轨qV报警配|等功能Q可通过app store和android市场下蝲安装
>我们的有5q的Gps监控q营开发的l验Q系l设计容量达2w台终端设备,与多个公司合作OEM我们的系l和l端产品
~如果您想做Gps监控或者运营,也许您是个h或者是公司老板
~如果您需要更灉|、可控、安全、稳定的GPS监控pȝ
~如果您的需求规划是低成本的
~如果您需要部|一整套Gps服务q_在自q环境中,而不是又M理用他人的Gpsq营q_或者不惌巨资采用 mapabcQmapbar之类的系l?/div>
。。。。?/div>
您可以考虑我们的技术方案,我们可以以最优质的服务、最先进的技术、最灉|的合作模式与您实现共?/div>
误问我们的|站: www.sw2us.com      
Gpspȝ讉K地址: www.sw2us.com/gps
---------------------------------------------------------------------------------------------
上v全格信息U技有限公司
Shanghai Triangle Info Tech Co,Ltd. 
地址: 上v市闵行区立跃?897?q?02? 邮编: 201114 
电话:  86-021-34680553     传真:  86-021-64296802         邮g: service@sw2us.com
Ud电话:  13661913244     |址:  http://www.sw2us.com    QQ: 2536588583@qq.com
---------------------------------------------------------------------------------------------


攑ֱ阿狗 2012-06-30 01:24 发表评论
]]>Ogr转换shpU到度单?/title><link>http://www.shnenglu.com/socketref/archive/2012/02/02/164810.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Wed, 01 Feb 2012 18:14:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2012/02/02/164810.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/164810.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2012/02/02/164810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/164810.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/164810.html</trackback:ping><description><![CDATA[公司的shp数据都是以秒为单位存储,要做监控和道路匹配,直接与gps接收坐标无法实现Q必{换shp单位为度单位<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">  1</span> <span style="color: #008000; ">#</span><span style="color: #008000; ">--coding:utf-8---</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  2</span> <span style="color: #008000; ">#</span><span style="color: #008000; ">  brief:  内业shp数据Q{换秒到度为单?/span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  3</span> <span style="color: #008000; ">#</span><span style="color: #008000; "> author: scott</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  4</span> <span style="color: #008000; ">#</span><span style="color: #008000; "> date: 2012.1.30    </span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  5</span> <span style="color: #008000; ">#</span><span style="color: #008000; "> org:  --navi.com</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  6</span> <span style="color: #008000; ">#</span><span style="color: #008000; "> </span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  7</span> <span style="color: #008000; ">#</span><span style="color: #008000; "> version: v0.1.0 2012.2.1</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  8</span> <span style="color: #008000; ">#</span><span style="color: #008000; ">  1.create doc and test ok, types (included point|line|polygon|multipolygon) be supported</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">  9</span> <span style="color: #008000; ">#</span><span style="color: #008000; "> </span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 10</span> <span style="color: #008000; "></span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 11</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> os,os.path,sys,time,copy,shutil<br /></span><span style="color: #008080; "> 12</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">from</span><span style="color: #000000; "> osgeo </span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> ogr<br /></span><span style="color: #008080; "> 13</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 14</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 15</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">def</span><span style="color: #000000; "> do_layerPoint(layer):<br /></span><span style="color: #008080; "> 16</span> <span style="color: #000000; ">    ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.ResetReading()<br /></span><span style="color: #008080; "> 17</span> <span style="color: #000000; ">    ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetNextFeature()    <br /></span><span style="color: #008080; "> 18</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">print</span><span style="color: #000000; "> </span><span style="color: #800000; ">'</span><span style="color: #800000; ">point num:</span><span style="color: #800000; ">'</span><span style="color: #000000; ">,layer.GetFeatureCount()<br /></span><span style="color: #008080; "> 19</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">print</span><span style="color: #000000; "> </span><span style="color: #800000; ">'</span><span style="color: #800000; ">extent:</span><span style="color: #800000; ">'</span><span style="color: #000000; ">,layer.GetExtent()<br /></span><span style="color: #008080; "> 20</span> <span style="color: #000000; ">    cc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 21</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> ftr:<br /></span><span style="color: #008080; "> 22</span> <span style="color: #000000; ">        </span><span style="color: #008000; ">#</span><span style="color: #008000; ">print cc</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 23</span> <span style="color: #008000; "></span><span style="color: #000000; ">        cc</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">1</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 24</span> <span style="color: #000000; ">        pt </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ftr.GetGeometryRef().GetPoint(0)<br /></span><span style="color: #008080; "> 25</span> <span style="color: #000000; ">        g </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ftr.GetGeometryRef()<br /></span><span style="color: #008080; "> 26</span> <span style="color: #000000; ">        </span><span style="color: #008000; ">#</span><span style="color: #008000; ">print g#,g.ExportKML()</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 27</span> <span style="color: #008000; "></span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> pt[0] </span><span style="color: #000000; ">></span><span style="color: #000000; ">1000</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">or</span><span style="color: #000000; "> pt[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #000000; ">1000</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; "> 28</span> <span style="color: #000000; ">            g.SetPoint(0,pt[0]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3600</span><span style="color: #000000; ">.,pt[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3600</span><span style="color: #000000; ">.)<br /></span><span style="color: #008080; "> 29</span> <span style="color: #000000; ">            </span><span style="color: #008000; ">#</span><span style="color: #008000; ">print g</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 30</span> <span style="color: #008000; "></span><span style="color: #000000; ">            <br /></span><span style="color: #008080; "> 31</span> <span style="color: #000000; ">            </span><span style="color: #800000; ">'''</span><span style="color: #800000; "><br /></span><span style="color: #008080; "> 32</span> <span style="color: #800000; ">            ng = ogr.Geometry(ogr.wkbPoint)<br /></span><span style="color: #008080; "> 33</span> <span style="color: #800000; ">            print pt<br /></span><span style="color: #008080; "> 34</span> <span style="color: #800000; ">            ng.SetPoint(0,pt[0]+40,pt[1])<br /></span><span style="color: #008080; "> 35</span> <span style="color: #800000; ">            ftr.SetGeometry(ng)        <br /></span><span style="color: #008080; "> 36</span> <span style="color: #800000; ">            </span><span style="color: #800000; ">'''</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 37</span> <span style="color: #000000; ">            layer.SetFeature(ftr)<br /></span><span style="color: #008080; "> 38</span> <span style="color: #000000; ">        ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetNextFeature()    <br /></span><span style="color: #008080; "> 39</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 40</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">def</span><span style="color: #000000; "> do_layerLine(layer):<br /></span><span style="color: #008080; "> 41</span> <span style="color: #000000; ">    ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.ResetReading()<br /></span><span style="color: #008080; "> 42</span> <span style="color: #000000; ">    ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetNextFeature()<br /></span><span style="color: #008080; "> 43</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; "> 44</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> ftr:    <br /></span><span style="color: #008080; "> 45</span> <span style="color: #000000; ">        g </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ftr.GetGeometryRef()<br /></span><span style="color: #008080; "> 46</span> <span style="color: #000000; ">        cnt </span><span style="color: #000000; ">=</span><span style="color: #000000; "> g.GetPointCount()<br /></span><span style="color: #008080; "> 47</span> <span style="color: #000000; ">        cc </span><span style="color: #000000; ">=</span><span style="color: #000000; "> 0<br /></span><span style="color: #008080; "> 48</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> cc </span><span style="color: #000000; "><</span><span style="color: #000000; "> cnt:<br /></span><span style="color: #008080; "> 49</span> <span style="color: #000000; ">            </span><span style="color: #008000; ">#</span><span style="color: #008000; ">print g.GetPoint(cc)</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 50</span> <span style="color: #008000; "></span><span style="color: #000000; ">            cc</span><span style="color: #000000; ">+=</span><span style="color: #000000; ">1</span><span style="color: #000000; "><br /></span><span style="color: #008080; "> 51</span> <span style="color: #000000; ">        <br /></span><span style="color: #008080; "> 52</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> n </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> range(cnt):<br /></span><span style="color: #008080; "> 53</span> <span style="color: #000000; ">            pt </span><span style="color: #000000; ">=</span><span style="color: #000000; "> g.GetPoint(n)<br /></span><span style="color: #008080; "> 54</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> pt[0]</span><span style="color: #000000; ">></span><span style="color: #000000; ">1000</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">or</span><span style="color: #000000; "> pt[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #000000; ">1000</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; "> 55</span> <span style="color: #000000; ">                g.SetPoint(n,pt[0]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3600</span><span style="color: #000000; ">.,pt[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3600.0</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 56</span> <span style="color: #000000; ">        layer.SetFeature(ftr)<br /></span><span style="color: #008080; "> 57</span> <span style="color: #000000; ">        <br /></span><span style="color: #008080; "> 58</span> <span style="color: #000000; ">        ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetNextFeature()<br /></span><span style="color: #008080; "> 59</span> <span style="color: #000000; "><br /></span><span style="color: #008080; "> 60</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">def</span><span style="color: #000000; "> do_layerPolygon(layer):<br /></span><span style="color: #008080; "> 61</span> <span style="color: #000000; ">    ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.ResetReading()<br /></span><span style="color: #008080; "> 62</span> <span style="color: #000000; ">    ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetNextFeature()<br /></span><span style="color: #008080; "> 63</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; "> 64</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">while</span><span style="color: #000000; "> ftr:    <br /></span><span style="color: #008080; "> 65</span> <span style="color: #000000; ">        g </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ftr.GetGeometryRef()    <br /></span><span style="color: #008080; "> 66</span> <span style="color: #000000; ">        cnt </span><span style="color: #000000; ">=</span><span style="color: #000000; "> g.GetGeometryCount()<br /></span><span style="color: #008080; "> 67</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> n </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> range(cnt):<br /></span><span style="color: #008080; "> 68</span> <span style="color: #000000; ">            gg </span><span style="color: #000000; ">=</span><span style="color: #000000; "> g.GetGeometryRef(n)<br /></span><span style="color: #008080; "> 69</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> m </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> range(gg.GetPointCount() ):<br /></span><span style="color: #008080; "> 70</span> <span style="color: #000000; ">                pt </span><span style="color: #000000; ">=</span><span style="color: #000000; "> gg.GetPoint(m)<br /></span><span style="color: #008080; "> 71</span> <span style="color: #000000; ">                </span><span style="color: #008000; ">#</span><span style="color: #008000; ">print pt</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 72</span> <span style="color: #008000; "></span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> pt[0]</span><span style="color: #000000; ">></span><span style="color: #000000; ">1000</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">or</span><span style="color: #000000; "> pt[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">] </span><span style="color: #000000; ">></span><span style="color: #000000; "> </span><span style="color: #000000; ">1000</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; "> 73</span> <span style="color: #000000; ">                    gg.SetPoint(m,pt[0]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3600</span><span style="color: #000000; ">.,pt[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">]</span><span style="color: #000000; ">/</span><span style="color: #000000; ">3600.0</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 74</span> <span style="color: #000000; ">        layer.SetFeature(ftr)<br /></span><span style="color: #008080; "> 75</span> <span style="color: #000000; ">        ftr </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetNextFeature()        <br /></span><span style="color: #008080; "> 76</span> <span style="color: #000000; ">        <br /></span><span style="color: #008080; "> 77</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">def</span><span style="color: #000000; "> do_shpfile(file):<br /></span><span style="color: #008080; "> 78</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">#</span><span style="color: #008000; ">print file</span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 79</span> <span style="color: #008000; "></span><span style="color: #000000; ">    </span><span style="color: #0000FF; ">print</span><span style="color: #000000; "> </span><span style="color: #800000; ">'</span><span style="color: #800000; ">ready file:</span><span style="color: #800000; ">'</span><span style="color: #000000; ">,file<br /></span><span style="color: #008080; "> 80</span> <span style="color: #000000; ">    driver </span><span style="color: #000000; ">=</span><span style="color: #000000; "> ogr.GetDriverByName(</span><span style="color: #800000; ">'</span><span style="color: #800000; ">ESRI Shapefile</span><span style="color: #800000; ">'</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; "> 81</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">#</span><span style="color: #008000; ">shp = driver.Open('e:/shp_data/points.shp',1)  # 0 - read , 1 - write </span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 82</span> <span style="color: #008000; "></span><span style="color: #000000; ">    shp </span><span style="color: #000000; ">=</span><span style="color: #000000; "> driver.Open(file,</span><span style="color: #000000; ">1</span><span style="color: #000000; ">)  </span><span style="color: #008000; ">#</span><span style="color: #008000; "> 0 - read , 1 - write </span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 83</span> <span style="color: #008000; "></span><span style="color: #000000; ">    <br /></span><span style="color: #008080; "> 84</span> <span style="color: #000000; ">    layer </span><span style="color: #000000; ">=</span><span style="color: #000000; "> shp.GetLayer()<br /></span><span style="color: #008080; "> 85</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; "> 86</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> layer.GetFeatureCount() </span><span style="color: #000000; ">==</span><span style="color: #000000; "> 0:<br /></span><span style="color: #008080; "> 87</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> <br /></span><span style="color: #008080; "> 88</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; "> 89</span> <span style="color: #000000; ">    gtyp </span><span style="color: #000000; ">=</span><span style="color: #000000; "> layer.GetLayerDefn().GetGeomType()<br /></span><span style="color: #008080; "> 90</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; "> 91</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> file.lower().find(</span><span style="color: #800000; ">'</span><span style="color: #800000; ">province</span><span style="color: #800000; ">'</span><span style="color: #000000; ">) </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #000000; ">-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; "> 92</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">pass</span><span style="color: #000000; "> </span><span style="color: #008000; ">#</span><span style="color: #008000; ">return </span><span style="color: #008000; "><br /></span><span style="color: #008080; "> 93</span> <span style="color: #008000; "></span><span style="color: #000000; ">        <br /></span><span style="color: #008080; "> 94</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> gtyp </span><span style="color: #000000; ">==</span><span style="color: #000000; "> ogr.wkbPoint:<br /></span><span style="color: #008080; "> 95</span> <span style="color: #000000; ">        do_layerPoint(layer)<br /></span><span style="color: #008080; "> 96</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">elif</span><span style="color: #000000; "> gtyp </span><span style="color: #000000; ">==</span><span style="color: #000000; "> ogr.wkbLineString:<br /></span><span style="color: #008080; "> 97</span> <span style="color: #000000; ">        do_layerLine(layer)<br /></span><span style="color: #008080; "> 98</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">elif</span><span style="color: #000000; "> gtyp </span><span style="color: #000000; ">==</span><span style="color: #000000; "> ogr.wkbPolygon:<br /></span><span style="color: #008080; "> 99</span> <span style="color: #000000; ">        do_layerPolygon(layer)<br /></span><span style="color: #008080; ">100</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">101</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">print</span><span style="color: #000000; "> </span><span style="color: #800000; ">'</span><span style="color: #800000; ">unknown type:</span><span style="color: #800000; ">'</span><span style="color: #000000; ">,gtyp,</span><span style="color: #800000; ">'</span><span style="color: #800000; ">  </span><span style="color: #800000; ">'</span><span style="color: #000000; ">,file<br /></span><span style="color: #008080; ">102</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; ">103</span> <span style="color: #000000; ">    layer.SyncToDisk()    <br /></span><span style="color: #008080; ">104</span> <span style="color: #000000; ">    shp.Destroy()<br /></span><span style="color: #008080; ">105</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; ">106</span> <span style="color: #000000; ">    <br /></span><span style="color: #008080; ">107</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">def</span><span style="color: #000000; "> convert(shpdir):<br /></span><span style="color: #008080; ">108</span> <span style="color: #000000; ">    files </span><span style="color: #000000; ">=</span><span style="color: #000000; "> os.listdir(shpdir)<br /></span><span style="color: #008080; ">109</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">for</span><span style="color: #000000; "> file </span><span style="color: #0000FF; ">in</span><span style="color: #000000; "> files:<br /></span><span style="color: #008080; ">110</span> <span style="color: #000000; ">        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; ">  file.lower().find(</span><span style="color: #800000; ">'</span><span style="color: #800000; ">.shp</span><span style="color: #800000; ">'</span><span style="color: #000000; ">) </span><span style="color: #000000; ">==-</span><span style="color: #000000; ">1</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">111</span> <span style="color: #000000; ">            </span><span style="color: #0000FF; ">continue</span><span style="color: #000000; "><br /></span><span style="color: #008080; ">112</span> <span style="color: #000000; ">        <br /></span><span style="color: #008080; ">113</span> <span style="color: #000000; ">        </span><span style="color: #008000; ">#</span><span style="color: #008000; ">if file == 'points.shp':</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">114</span> <span style="color: #008000; "></span><span style="color: #000000; ">        do_shpfile(shpdir</span><span style="color: #000000; ">+</span><span style="color: #800000; ">"</span><span style="color: #800000; ">/</span><span style="color: #800000; ">"</span><span style="color: #000000; ">+</span><span style="color: #000000; ">file)<br /></span><span style="color: #008080; ">115</span> <span style="color: #000000; "><br /></span><span style="color: #008080; ">116</span> <span style="color: #000000; "></span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> </span><span style="color: #800080; ">__name__</span><span style="color: #000000; ">==</span><span style="color: #800000; ">'</span><span style="color: #800000; ">__main__</span><span style="color: #800000; ">'</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">117</span> <span style="color: #000000; ">    </span><span style="color: #008000; ">#</span><span style="color: #008000; ">convert( 'e:/shp_data' )</span><span style="color: #008000; "><br /></span><span style="color: #008080; ">118</span> <span style="color: #008000; "></span><span style="color: #000000; ">    </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> sys.argv[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">:]:<br /></span><span style="color: #008080; ">119</span> <span style="color: #000000; ">        convert(sys.argv[</span><span style="color: #000000; ">1</span><span style="color: #000000; ">])<br /></span><span style="color: #008080; ">120</span> <span style="color: #000000; ">    </span><span style="color: #0000FF; ">else</span><span style="color: #000000; ">:<br /></span><span style="color: #008080; ">121</span> <span style="color: #000000; ">        convert( </span><span style="color: #800000; ">'</span><span style="color: #800000; ">D:/temp3/mess/MESH/H51F009012</span><span style="color: #800000; ">'</span><span style="color: #000000; ">)<br /></span><span style="color: #008080; ">122</span> <span style="color: #000000; ">    <br /></span></div><img src ="http://www.shnenglu.com/socketref/aggbug/164810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2012-02-02 02:14 <a href="http://www.shnenglu.com/socketref/archive/2012/02/02/164810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>重新整理2011q地图数?/title><link>http://www.shnenglu.com/socketref/archive/2011/08/11/153085.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Thu, 11 Aug 2011 11:56:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2011/08/11/153085.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/153085.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2011/08/11/153085.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/153085.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/153085.html</trackback:ping><description><![CDATA[从朋友处得到一?011q的四维地图数据Q但是数据是未修正偏差的。花?周时间加工出了效?br /> 有问题请大家指正<br /> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="800" height="500" id="gisDemo"> <param name="movie" value="http://sw2us.com/sites/default/files/flex/simple_map.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#666666" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <!--[if !IE]>--> <object type="application/x-shockwave-flash" data="http://sw2us.com/sites/default/files/flex/simple_map.swf" width="800" height="500"> <param name="quality" value="high" /> <param name="bgcolor" value="#666666" /> <param name="allowScriptAccess" value="sameDomain" /> <param name="allowFullScreen" value="true" /> <!--<![endif]--> <!--[if gte IE 6]>--> <p> Either scripts and active content are not permitted to run or Adobe Flash Player version 10.0.0 or greater is not installed. </p> <!--<![endif]--> <a > <img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash Player" /> </a> <!--[if !IE]>--> </object> <!--<![endif]--> </object> <br /> 截图 :<br /> <img src="http://www.shnenglu.com/images/cppblog_com/socketref/2011-8-11_19-47-57.png" width="959" height="607" alt="" /> <img src ="http://www.shnenglu.com/socketref/aggbug/153085.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2011-08-11 19:56 <a href="http://www.shnenglu.com/socketref/archive/2011/08/11/153085.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swMap的Tile~冲实现http://www.shnenglu.com/socketref/archive/2011/07/11/150711.html攑ֱ阿狗 攑ֱ阿狗 Mon, 11 Jul 2011 14:34:00 GMThttp://www.shnenglu.com/socketref/archive/2011/07/11/150711.htmlhttp://www.shnenglu.com/socketref/comments/150711.htmlhttp://www.shnenglu.com/socketref/archive/2011/07/11/150711.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/150711.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/150711.html 学习qMapGuid,MapServer,Qgis{多U开源地囑֤理服务YӞ开发了遵@WMS标准的地图服务,包括wms接入Q地图渲染服务?br /> q?q的旉跑的地图展示都是wms服务器实时请求TileServerq行l制QTileserverq程被部|在一台高端的服务器上Q同时启动了8个服务进E,讉K忙碌的时候机器有点吃不消Q就看到cpu那根UK的很高?br /> geoserverq个用java做的wms服务器,性能不敢恭维Q玩geoserver的时候接触了tilecahceq个开源YӞ目前跑啥版本׃清楚了,之前其研究了个明白Q知道自己需要的是什么,所以一切还是得自己写?br /> Ҏ来讲tilecache不实用的原因有多?
1.支持q多的cahce 存储方式Q什么google的数据库Qoracle的也有,虽然代码框架的好Q但很多东西都不用Q所以代码维护不够灵z?br /> 2.tilecache通过apache提供web的wms服务Q然后tilecahe里再h后端的geoserver服务Q生的cacheҎ他定 义的一个网gơ按x,y,z的烦引存储在文gpȝ里面Qƈ图形进行编码分cR这U实现ƈ没有问题Q但要知道这些cache出来的图像文件是那么的多?都零,有些囄q够不上一个文件系l基本的一个存储页大小Q所以会大量费I间Q由于文仉且多,Udq些文g也是个相当大的问题,一ơؓ了将q些 cahce tile文g从A机器拯到B机器然p?天的旉?br />
tilecache有这些不如我意的地方Q所以之前自׃考虑再写一个tilecache?backendQ将渲染出来的东西直接存储进pgsql数据库,那以后只要导出数据库的tablespace可以了Q嗯Q的可行,也跑了一D|?br /> 最后还是决定放弃tilecahce了,毕竟wms自己已经实现了,要再做个backend也是很简单,做完直接整合qwms服务器?br /> 我考虑采用sqlite来存储这些瓦片图形,׃sqlite处理多线E时天性有炚w题,多线E不能共享同一个连?connection),所以实现的时候在每个U程创徏了新的连接,开销是有一些的Q那比之前实时请求TileServer要快的多了?br /> 现在wms跑的很开心了Qcpu也不忙了Q就是篏M盘?br /> 一台机器上渲染的地囄片数据单独存储在一个文仉面,要部|到另外一台机器也很方便了Q只需要拷贝一下就可以?br /> 接着看看这个sqlite换成pgsqlQ看看性能哪个更强一?br /> python代码实现:
 1     def getBitmapTile3(self,renderTile,mapid,res,xy,size):        
 2         if not self.enable:
 3             return None    #表示需要实时请求地图数?/span>
 4         
 5         tile = None
 6         dbconn = sqlite3.connect(self.dbname)
 7         try:            
 8             #dbconn.text_factory = str
 9             cr = dbconn.cursor()
10             cr.execute('select image from tiles where res=? and x=? and y=?',(res,xy[0],xy[1]))
11             r = cr.fetchone()
12             if not r:
13                 tile = renderTile(mapid,res,xy,size)
14                 if tile and tile.pixmap:
15                     b = sqlite3.Binary(tile.pixmap)
16                     print '*'*20
17                     cr.execute(u'insert into tiles (res,x,y,z,image) values(?,?,?,?,?)',(res,xy[0],xy[1],0,b))                    
18             else:
19                 tile = r[0]
20                 self.cacheshooted+=1
21                 print 'shooted ',self.cacheshooted
22         except:            
23             traceback.print_exc()
24             tile = None
25         dbconn.commit()
26         return tile
27 

记得I的时候在flex端写个自动跑地图的程序,不能让机器闲着Q没事的时候把全国地图的瓦片自动生一下,免得在访问地囄l的时候再M生瓦片!











攑ֱ阿狗 2011-07-11 22:34 发表评论
]]>opensacles性能与openlayers比较http://www.shnenglu.com/socketref/archive/2011/06/06/148136.html攑ֱ阿狗 攑ֱ阿狗 Mon, 06 Jun 2011 04:45:00 GMThttp://www.shnenglu.com/socketref/archive/2011/06/06/148136.htmlhttp://www.shnenglu.com/socketref/comments/148136.htmlhttp://www.shnenglu.com/socketref/archive/2011/06/06/148136.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/148136.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/148136.html
我想q个原因可能在于flashq行时异步请求都是单U程的,openlayers发送ajax httprequest可能是多U程q发h?渲染E序都是一?

** win7下绑定localhost做服务发现响应速度很慢Q必ȝ接写 本地ip地址

openscalesh速度慢可能opensacles代码里面控制了ƈ发请求tile的数量,q个要具体看一下scales的代码,看看能够引出接口来修改一?

** openscales初始?wmsc囑ֱ时只有一个resulutions参数Q而有时我采用scale~放比控Ӟ注意 openscales/*/util/*.as提供了scale到resulutoin的{?br />     DPI在openscales里面默认?2 Q?WGS84 (4326)是默认的Q投׃提供接口更改


openscales速度慢的问题扑ֈ了,同样启动Ie则没有迟~的现象Q说明还是浏览器的问题,firefox 3.x版本不行Q换4.x的看看,如果q是不行Q说明flash.ocx for firefox版本不行

攑ֱ阿狗 2011-06-06 12:45 发表评论
]]>
整理之前的webgis demoQ提供下?/title><link>http://www.shnenglu.com/socketref/archive/2011/05/26/147171.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Thu, 26 May 2011 02:56:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2011/05/26/147171.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/147171.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2011/05/26/147171.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/147171.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/147171.html</trackback:ping><description><![CDATA[webgis地图讉K地址 Q <a >http://sw2us.com:8520/medias/flex/newgis.html</a><a title="http://sw2us.com:8080/" ></a><div>下蝲地址Q <a title="http://sw2us.com:9090/sw2us.webgis.demo.2011.5.26.7z" >http://sw2us.com:9090/sw2us.webgis.demo.2011.5.26.7z</a><br /><br /><img alt="" src="http://www.shnenglu.com/images/cppblog_com/socketref/sw2us.webgis.demo.png" height="420" width="892" /><br /><div>Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-</div>sw2us.webgis ?9q就开始有个做地图引擎的想法,׃忙于公司其他开发项目的事情Q一直断断箋l进?br />?173的时候开始用geoserver来架构wms服务器,发现配置部v性能都差Zh意,所以想着自己做个wms服务<br />10q的时候也写了个版本,后来用tilecacheq行tile l制Q中国地?000的比例两台机器绘制了1个月<br />下半q生病了Q到11月䆾回unistrong上班Q工作内容就是写驱动Q空闲之余l写地图渲染代码Q以前用wx做的<br />代码全部用qt写了一遍,优化了一些速度。地图换了两版本Q?8q的全国囑֒11q的上v图,用python脚本q行预处?br />切割地图q行|格存储。以前的同事多年前就告诉我他们改q?叉树的存储方式来提高讉K数据减少数据加蝲Q我?br />没好好琢过Q主要是没有旉和精力,只好做这U傻瓜式的简单网格切分和加蝲?br /><br />demo只是单实C地图加蝲和现实,然后用openlayers,extjs,geoext,django做了个框枉面,里面放了个不跑的汽R图标<br /><br />q个东西?0q?2月完成的Q已l准备放弃这个架构的设想,准备采用flex+openscale+django来重做webgis应用Q?br />当然那还是需要花费很多时间和_֊<br /><br />zhangbin <br />2011.1.20<br /><br />msn: socketref@hotmail.com<br />qq: 24509826<br /><br />==========================================================================================<br />注意Q sw2us.webgis.demo目录必须存放在c:\根目录下,不能更改目录?br /><br />安装<br />=============<br />1.配置数据?br />    安装pgsql, postgresql-8.3.5-2-windows.exeQ数据库端口保持?432 Q设|postgres用户Q密码ؓ111111<br />    安装I间数据库扩?postgis-pg83-setup-1.5.2-1.exe<br />    创徏 数据库名 newgis,导入数据库文?newgis.db.backup <br /><br />2. webserver配置 <br />    q行C:\sw2us.webgis.demo\apache2.2.pack\http-install.bat  安装apache服务Q侦?9090端口 <br />    C:\sw2us.webgis.demo\apache2.2.pack\http-install.bat     启动apache服务<br />    <br />3.安装微Y雅黑字体<br />    bin/vistaFont_chs.exe ,安装之后修改pȝ默认字体为微软雅黑字?br /><br />4. 安装vcq行环境 bin\vcredist_x86.exe<br /><br />q行: <br />===============<br />    start-gis.bat     q行django后台服务<br />    wms_start.bat     q行wms服务?br />    tileserver-rpcservice-1.bat/tileserver-rpcservice-2.bat 为后台地图渲染服务,目前配置5001,5002端口<br />    览器录?http://192.168.14.3:8080/ 卛_看到地图界面 <br />    <br />pȝ端口说明: <br />===============<br />    9090      apache 服务端口 <br />    8080    django 服务端口<br />    8000    wms 服务端口<br />    5001,5002 地图渲染服务端口<br /><br />    <br />以上端口都被写入了相x务的配置文gQ请保q些端口没有被占?<br /><br />--    修改apache端口 C:\sw2us.webgis.demo\apache2.2.pack\Apache2.2\conf\httpd.conf ;<br />    修改之后必须重新启动apache服务(http-shutdown.bat,http-start.bat)<br />    修改apache端口之后必须修改对应django的配|?C:\sw2us.webgis.demo\newgis\gis.py(W?4?JSLIB_PATH的webserver指向)<br />--    django服务端口可以L修改 start-gis.bat<br />--    wms服务端口修改 wms_start.bat ,修改之后必须同步C:\sw2us.webgis.demo\newgis\medias\js\gis\gismap.js(W?9?的wms服务器指?br />--    地图渲染服务可以Ҏ负荷的情况启动多个服务进E?复制tileserver-rpcservice-1.batQ修改其端口P比如 5003),在修Ҏ增加渲染<br />    q程之后必须修改wms服务的配|C:\sw2us.webgis.demo\swmap.demo\GisServer\tileservers.txt<br />    <br />demopȝ默认都是采用localhost做服务接口,如果要提供网l支持或者分布这些服务进E来提高性能Q则需要修改这些不同的端口和ip地址<br /><br />    <br />pȝ描述Q?br />=============<br /> 览器firefox 直接讉Kdjango端口Qdjango的url.py分派h到gis.py,gis.py加蝲pages/mainwindow.html<br /> mainwindow.html已经是个openlayers+ext的框架界面了Q其陆需加蝲 openlayers,ext{的js脚本Q注意:q些js<br /> 脚本q不存在django的目录下Q而是存放在apache的web-root目录下,所以必要修改gis.py和mapgis.js里面?br /> L指向信息?br /> 当mainwindow.html加蝲之后Q工作就交给了openlayersQopenlayers访问wms服务?gismap.js 19?,此刻wms服务?br /> 提供tile数据l浏览器?br /> 地图渲染服务必须在wms服务之前启动Qwms通过tileserver.txt的配|?采用ice 与渲染服务进E通讯q获得图块ƈq回l?br /> 览器?br /> 渲染服务器、wms服务器、apache和django服务都可以被分隔存储在不同的L?br /> <br /> 好了Qdemo可以在本h了,但必L?http://locahost:8080方式Q如果想以网l方式访问则修改wms服务端口,gis.py,gismap.js及相?bat配置<br /> <br />相关问题 <br />=============<br /> 如果这些服务主机都配置成localhostQ访问速度大大降低 Q?应配|成独立的ip地址<br /> apache已经配置了js压羃输出    <br />   </div><img src ="http://www.shnenglu.com/socketref/aggbug/147171.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2011-05-26 10:56 <a href="http://www.shnenglu.com/socketref/archive/2011/05/26/147171.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>webgis初步试Q提供下?/title><link>http://www.shnenglu.com/socketref/archive/2010/12/03/135361.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Fri, 03 Dec 2010 08:23:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2010/12/03/135361.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/135361.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2010/12/03/135361.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/135361.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/135361.html</trackback:ping><description><![CDATA[找了台快速的公网机器来做<span style="font-size: 11pt; font-family: 微Y雅黑;">演示Q网通线路访问还是很慢): <br><a >http://wallizard.vicp.net/maps/test/test_map.html</a><br><a >http://wallizard.vicp.net:8080/</a> <br></span>提供ftp下蝲 <span style="font-size: 11pt; font-family: 宋体;"></span><a href="ftp://122.227.135.172:8502/" style="font-family: 微Y雅黑;">swmap.demo.2010.11.20.7z</a><br>ftp://122.227.135.172:8502<br>user: mapdown<br>passwd: mapdown<span style="font-size: 11pt; font-family: 宋体;"><span style="font-family: 微Y雅黑;"> <br>demo包含c/s,b/s功能和全国地图数据,?70M左右Q可以直接架设v一台wms地图服务?/span></span><br> <img src ="http://www.shnenglu.com/socketref/aggbug/135361.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2010-12-03 16:23 <a href="http://www.shnenglu.com/socketref/archive/2010/12/03/135361.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HttpServer+ TileCachehttp://www.shnenglu.com/socketref/archive/2010/11/18/134002.html攑ֱ阿狗 攑ֱ阿狗 Thu, 18 Nov 2010 08:49:00 GMThttp://www.shnenglu.com/socketref/archive/2010/11/18/134002.htmlhttp://www.shnenglu.com/socketref/comments/134002.htmlhttp://www.shnenglu.com/socketref/archive/2010/11/18/134002.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/134002.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/134002.html    随即而来的是攑ּGeoserverQ自己重新开发地图渲染服务器Q用了QT令我效果满意Q那再用那一套GeoServer的东西就不合时宜了,TileCache也是需要绑定Apache+mod_python才能工作Q简直太累最了,配置个环境还是不太容易,x自己只是x供一个WMS的服务Ş了何必那么麻烦呢?地图服务器也有了Q生CacheTiles也开发了自动化的工具Q将全国不同昄比例的图块按256x256规格分别攑օ多个文gQ这样备份v来就快速多了?br>    之前看过TileCache的代码,那时候只是ؓ了编写一个新的Cache Store backendQ现在重新回q头来,我决定抛弃apacheQ语aq是用pythonQ之前做一个酒店广告投攄l时开发过一个Http代理服务器,所以轻车熟路了Q保留其Http服务功能Q加上TileCache的WMS服务代码Q一个swMap的WMS 服务器就可以诞生了?br>    端详了一会儿TileCacheQ发现是多么的简单,几乎不用多修改什么地方就可以完成?br>    ׃我的swMap服务E序提供了预先缓存和实时l制地图的功能,所以通过Http可以以两U模式进行,当然实时模式是用于调试地囑ֱSLD时派上大用场?br>    实时l制的时候我的WMS服务器通过Iceq接到swMap服务器,当缓存访问时我的WMS服务器直接从本地Tile文g中读取,那时多么舒服的事情哪Q?






攑ֱ阿狗 2010-11-18 16:49 发表评论
]]>
下一步swMap的工作内?/title><link>http://www.shnenglu.com/socketref/archive/2010/11/18/133998.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Thu, 18 Nov 2010 08:32:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2010/11/18/133998.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/133998.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2010/11/18/133998.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/133998.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/133998.html</trackback:ping><description><![CDATA[1. 修改httpserver+tilecache,?swMaphWMS功能Q支持openlayers讉K<br>2. l箋增加swBox功能Q诸? 距、围栏、自定义用户兴趣炏V面U计?br>3. ~冲全国图tile到缓存文Ӟ最低比?:2000,׃是全国性的预先l制工作Q会消耗很大的盘I间和处理时_估计3?核的PCq箋1个星期工作时?br>4. 开发基于swBox的基本应用,增加POI搜寻和MapGrab功能(用户可以指定地理范围产生指定昄_ֺ的大q图像,比如可以抓取1:4000的整个上城区图C个jpg文g)<br>5. 增加矢量q算操作q行道\匚w<br>6. 增加GPS易的定位功能Q多个移动对象之间的位置拓扑x的操作,支持轨迹回放和导出功?br>7. swBox增加Wince版本<br><br><br> <img src ="http://www.shnenglu.com/socketref/aggbug/133998.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2010-11-18 16:32 <a href="http://www.shnenglu.com/socketref/archive/2010/11/18/133998.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>swbox 地图渲染完成基本功能http://www.shnenglu.com/socketref/archive/2010/11/08/132907.html攑ֱ阿狗 攑ֱ阿狗 Sun, 07 Nov 2010 17:20:00 GMThttp://www.shnenglu.com/socketref/archive/2010/11/08/132907.htmlhttp://www.shnenglu.com/socketref/comments/132907.htmlhttp://www.shnenglu.com/socketref/archive/2010/11/08/132907.html#Feedback1http://www.shnenglu.com/socketref/comments/commentRss/132907.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/132907.html其中借鉴了geoserver的服务模式,ogc的SLD风格配置Qtilecache开源代码的核心Q现已用c++完成q些功能Q?br>q行效率可谓比geoserver快了好几个数量
未加入道路和多边形文本标注,正在调整标注法和逻辑Q?*.xml控制地图Qmapsld.xml定义层样式风?br>
E序演示Q?a style="text-decoration: underline;" title="http://wallizard.vicp.net:9000/swBox_release_2010.11.08.rar" >http://wallizard.vicp.net:9000/swBox_release_2010.11.08.rar





攑ֱ阿狗 2010-11-08 01:20 发表评论
]]>
加了QTl制地图http://www.shnenglu.com/socketref/archive/2010/10/19/130501.html攑ֱ阿狗 攑ֱ阿狗 Tue, 19 Oct 2010 15:37:00 GMThttp://www.shnenglu.com/socketref/archive/2010/10/19/130501.htmlhttp://www.shnenglu.com/socketref/comments/130501.htmlhttp://www.shnenglu.com/socketref/archive/2010/10/19/130501.html#Feedback2http://www.shnenglu.com/socketref/comments/commentRss/130501.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/130501.html加上了SLD控制地图分隔Q比之前的效果好了很?br>
1.修复了由于判别第一个feature不在可视区域内导致忽略了之后的数据加载的bug
2.多边形和U性增加了最可见宽度,Z加速绘制的速度

告别了geoserver那种蜗牛和不可控的年月了
基本的绘制效果比较满?br>下一步工作:
1.文本l制和优?br>2.地图layer压羃减小存储I间以及试性能上的影响
3.优化memheap的算?br>4.mapcanas从wxUL到qt
5.flex lg优化
6.mapserver支持tilecache





攑ֱ阿狗 2010-10-19 23:37 发表评论
]]>
地图昄比计?/title><link>http://www.shnenglu.com/socketref/archive/2010/10/08/129099.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Fri, 08 Oct 2010 14:39:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2010/10/08/129099.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/129099.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2010/10/08/129099.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/129099.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/129099.html</trackback:ping><description><![CDATA[地图昄可以用羃放比q行表示Q也可以用度表示<br>例如在openlayersӞresolutions用于定义昄_ֺQ也是比例?br>    resolutions: [0.17578125,0.087890625,0.0439453125,0.02197265625] ,定义?U地图显C比例,每个像素表示多少地理宽度<br> 如果换算成显C比Ӟ转换Ҏ:  0.17578125*sw_METERS_PER_DEGREE/sw_METERS_PER_PIXEL = 74,143,700 = 74M<br> 也是?1:74M<br><img src ="http://www.shnenglu.com/socketref/aggbug/129099.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2010-10-08 22:39 <a href="http://www.shnenglu.com/socketref/archive/2010/10/08/129099.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TileCache.Cache扩展http://www.shnenglu.com/socketref/archive/2010/04/14/112600.html攑ֱ阿狗 攑ֱ阿狗 Wed, 14 Apr 2010 15:47:00 GMThttp://www.shnenglu.com/socketref/archive/2010/04/14/112600.htmlhttp://www.shnenglu.com/socketref/comments/112600.htmlhttp://www.shnenglu.com/socketref/archive/2010/04/14/112600.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/112600.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/112600.htmltilecache-2.10\TileCache\Caches目录下就是TileCache自带的CachecdQCache有个抽象基类Q我的数据Cache只要实现q些Cache的接口便能完成到数据库的Tile存取?br>
 1 class Cache (object):
 2     def __init__ (self, timeout = 30.0, stale_interval = 300.0, readonly = False, **kwargs):
 3         self.stale    = float(stale_interval)
 4         self.timeout = float(timeout)
 5         self.readonly = readonly
 6                 
 7     def lock (self, tile, blocking = True):
 8         start_time = time.time()
 9         result = self.attemptLock(tile)
10         if result:
11             return True
12         elif not blocking:
13             return False
14         while result is not True:
15             if time.time() - start_time > self.timeout:
16                 raise Exception("You appear to have a stuck lock. You may wish to remove the lock named:\n%s" % self.getLockName(tile)) 
17             time.sleep(0.25)
18             result = self.attemptLock(tile)
19         return True
20 
21     def getLockName (self, tile):
22         return self.getKey(tile) + ".lck"
23 
24     def getKey (self, tile):
25         raise NotImplementedError()
26 
27     def attemptLock (self, tile):
28         raise NotImplementedError()
29 
30     def unlock (self, tile):
31         raise NotImplementedError()
32 
33     def get (self, tile):
34         raise NotImplementedError()
35 
36     def set (self, tile, data):
37         raise NotImplementedError()
38     
39     def delete(self, tile):
40         raise NotImplementedError()
接口够简单了?Q最主要的实现的 是get,set,getKeyq?个主要接?br>tilecache.cfg的Cache.type讄为DB_POSTGRES






攑ֱ阿狗 2010-04-14 23:47 发表评论
]]>
完成swMap基本功能http://www.shnenglu.com/socketref/archive/2009/08/21/93983.html攑ֱ阿狗 攑ֱ阿狗 Thu, 20 Aug 2009 19:27:00 GMThttp://www.shnenglu.com/socketref/archive/2009/08/21/93983.htmlhttp://www.shnenglu.com/socketref/comments/93983.htmlhttp://www.shnenglu.com/socketref/archive/2009/08/21/93983.html#Feedback2http://www.shnenglu.com/socketref/comments/commentRss/93983.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/93983.html现在swMap能做基本demo一丁点的功能了Q访问: www.sw2us.com/maps.php 或?http://220.196.42.107/main.php
当初考虑到放弃之前的东西考虑的问题有很多Q当然有公司的知识权问题,最主要的是之前的品技术实在是设计的有点糟p。做开发的知道看别人的代码q且在这基础上去发扬光大q时间很头大和痛苦的事情Q特别是到那些原本是比较闭和差劲的东西?br>凭借自q的很多想法开始开发swMap目Q以前的东西都抛弃没有做参考,从原始地囑֊工设计、地图渲染服务器开发、然后就是基于Pc和Wince的客L开发,支持本地和远E加载地囄方式Q重新设计的数据存储方式除了保留单的|格存储和搜寻,已经把地图数据进行省份的分割Q而不像以前必d载单独的一个全国地图数据包Q地囄g设计成了多网格大Ş式,以便支持同一个地图文件中L多的~放比和地图层?br>开发L很辛苦,每天都是要做到夜׃h?br>学习了很多东西,思考了很多东西Q反复的也有很多Q最l还是凭借自己比较宽的知识面Q运用了很多opensource的技术,旉和效率当然是非常重要的,所以没有自己去重新实现一些基的东西,比如matrix是从cairo库中直接抄过来的?br>在用c++开发地图服务器和客L时候也考虑了不同的通信方式和操作系l环境,可能的可以支持更多的运行环境?br>原本计划在昨晚wince版本之后马上支持symbian操作pȝQ但对symbian的开发研I了之后让我大失所望,其开发是非常低效的且通用性能太差Q后来网上得知nokia马上抛弃symbian而怀抱linux了,qo我我马上考虑了移植linux的想?br>很多我提到静态网地图方式,当然我不能做到像googleQopenlayersq么强的客户端端Q也没精力去支持ogc那么的gis协议在地图服务器上,所以能演示基础的地囑֊能开发了php的展C端?br>flex和sliverlight都是非常好的技术,但对于ms一直没有好感,所以flex形成了我选择另一个展C客L的想法?br>|上下了一堆的flex数据Q前后从接触actionscript到做好swFlex客户端一p?天时_发觉来喜Ƣ这个东西了Q看来以后的前端开发要全换成flexq_了?br>目前做得swMap的功能非常有限,地图处理也是很简单,甚至q文本标注都没有dQ只是提供了25个图?6U别~放比在客户端展C?br>我想待我有时_我将q些都会完善h
原本很多带开发的技术也没有dQ比如aggQ地?叉树、RTreeQA*路由法
朋友l我的几个Gps模块讑֤q几天要调通ƈ攄到地图上?br>


攑ֱ阿狗 2009-08-21 03:27 发表评论
]]>
对WebGis的思烦http://www.shnenglu.com/socketref/archive/2009/08/16/93464.html攑ֱ阿狗 攑ֱ阿狗 Sat, 15 Aug 2009 16:33:00 GMThttp://www.shnenglu.com/socketref/archive/2009/08/16/93464.htmlhttp://www.shnenglu.com/socketref/comments/93464.htmlhttp://www.shnenglu.com/socketref/archive/2009/08/16/93464.html#Feedback5http://www.shnenglu.com/socketref/comments/commentRss/93464.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/93464.htmlGoogle的地图体CZ行业老大的专业,地图渲染和前端控制做得没法说
OpenLayers昑־更加灉|Q可以采用Google mapQ或者选择Mapserver、GeoServer来搭q地图处理服务器,当然技术难度和投入成本也是相当的高Q效果定是没有前者要来的好,不过要强调的是灉|?br>采用Openlayers方式应该是一个长久发展的Gis公司选择的唯一方式。Google Api很多限制使我对其产生了厌Ӟ使我无法信Q其能如其所a能一直免费下去,太多的开发license限制D无法商用Q说白了要提供完全服务就是拿钱来Q不爽!
Google Api对于非商业用的唯一的好处就是做做公司网站的位置宣传Q其他的是完全是Z推广google map而Ş式的存在?br>Google 讲到功能q远大于Openlayers方式Q但q不能迷p了q大的开发者,q完全是W罩在商业利益的阴媄之下
Google和ERSI都推Zflex的开发sdk来实现客L的地图接口,我很ƣ赏
谈到GeoServerQ其能支持那么多的数据存储Ş态我比较支持和喜Ƣ,输出也是非常的丰富,但其真正的效率呢Q用j2ee架构h的性能定是好不到哪里去
? 看那些配|GeoServer的Gis服务器想想也是可怕,集群、Oracle SDEQ这些都是些啥概c用了Postgisq?q_光用goes做geomerty的运引擎,效率也是不太理想。oracle sde也许会强很多Q但商业公司的东西性h比能好到哪里d
对于某些规模的Gis应用需求想惌是本土化自己写地囑ּ擎算了。某些应用在闭? 的网l环境之中,google和internet靠不住了;q有一些特D行业的Gis应用也许仅仅限制在某一个城镇的水利、管U等应用Q处理的数据直接 是从Cad导出的地理数据,数据的大和应用需求也军_了必采用不同的ҎQ要么自己开发的地理渲染处理Q或者用 geoserverq一cȝ东西?br>? 己在合众思壮的上L发公司呆?q多Q公司有个Gis部门Q成立了4Q?q_也做了一Ƒ֯航引擎,但是其技术陈旧、架构的不合理已l被众多的小公司甩在 了后面,但还如个宝贝一栯着揣着。想做移植到linux也无法做Q地囄加上引擎l,人员20多号人没q出什么东西出来,E微有点x的h员出来跑别的 地方打工M?br>本来我也对这个有点兴,W二q公叔Rl部门,我申请去Gis部门Q老板q以为我要搞点啥花头什么的不让去,q脆不干了?br>? 在对于swMapq个产品我已l开发了2个月Q已l完成了地图预处理、地图显C,支持win32和mobileQ系l架构支持本地地囑֒服务器渲染两U方 式。借鉴了很多opensource的东西,诸如QgisQSAGAQNaviRoad,Geos,wxArt2D,Mapserver、ogr? cairo、libsvgrQagg{有名的gis软g目Q这么久了还是有很多东西要学习的Q想惛_司真是可W,搞技术封闭只有是死\Q连sun? opensource了操作系l。幸亏自q努力才能做了q么多东?br>写着写着p题了Q篏了,不写了,q是l箋开发自q产品?img src ="http://www.shnenglu.com/socketref/aggbug/93464.html" width = "1" height = "1" />

攑ֱ阿狗 2009-08-16 00:33 发表评论
]]>
wxWidget实现贴图http://www.shnenglu.com/socketref/archive/2009/08/06/92368.html攑ֱ阿狗 攑ֱ阿狗 Wed, 05 Aug 2009 17:40:00 GMThttp://www.shnenglu.com/socketref/archive/2009/08/06/92368.htmlhttp://www.shnenglu.com/socketref/comments/92368.htmlhttp://www.shnenglu.com/socketref/archive/2009/08/06/92368.html#Feedback1http://www.shnenglu.com/socketref/comments/commentRss/92368.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/92368.html采用wx做过一定规模的大侠有时深深的有q种痛苦Q脓图也困扰了我好长旉Q特别是~放贴图Q简直异常的痛苦?br>sf.net的wxSkin也是q于的呆滞,且缺乏维护,时常挽着QT的demo而流口水到半夜,告诉自己一定以后要用QTQ特别是有了QT WINCE版本Q加上nokia现在是QT的老爸。l用wx只有期盼3.0的推ZQ可视其如老娘们生孩子Q动作实在是太慢了,{我有钱了,我来做wx的老爸好了,呵呵Q?br>
q是q于目的压力,没办法自己在wxSkin的基上添加了伸羃贴图的功能,自己实现了所有的wxSkin的功?br>



攑ֱ阿狗 2009-08-06 01:40 发表评论
]]>
q期地图有了一定的q展Q还是要l箋加ahttp://www.shnenglu.com/socketref/archive/2009/08/06/92367.html攑ֱ阿狗 攑ֱ阿狗 Wed, 05 Aug 2009 17:24:00 GMThttp://www.shnenglu.com/socketref/archive/2009/08/06/92367.htmlhttp://www.shnenglu.com/socketref/comments/92367.htmlhttp://www.shnenglu.com/socketref/archive/2009/08/06/92367.html#Feedback1http://www.shnenglu.com/socketref/comments/commentRss/92367.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/92367.html
处理了上h据,图ؓ上v的道路和区域数据


上图为旋?5度的上v地貌?br>
接下来的计划便是地图渲染服务器装上|络通信的翅膀Q实现分布式和服务器渲染。这里的分布式渲染是指客L在渲染多个地理网格块的同时可q接多个服务器实现渲染,q样如果部v在嵌入式讑֤端的话剩下的只有是|络带宽的瓶颈了?br>ICE是个非常好的通信基础框架Q也有嵌入式版本Q而且也用了多年Q就采用q个?br>某些场合只能采用socket通信?br>
flex+map也是我的接下来的计划d重点。采用flex技术,客户端安装问题就不用考虑了,直接嵌入览器,x也是一个字Q爽Q不q要再熬熬夜研究一下flex技术了Q以及后端支持的web服务器?br>web服务器当焉用php了,在我的swMap引擎提供ice服务的后端,当flexh到webӞphp完成到swMap服务器的囑Ş渲染h?br>当然map客户端的实现马上p启动Q封装成activx ocx,开发dllq些发布形式?br>
以上q些东东都实CQ做基础的移动位|服务的功能应该差不MQ而且考虑了多U系l服务框架模?br>最后就是图形和D技术的研究了。。?br>l箋熬夜。。。。?br>


攑ֱ阿狗 2009-08-06 01:24 发表评论
]]>
【地图新手】加速地图显C的考虑Q请地图高手指正http://www.shnenglu.com/socketref/archive/2008/07/16/56250.html攑ֱ阿狗 攑ֱ阿狗 Tue, 15 Jul 2008 18:37:00 GMThttp://www.shnenglu.com/socketref/archive/2008/07/16/56250.htmlhttp://www.shnenglu.com/socketref/comments/56250.htmlhttp://www.shnenglu.com/socketref/archive/2008/07/16/56250.html#Feedback0http://www.shnenglu.com/socketref/comments/commentRss/56250.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/56250.html1.       地图层的裁剪: 原始的数据图层包含大量的feature信息Q比如\径上存在大量的顶?/span>vertexQ由?/span>vertexq密Q导致绘制时消耗的旉q大Q所以对地图数据要预处理Q减化\径复杂度来加速绘刉度。自行编写处理算法,好像geos库有路径化的实现Q或者?/span>clibQ?/span>slib处理

2.       讄囑ֱ可视范围:  每种囑ֱ是否昄要根据设|的可视范围来判?/span>,没有辑ֈ指定的显C_层对象就是隐?/span>

3.       相同cd囑ֱ对象子类?/span>: 道\可以分国道、省道及更小单位的对象,每种对象划分在不同的囑ֱ上,Ҏ讑֮的可视范围来军_是否q行l制

4.       spatial indexed: 选择地图数据的存储方式来加速访问图层数据?/span>Qgis的效率很低,通过ogr库虽然能讉K多种gis数据,但是当选择REctq行搜烦时却是遍历图层所有对?/span>(feature)Q此法效率低下?/span>Rtree indexed法能改善此U效果,但目前尚无对此算法研I。选择I间数据库存储是个好的方法。对于地N中式理可以采用pgsql-postgis或?/span>mysql-sptial db,或?/span>oracle sde,发现微Ysql-server 2005目前也有I间数据库引擎?/span>

对于本地文g型地囑֭储方式,观察到很多国内地囑ּ擎商采用自q文g格式Q一个省区的地图数据处理之后只有10MQ目前尚无经历去研究此种存储方式Q唯一单的是采用sqlite+spatialite来实现空间数据存储,其实Cogc的部?/span>spatial sqlQ看其介l尚?/span>rtree(builtin),可能对于大的数据量的处理性能会差很多

5.       ~放重绘Q只有在~放操作时才q行地图数据的查询加?/span>

6.       对于q行Pan操作时^滑的现实Q采用图层显C区域缓存的方式。地图显C区域进?/span>panӞ可能要对8个方向进行拖动,比如昄区域320×240Q那h区域时请?/span>320×3Q?/span>240×3区域?/span>feature对象Q当往下拖动地图时上部的缓存区域将出现无效区域Q完成拖放时上部缓冲区域填充,此种Ҏ如同openlayers技术?/span>Qgis未采用此方式Q修改可能涉及代码挺多?/span>



攑ֱ阿狗 2008-07-16 02:37 发表评论
]]>
学习Qgis时又接触了个MapWindowhttp://www.shnenglu.com/socketref/archive/2008/07/10/55770.html攑ֱ阿狗 攑ֱ阿狗 Wed, 09 Jul 2008 18:23:00 GMThttp://www.shnenglu.com/socketref/archive/2008/07/10/55770.htmlhttp://www.shnenglu.com/socketref/comments/55770.htmlhttp://www.shnenglu.com/socketref/archive/2008/07/10/55770.html#Feedback1http://www.shnenglu.com/socketref/comments/commentRss/55770.htmlhttp://www.shnenglu.com/socketref/services/trackbacks/55770.html看了其运行效果,不错Qmapwindow 6.0开始全U用 .net开发,q不得不让我觉得有点x了Q是不是q家公司有被微Y收购的意囑֕?br>据说mapwindow的整个代码量?5w行,真是个恐龙啊
MapWindow可能作ؓ桌面pȝ对mapx的替代品,具体功能有待研究
q是老老实实研IQgis吧,之前也是从libroadnavi,saga一步步学习到现在的QGis

扑ֈ了QT4.4 for wnice的opensource代码Q很是开心,嵌入式毕竟是一个长阶段的潮,MapWindow可就做不C




攑ֱ阿狗 2008-07-10 02:23 发表评论
]]>
QGis读解。。?/title><link>http://www.shnenglu.com/socketref/archive/2008/07/03/55269.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Thu, 03 Jul 2008 15:48:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2008/07/03/55269.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/55269.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2008/07/03/55269.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/55269.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/55269.html</trackback:ping><description><![CDATA[<p class="MsoNormal"><span lang="EN-US">1.Qgsrenderer </span><span style="font-family: 宋体;">囑ֱl制器抽象基c?/span></p> <p class="MsoNormal"><span lang="EN-US"><span> </span></span><span style="font-family: 宋体;">每个</span><span lang="EN-US">renderer</span><span style="font-family: 宋体;">只能l制某一U适量囑Ş对象Q?/span> <span lang="EN-US">Qgsrenderer ::mVectorType </span><span style="font-family: 宋体;">定义了适量囑ֱcd</span><span lang="EN-US">(QGis::VectorType) ,Qgsrenderer</span><span style="font-family: 宋体;">定义了作Z个绘囑֙的基本功能接?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QgsRasterLayer </span><span style="font-family: 宋体;">通过</span><span lang="EN-US">QgsSingleSymbolRenderer</span><span style="font-family: 宋体;">实现矢量对象的绘?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">2</span><span style="font-family: 宋体;">Q?/span> <span lang="EN-US">QgsMapLayer </span><span style="font-family: 宋体;">地图囑ֱ</span></p> <p class="MsoNormal"><span lang="EN-US"><span> </span></span><span style="font-family: 宋体;">囑ֱcd</span><span lang="EN-US">: VECTOR,RASTER</span></p> <p class="MsoNormal"><span lang="EN-US">2.1 QgsVectorLayer</span><span style="font-family: 宋体;">矢量囑ֱ</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span></span><span style="font-family: 宋体;">?/span><span lang="EN-US">QgsVectorLayer</span><span style="font-family: 宋体;">对应的就?/span><span lang="EN-US">QgsRasterLayer , QgsMapLayer</span><span style="font-family: 宋体;">的子cd层对象仅仅这两种?/span></p> <p class="MsoNormal"><span lang="EN-US">2.2 QgsMapCanvasLayer </span><span style="font-family: 宋体;">L囑ֱ</span></p> <p class="MsoNormal"><span lang="EN-US">2.3 QgsMapLayerRegistry</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span></span><span style="font-family: 宋体;">存储当前所有地囑ֱ对象</span><span lang="EN-US">,</span><span style="font-family: 宋体;">提供</span><span lang="EN-US">Layer id</span><span style="font-family: 宋体;">查询</span><span lang="EN-US">MapLayer</span><span style="font-family: 宋体;">对象的功?/span><span lang="EN-US">mapLayer(layid)</span></p> <p class="MsoNormal"><span lang="EN-US">2.4 QgsMapCanvasLayer</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span>QgsMapCanvasLayer</span><span style="font-family: 宋体;">?/span><span lang="EN-US">qgis</span><span style="font-family: 宋体;">应用层的囑ֱ对象Q用于村促跟用户交互的信息,它ƈ不是</span><span lang="EN-US">Map</span><span style="font-family: 宋体;">核心数据对象</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">3.QgsFeature</span></p> <p class="MsoNormal"><span style="font-family: 宋体;">囑ֱ特征对象?/span><span lang="EN-US">QgsFeature</span><span style="font-family: 宋体;">包含若干</span><span lang="EN-US">Attribute</span><span style="font-family: 宋体;">Q一?/span><span lang="EN-US">QgsGeometry</span><span style="font-family: 宋体;">对象</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QgsLine</span></p> <p class="MsoNormal"><span lang="EN-US"><span> </span>QgsLine</span><span style="font-family: 宋体;">?/span><span lang="EN-US">2</span><span style="font-family: 宋体;">?/span><span lang="EN-US">QgsPoint</span><span style="font-family: 宋体;">构成的线D?/span></p> <p class="MsoNormal"><span lang="EN-US">4. QgsMapRender </span></p> <p class="MsoNormal"><span lang="EN-US">QgsMapCanvasMap</span><span style="font-family: 宋体;">利用此对象实现绘Ӟ无子cd现。当</span><span lang="EN-US">canvas</span><span style="font-family: 宋体;">产生事gQ诸如大调整、移动、羃攄{请求时Q?/span><span lang="EN-US">QgsMapCanvas</span><span style="font-family: 宋体;">h</span><span lang="EN-US">QgsMapCanvasMap</span><span style="font-family: 宋体;">q行hl制Q后者调?/span><span lang="EN-US">QgsMapRender::render()</span><span style="font-family: 宋体;">q行l制囑ֱ?/span></p> <p class="MsoNormal"><span lang="EN-US">Render(){</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span>QgsMapRender</span><span style="font-family: 宋体;">内部保留囑ֱ名称数组Q根据图?/span><span lang="EN-US">id</span><span style="font-family: 宋体;">?/span><span lang="EN-US">QgsMapLayerRegistry</span><span style="font-family: 宋体;">中获取图层对象,l制囑ֱ从最底部开始?/span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span></span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">5.OgsMapCanvas</span><span style="font-family: 宋体;">囑ֱl制?/span></p> <p class="MsoNormal"><span lang="EN-US">N</span><span style="font-family: 宋体;">个图层是l制?/span><span lang="EN-US">QgsMapCanvasMap</span><span style="font-family: 宋体;">q个对象之上的,q个对象?/span><span lang="EN-US">Qt</span><span style="font-family: 宋体;">的绘制对?/span></p> <p class="MsoNormal"><span lang="EN-US">QgsMapCanvasMap</span><span style="font-family: 宋体;">其实是提供</span><span lang="EN-US">OgsMapRender</span><span style="font-family: 宋体;">的绘制缓Ԍ最l还是请?/span><span lang="EN-US">QgsMapRender</span><span style="font-family: 宋体;">q行囑ֱl制?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">6. QgsProviderRegistry</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span>Qgis</span><span style="font-family: 宋体;">的数据源作ؓ一?/span><span lang="EN-US">provider</span><span style="font-family: 宋体;">被登记?/span><span lang="EN-US">QgsProviderRegistry</span><span style="font-family: 宋体;">对象?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体;">创徏一个新的矢量图?/span> </p> <p class="MsoNormal"><span lang="EN-US">QgsProviderRegistry</span><span style="font-family: 宋体;">中查?/span><span lang="EN-US">ogr</span><span style="font-family: 宋体;">?/span><span lang="EN-US">provider</span><span style="font-family: 宋体;">Q创Z?/span><span lang="EN-US">ogr</span><span style="font-family: 宋体;">的矢量数据空?/span><span style="color: blue;" lang="EN-US">createEmptyDataSource<o:p></o:p></span></p> <p class="MsoNormal"><span style="color: blue;" lang="EN-US">QgsOgrProvider</span><span style="font-family: 宋体; color: blue;">作ؓ</span><span style="color: blue;" lang="EN-US">QgsVectorDataProvider</span><span style="font-family: 宋体; color: blue;">的子c,</span><span style="color: blue;" lang="EN-US">QgsVectorDataProvider</span><span style="font-family: 宋体; color: blue;">作ؓ接口被其他模块访?/span><span style="color: blue;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US">new QgsVectorLayer(ogr){</span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span>new QgsSingleSymbolRenderer()</span></p> <p class="MsoNormal"><span lang="EN-US">}</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QgsMapToPixel </span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span></span><span style="font-family: 宋体;">地图单位到屏q像素位|的转换Q这个操作非常简单,Ҏ讑֮的每像素地图大小单位来计地囑֍?/span><span lang="EN-US">(world)</span><span style="font-family: 宋体;">到屏q像素的转换Q反之亦?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QgsProject </span><span style="font-family: 宋体;">?/span><span lang="EN-US">QgsProjectFileTransform</span><span style="font-family: 宋体;">?/span><span lang="EN-US">Qgsversion</span></p> <p class="MsoNormal"><span style="font-family: 宋体;">q些cȝ?/span><span lang="EN-US">qgis</span><span style="font-family: 宋体;">目信息理之用Q项目文件类型名</span><span lang="EN-US">.qgs,</span><span style="font-family: 宋体;">格式?/span><span lang="EN-US">xml</span><span style="font-family: 宋体;">?/span><span lang="EN-US">QgsProjectFileTransform</span><span style="font-family: 宋体;">用于不同版本?/span><span lang="EN-US">qgis</span><span style="font-family: 宋体;">的功能文件的转换</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QgsSymbol</span></p> <p class="MsoNormal"><span style="font-family: 宋体;">q个cM斚w是实现绘制图层类型的</span><span lang="EN-US">Icon</span><span style="font-family: 宋体;">Q?/span><span lang="EN-US">Qgis</span><span style="font-family: 宋体;">中如果创建新?/span><span lang="EN-US">line</span><span style="font-family: 宋体;">矢量层,则这个层的图标显C在层显C树的节点的</span><span lang="EN-US">Icon</span><span style="font-family: 宋体;">是?/span><span lang="EN-US">QgsSymbol</span><span style="font-family: 宋体;">l制产生</span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span lang="EN-US"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:65.25pt; height:54.75pt'"> <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg" v:shapes="_x0000_i1025" height="73" width="87"><!--[endif]--></span></p> <p class="MsoNormal"><span style="font-family: 宋体;">另一斚w</span><span lang="EN-US">,</span><span style="font-family: 宋体;">在编辑矢量图层时Q添加的U段都有两端的节点点Q?/span><span lang="EN-US">QgsSymbol</span><span style="font-family: 宋体;">是l制q个节点</span> </p> <p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:264.75pt;height:168pt'"> <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image003.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image004.jpg" v:shapes="_x0000_i1026" height="224" width="353"><!--[endif]--></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span style="font-family: 宋体;">矢量囑ֱcd</span><span lang="EN-US">:</span></p> <p class="MsoNormal"><span lang="EN-US"><span>    </span>Point,</span></p> <p class="MsoNormal"><span lang="EN-US"><span>    </span>Line,</span></p> <p class="MsoNormal"><span lang="EN-US"><span>    </span>Polygon,</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">QgsMapTip</span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: 宋体;">囑ֱ地标提示。当鼠标?/span><span lang="EN-US">MapCanvas</span><span style="font-family: 宋体;">上移动时</span><span lang="EN-US">,MapTip</span><span style="font-family: 宋体;">被一个定时器驱动Q这?/span><span lang="EN-US">MapTip</span><span style="font-family: 宋体;">当前地囑֝标作Z心点Q围l这个点产生一个选择区域</span><span lang="EN-US">(<span>  </span>double searchRadius = mpMapCanvas->extent().width() * (QGis::DEFAULT_IDENTIFY_RADIUS / 100.0 );)</span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: 宋体;">q个区域作ؓ搜寻区域提交l?/span><span lang="EN-US">ogr-provider</span><span style="font-family: 宋体;">查找地图?/span><span lang="EN-US">Feature</span><span style="font-family: 宋体;">对象</span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;"><span style="font-family: 宋体;">再找</span><span lang="EN-US">Featrue</span><span style="font-family: 宋体;">的可昄的字D,然后?/span><span lang="EN-US">QToolTip</span><span style="font-family: 宋体;">q行昄?/span><span style="color: blue;"> <span lang="EN-US">QToolTip</span></span><span style="font-family: 宋体; color: blue;">最l是要被替换掉的</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <h3><span lang="EN-US">QgsFieldMap</span></h3> <p class="MsoNormal"><span lang="EN-US">typedef QMap<int, QgsField> QgsFieldMap;</span></p> <p class="MsoNormal"><span style="font-family: 宋体;">矢量囑ֱ的对象具有多个属性,可以在添加编辑对象时讄q些属?/span></p> <p class="MsoNormal"><span lang="EN-US"><!--[if gte vml 1]><v:shape id="_x0000_i1027" type="#_x0000_t75" style="'width:141.75pt;height:161.25pt'"> <v:imagedata src="file:///C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\msohtml1\01\clip_image005.png" o:title=""/> </v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image006.jpg" v:shapes="_x0000_i1027" height="215" width="189"><!--[endif]--></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">attributeFields[CmtAttr] = QgsField(attr[CmtAttr], QVariant::String, "text");</span></p> <p class="MsoNormal"><span style="font-family: 宋体;">以上代码可以添加一U属性类?/span><span lang="EN-US"> </span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <h3><span style="font-family: 宋体;">地图距离单位</span><span lang="EN-US">:</span></h3> <p class="MsoNormal"><span lang="EN-US">METERS,</span></p> <p class="MsoNormal"><span lang="EN-US">FEET,</span></p> <p class="MsoNormal"><span lang="EN-US">DEGREES,</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US">Mbr : </span><span style="font-family: 宋体;">可能全称</span><span lang="EN-US"> Max boundary Rectangle</span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <h3><span style="font-family: 宋体;">坐标转换</span><span lang="EN-US">: </span></h3> <p class="MsoNormal"><span lang="EN-US"><span> </span><span>     </span>1.</span><span style="font-family: 宋体;">I间坐标转换</span><span lang="EN-US">: long/lat</span><span style="font-family: 宋体;">坐标投媄C界地囑֝?/span> <span style="font-family: 宋体;">?/span><span lang="EN-US">QgsCoordinateTransform</span><span style="font-family: 宋体;">实现?/span></p> <p class="MsoNormal"><span lang="EN-US"><span>       </span>2.</span><span style="font-family: 宋体;">世界坐标转换到屏q坐标?/span><span lang="EN-US">QgsMapToPixel</span><span style="font-family: 宋体;">实现?/span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;" lang="EN-US">//</span><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;">数学?/span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">#define PI 3.1415926<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;" lang="EN-US">//</span><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;">角度转弧?/span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">#define DEG_TO_RAD(ang) ((ang)*PI/180.0)<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;" lang="EN-US">//</span><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;">弧度转角?/span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">#define RAD_TO_DEG(rad) ((rad)*180.0/PI)<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;" lang="EN-US">//</span><span style="font-size: 7.5pt; font-family: 宋体; color: #009900;">取得<span lang="EN-US">x~y</span>之间L一个?/span><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: left;" align="left"><span style="font-size: 12pt; font-family: 宋体;" lang="EN-US">#define RAND_RANGE(x,y) ((x) + rand() % ((y) - (x) + 1)))<o:p></o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p> <h2><span lang="EN-US">GPX</span></h2> <p class="MsoNormal"><span lang="EN-US"><a >www.gpsbabel.org</a> </span><span style="font-family: 宋体;">是不?/span><span lang="EN-US">gps</span><span style="font-family: 宋体;">日志数据的通用解析和{换工?/span></p> <p class="MsoNormal"><span lang="EN-US">gps log</span><span style="font-family: 宋体;">数据分类</span><span lang="EN-US">: </span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;"><!--[if !supportLists]--><span style="font-family: wingdings;" lang="EN-US"><span>l<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">         </span></span></span><!--[endif]--><span lang="EN-US">Waypoints: </span><span style="font-family: 宋体;">我的行径上要路过的点。比如我d京,Z到徐州拜访朋友,所以途经的徐州是我要停留?/span><span lang="EN-US">waypoint</span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;"><!--[if !supportLists]--><span style="font-family: wingdings;" lang="EN-US"><span>l<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">         </span></span></span><!--[endif]--><span lang="EN-US">Routes</span><span style="font-family: 宋体;">Q?/span> <span style="font-family: 宋体;">是指所?/span><span lang="EN-US">WayPoint</span><span style="font-family: 宋体;">的集合构成的U\</span></p> <p class="MsoNormal" style="margin-left: 21pt; text-indent: -21pt;"><!--[if !supportLists]--><span style="font-family: wingdings;" lang="EN-US"><span>l<span style="font-family: "Times New Roman"; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">         </span></span></span><!--[endif]--><span lang="EN-US">Tracks</span><span style="font-family: 宋体;">Q?/span> <span style="font-family: 宋体;">我途经的\上所有走q的轨迹?/span><span lang="EN-US">(</span><span style="font-family: 宋体;">因该是最多的数据?/span><span lang="EN-US">)</span></p> <p class="MsoNormal"><span lang="EN-US">WayPoint</span><span style="font-family: 宋体;">?/span><span lang="EN-US">route</span><span style="font-family: 宋体;">我理解ؓ是面向应用的Q?/span><span lang="EN-US">Track</span><span style="font-family: 宋体;">是基础数据Q是物理的记?/span></p> <p class="MsoNormal"><span style="font-family: 宋体;">看看老外的注?/span></p> <pre><span lang="EN-US">><em> a) waypoint</em></span></pre> <pre><span lang="EN-US"><o:p> </o:p></span></pre> <pre><span lang="EN-US">A geopoint with some special tags like name, comment and the like. </span></pre> <pre><span lang="EN-US">Usually used to mark special locations as your home, a hotel or a </span></pre> <pre><span lang="EN-US">geocache. Huge collections of gas stations, post boxes, shops and the </span></pre> <pre><span lang="EN-US">like are called "points of interest" (aka POIs).</span></pre> <pre><span lang="EN-US"><o:p> </o:p></span></pre> <pre><span lang="EN-US">><em> b) track</em></span></pre> <pre><span lang="EN-US"><o:p> </o:p></span></pre> <pre><span lang="EN-US">A collection of geopoints recorded by your GPS device while traveling. A </span></pre> <pre><span lang="EN-US">trackpoint doesn't have a name or comment, but it usually has a </span></pre> <pre><span lang="EN-US">timestamp. This distibguishes a trackpoint from a waypoint.</span></pre> <pre><span lang="EN-US"><o:p> </o:p></span></pre> <pre><span lang="EN-US">><em> c) route</em></span></pre> <pre><span lang="EN-US"><o:p> </o:p></span></pre> <pre><span lang="EN-US">A collection of waypoints defining the route you want to pass while </span></pre> <pre><span lang="EN-US">traveling. </span></pre> <p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p><img src ="http://www.shnenglu.com/socketref/aggbug/55269.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2008-07-03 23:48 <a href="http://www.shnenglu.com/socketref/archive/2008/07/03/55269.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Mapserver?配置WMS 服务?/title><link>http://www.shnenglu.com/socketref/archive/2008/07/02/55094.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Tue, 01 Jul 2008 18:12:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2008/07/02/55094.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/55094.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2008/07/02/55094.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/55094.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/55094.html</trackback:ping><description><![CDATA[MapServer安装之后q不hWMS服务功能<br>所有的配置围绕着Mapfileq行<br>【http://mapserver.gis.umn.edu/docs/howto/wms_server?br>1.判别当前MapServer是否支持WMS<br>#>mapserv.exe -v <br> MapServer version 4.6.1 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=PDF OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=FREETYPE SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE DEBUG=MSDEBUG<br>看到以上内容ok?br>2.修改mapfile<br>对于mapserver 5.0 的样例数?workshop-50.zip<br>d: <span style="font-family: monospace;"><br></span>PROJECTION<span style="font-family: monospace;"><br></span> "init=epsg:4269"<span style="font-family: monospace;"><br></span>END <br> <pre class="literal-block">"wms_onlineresource" "http://192.168.14.65:8080/cgi-bin/mymap.exe?"<br>httpd.conf d<br>SetEnvIf Request_URI "/cgi-bin/mymap.exe" MS_MAPFILE=c:/gis/ms4w/Apache/htdocs/workshop-50/itasca.map <br>路径不能?"?br>复制mapserve.exe 为mymap.exe<br>3.重新启动 httpd.exe<br>4.试Q?br> jump或者qgis试Q添加wms?Qbrowserd http://192.168.14.65:8080/cgi-bin/mymap.exe? <br>选择一些layer可以查看喽<br></pre> <br><br> <img src ="http://www.shnenglu.com/socketref/aggbug/55094.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2008-07-02 02:12 <a href="http://www.shnenglu.com/socketref/archive/2008/07/02/55094.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【Mapserver】初试体?/title><link>http://www.shnenglu.com/socketref/archive/2008/07/01/55082.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Tue, 01 Jul 2008 15:31:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2008/07/01/55082.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/55082.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2008/07/01/55082.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/55082.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/55082.html</trackback:ping><description><![CDATA[Mapserver的安装介质可?http://mapserver.gis.umn.edu下蝲<br>安装也非常简单,选择何时的服务http端口可以了Q这里我选择?080<br>下蝲ms4w 5.0的App数据 workshop-5.0.zip<br>其单解压羃?$apache/htdocs下即可;创徏$(apache)/tmp目录<br>修改worksop-5.0/index.html文gQ将其中 IMAGEPATH,IMAGEURL 修改为workship-5.0的\径即?br><br> // EDIT THE NEXT 2 LINES TO MATCH YOUR SETUP<br>        var snippet = "IMAGEPATH 'C:/gis/ms4w/Apache/htdocs/tmp/'";<br>        snippet += " IMAGEURL '/tmp/'";<br>  <!-- EDIT THESE HIDDEN VARIABLES --><br>      <input type="hidden" name="map" value="C:\gis\ms4w\Apache\htdocs\workshop-5.0\itasca.map"><br>      <input type="hidden" name="program" value="/cgi-bin/mapserv.exe"><br>      <input type="hidden" name="root" value="/workshop-5.0">    <br><br>来测试一?nbsp; http://127.0.0.1/workshop-5.0,卛_看到itasca.map?br><br>好好研究一把mapserver,配置好wms/wfs server 看看用openlayers/Qgis的效?br> <img src ="http://www.shnenglu.com/socketref/aggbug/55082.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2008-07-01 23:31 <a href="http://www.shnenglu.com/socketref/archive/2008/07/01/55082.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【OpenLayers】Vector~辑使用flash技?/title><link>http://www.shnenglu.com/socketref/archive/2008/07/01/55081.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Tue, 01 Jul 2008 15:23:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2008/07/01/55081.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/55081.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2008/07/01/55081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/55081.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/55081.html</trackback:ping><description><![CDATA[如题Q今天google是愁到这个问?br>flash实现在无处不在Q所以不存在是否要求client browser安装已否Q已l成了标配?br>目前没有仔细研读qopenlayers的实C码,所以两者的l合会有哪些问题目前不能给出区分,不过openlayers囑ֱ的编辑MarkerQ确实是个头疼的问题Qjavascript再强Q实现的隑ֺq是人尽q的,所以flash实个是补充的好Ҏ<br>花时间研I吧<br><br><img src ="http://www.shnenglu.com/socketref/aggbug/55081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2008-07-01 23:23 <a href="http://www.shnenglu.com/socketref/archive/2008/07/01/55081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几个优秀的图形相兛_源项?/title><link>http://www.shnenglu.com/socketref/archive/2008/04/04/46232.html</link><dc:creator>攑ֱ阿狗 </dc:creator><author>攑ֱ阿狗 </author><pubDate>Thu, 03 Apr 2008 18:40:00 GMT</pubDate><guid>http://www.shnenglu.com/socketref/archive/2008/04/04/46232.html</guid><wfw:comment>http://www.shnenglu.com/socketref/comments/46232.html</wfw:comment><comments>http://www.shnenglu.com/socketref/archive/2008/04/04/46232.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/socketref/comments/commentRss/46232.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/socketref/services/trackbacks/46232.html</trackback:ping><description><![CDATA[cairo<br>agg<br>wxArt2D<br>geos<br><br><br> <img src ="http://www.shnenglu.com/socketref/aggbug/46232.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/socketref/" target="_blank">攑ֱ阿狗 </a> 2008-04-04 02:40 <a href="http://www.shnenglu.com/socketref/archive/2008/04/04/46232.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.nuonuoxiye.cn" target="_blank">޹˾þۺҰ</a>| <a href="http://www.deiden.cn" target="_blank">һaƬþëƬ</a>| <a href="http://www.kapatina.cn" target="_blank">ŷСþþþþþ </a>| <a href="http://www.cfgcurn.cn" target="_blank">þAAAƬ69</a>| <a href="http://www.todouba.cn" target="_blank">һaƬþëƬ</a>| <a href="http://www.tmsystem888.cn" target="_blank">ĻƷѾþ5151</a>| <a href="http://www.tupw.cn" target="_blank">þӰ㶮</a>| <a href="http://www.dszixun.cn" target="_blank">Ʒþ</a>| <a href="http://www.sskmk.cn" target="_blank">ۺϾƷ㽶þ97</a>| <a href="http://www.id19.cn" target="_blank">ɫۺɫþû</a>| <a href="http://www.0513act.cn" target="_blank">ƷŮþþ </a>| <a href="http://www.sun-yan.cn" target="_blank">޹Ʒþþþ</a>| <a href="http://www.fsxyzx.cn" target="_blank">Ʒþþþ9999</a>| <a href="http://www.52cxw.cn" target="_blank">㽶þҹɫƷС˵</a>| <a href="http://www.ssc832.cn" target="_blank">Ļ˾Ʒþò </a>| <a href="http://www.hedaji.cn" target="_blank">ձƷþþþӰԺձ</a>| <a href="http://www.tbssyc.cn" target="_blank">þþƷɫ鶹</a>| <a href="http://www.bjnyjdxcj.cn" target="_blank">Ļ޹˾þþƷ</a>| <a href="http://www.sdmtsk.cn" target="_blank">һaƬþëƬ</a>| <a href="http://www.yaott2.cn" target="_blank">ŷƷ99þ</a>| <a href="http://www.qd-online.cn" target="_blank">þ㽶߿ۿƷyw</a>| <a href="http://www.bev5l.cn" target="_blank">99þþþƷ</a>| <a href="http://www.have123.cn" target="_blank">ŷձþþƷ</a>| <a href="http://www.68gz.cn" target="_blank">Ըߺþþþþþþ</a>| <a href="http://www.zzcjw.cn" target="_blank">99þۺϾƷ</a>| <a href="http://www.gloven.cn" target="_blank">ҹƷþþþþ</a>| <a href="http://www.hpexpfe.cn" target="_blank">㽶þavһ</a>| <a href="http://www.reeway.cn" target="_blank">þþƷһ</a>| <a href="http://www.zfse4m.cn" target="_blank">þŷ޹ۺ</a>| <a href="http://www.xiaominblog.cn" target="_blank">޾ƷþþþþͼƬ </a>| <a href="http://www.25jt.cn" target="_blank">þù׾Ʒǿ</a>| <a href="http://www.xnrb.net.cn" target="_blank">þþþùƵӰ</a>| <a href="http://www.07sn.cn" target="_blank">ĻþþƷAPP</a>| <a href="http://www.sxysw.cn" target="_blank">㽶þþƷ</a>| <a href="http://www.seekme.com.cn" target="_blank">ŷСþþþþþ</a>| <a href="http://www.szbomeidisplays.cn" target="_blank">þAV </a>| <a href="http://www.caipusheji2016.cn" target="_blank">2021þþƷ99Ʒ</a>| <a href="http://www.91share.com.cn" target="_blank">Ʒ99þþþ </a>| <a href="http://www.mengdie.net.cn" target="_blank">þӰۺ</a>| <a href="http://www.2782yh.cn" target="_blank">ھƷþþĻ</a>| <a href="http://www.blog060422.cn" target="_blank">þþþ޾Ʒ˵</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>