感谢老早前李兄做的tech talk,一直有人在问及51ditu和mapbar什么的都怎么做的,老是记不住这些开源的东东都什么名字,特做下记录。

下图是一个完整的方案图:

点击在新窗口中浏览此图片

其中所涉及的开源技术有:



软件名称License?

类型

编程?

语言

运行环境用途
PostGISGPLPlpgsqlPostgresql存储数据
MapServerMapServer LicenseC++UNIX   like/ Windows提供地图相关服务
TileCacheBSDPythonAll   Platform图片缓存
OpenLayersBSDJavascript IE/Firefox客户端展现控制
GDAL/OGRMIT   LicenseC++UNIX   like/ Windows数据格式导换


再简单解释下:
1.PostGis是PGSQL的一个扩展,在遵循OpenGIS规范下,提供空间对象、空间索引、空间操作函数和空间操作符等空间信息服务功能。

2.MapServer可以提供openGIS规范的各种接口。

3.MapServer根据参数中指定的路径读取mapfile文件和SLD文件。

4.使用SLD(Styled Layer Descriptors ), Mapfile控制地图显示样式。

5.根据SLD和mapfile的样式参数,配合GD(Graphics Library)进行的图形制作。

6.查询只与pgsql有关

在Flex里引用library project 不指定

Category : Flex技术 | Post on 2009/01/06 17:30 by gdgzboy | Comments:0
首先建立flex library project,然后编写自己的逻辑...

编写完毕后,记得编译...

然后建立flex project...右击项目,选择菜单最下方的"属性"(properties),然后选中左边列表倒数第二个的"project references",找到你刚建立的flex library project,把project勾选上,接着选中左边列表的"Flex build path",然后在右边标签页激活"Library path"标签页,在最右方点击按钮"Add Project",选中你刚勾选的library project,然后一路确定...

然后就可以在flex project里使用library project里的东西了...

每次修改library project里的方法,记得要重新编译library project...

如果要在把library project里的类,当成标签使用的话...你得先建立一份XML文件(文件名随便),文件内容大概如下:



然后可以右击library project,然后选择最下方的"properties",然后找到找到左边列表的flex library compiler,右边有个Namespace URL和Manifest file,namespacer url 随便填写(例如:http://www.adobe.com/2006/mxml),manifest file可以点击后面的"browse",然后选中你建立的XML,然后点击OK...

然后编译library project...

然后在flex project里面,在mxml根节点(application节点)增加属性如下:

<mx:Application xmlns:customLib="http://www.adobe.com/2006/mxml" />

然后就可以在application节点里像使用button那样使用你自己的自定义类了...

<customLib:UserModel id="um" />

好了,说完了,闪人,有事留言...
db.bak为数据库

playnew为网站主目录,主要逻辑在app_code\flash.cs

videodemo为flex项目,主要是把从.net取过来的dataset(经过一定序列化)绑定到datagrid上(实际datagrid只支持单个datatable绑定,所以在.net端的序列化要求一个dataset只能存一张datatable).

flex项目为asp.net依赖,请自行修改对应项(域名与主目录)

有任何疑问,欢迎交流...

代码下载:
下载文件 (已下载 133 次)
演示地址:

http://mag.niuc.net/view.aspx?id=demo

内容是从新浪电子杂志频道里弄来的,如果任何人觉得侵权了,请留言。马上换掉。。。

要代码的请勿联系,本项目为公司的开发项目,恕不能提供代码。。。

本系统采用了国外的两个开源项目Flex Image Zoom Drag ComponentFlexbook整合的,有兴趣可以去看看。。。

欢迎技术交流,拒绝索要代码。。。

Flex 4 发布 不指定

Category : Flex技术 | Post on 2008/08/23 16:16 by gdgzboy | Comments:0
Flex 4,代号Gumbo ,现在可以在 Adobe 的开源网站上下载了,这次的版本更新据说是为了Flash 10 和 Thermo的发布做准备。

下载 Flex 4

Flash Debug最新版下载(9.0.115) 不指定

Category : Flex技术 | Post on 2008/03/28 20:52 by gdgzboy | Comments:0
很多人在使用flex时,发现不能调试,一点调试就会出现如下信息:

引用
Flex Builder cannot locate the required debug version of the Flash Player. You may need to install the debug version of the Flash Player 9.0 or reinstall Flex Builder.


这是因为没有安装debug版的flash player...导致无法调试...

下载以下文件安装(来自Adobe官方),就可以实现调试了...



如果有任何问题请留言说明...

Flex地图应用教程(一) 不指定

Category : Flex技术 | Post on 2008/03/22 14:47 by gdgzboy | Comments:2
      用FLEX做地图,然后在地图上实现各种应用,我想大家都会非常的希望自己能够做到这样.来我BLOG的,很多都是初级进入FLEX或者FLASH的朋友,所以我决定写一个系列的FLEX地图应用,但是到底会分成几篇,我也不敢说的那么肯定,我向来是想到那里就写到哪里.文章会一次性就完事,所以有错别字,各位就忽略吧.

      回到正题,FLEX应用地图,我想大家都知道,做的最完善的就是YAHOO地图,可惜YAHOO地图没有中国什么事,所以做为国人,还是希望可以做自己国家的地图,然后才能有CASE可以做.这次我选用了,目前比较完善的The Earthplayer(地球玩家)的API,目前此API已经包括了LIVE,GOOGLE,51地图三个版本,应当算是非常好了.不过我这里要说一下的是,目前The Earthplayer已经没有开源了,因为据我了解在The Earthplayer开源大半年的情况下,进度基本毫无效果,可以看出国内的开源情况有多糟糕,对于The Earthplayer的开发者,个人认为是值得理解的.妻不如妾,妾不如偷,我想就是这个道理吧.只要让你得不到,估计你才会记在心里.

      不过,幸好我是个懒人,只要给我一个完善的文档,我不需要知道里面怎么运算,我只需要知道怎么去应用这项工具就行.具体的就让原开发者去操心吧. 所以,这几篇教程也只对像我这样的应用者有用,其他的想知道怎么地图运算的,就忽略吧.

      思考: 首先我们要导入API,然后用API里的接口与FLEX联系起来,无论怎么样,我们首先要做的就是把地图先显示出来.AIP下载地址:点击

      动手:导入API,就是你打开下载的RAR包后,解压开,然后把里面的earthplayerlib.swc,别说不会啊,否则拖出去打.下面就是代码了.

        <?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="400"
                //提取API里我们所需要的接口  xmlns:maps="com.earthplayer.maps.*"
   creationComplete="init()"  backgroundGradientColors="[#ffffff, #ffffff]">
    <mx:Script>
      <![CDATA[                        
              //这是北京的一个经纬坐标
            public var centerPoint:Point = new Point(116.37819,39.92374);
               //放大和缩小的参数.
             public var zoom:int = 6;        
              
              public function init():void{
              //设置地图目前红心对的地方
             maps.setCenter(centerPoint,zoom);          
      }      
      ]]>
    </mx:Script>
   //这里你可以实行三种地图切换,如<maps:Map51ditu ,或者<maps:MapGoogle ,下面是LIVE地图
    <maps:MapLive id="maps" width="100%" height="100%"/>
</mx:Application>

      这样,我们就能实现下面这样的一个简单的显示地图的DEMO了.


     不错,不错,第一步算是完成了.那么我们如何来控制放大地图和缩小地图呢?聪明点的朋友,琢磨下代码,估计马上就明白了,对,就是让ZOOM参数绑定到Button或者其他什么控件上.

     思考:由点击Button来得到一个参数,然后再把参数传递到一个专门用来显示地图的构造函数里,这样,我们需要在那个构造函数里,需要重新new Point,才能显示更新后的地图.更重要的一点是,我们可能用鼠标移动过地图了,那么那个POINT肯定是有变化的,所以我们需要知道在点Button前,那个POINT的变化.那么我们就需要全局变量来保存当前POINT的数据,更重要的是,还需要监听地图移动的情况,这样才能得到一个当前POINT的数据.

      动手:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="400"
  xmlns:maps="com.earthplayer.maps.*"
   creationComplete="init()"  backgroundGradientColors="[#ffffff, #ffffff]">
    <mx:Script>
      <![CDATA[
          //导入需要的事件和语法
          import com.earthplayer.maps.MapUpdateCenterEvent;
          import com.earthplayer.maps.MapController;
          //坐标的两个全局变量        
          private var lngNum:String;
            private var latNum:String;        
        
        public function init():void{
          //先默认定位为北京
          maps.setCenter(new Point(116.37819,39.92374),5);
          //把两个数字参数返回到变量,因为变量是字符型,所以需要toString(),把数字转换为字符。
          lngNum =  116.37819.toString();
          latNum = 39.92374.toString();
          //地图需要监听移动        
          maps.addEventListener(MapUpdateCenterEvent.UPDATECENTER,updateStatus);          
        }
        //当地图移动时,重新得到一个POINT值。
        private function updateStatus(event:*):void{
          //为什么这么写?因为这是API内置运算函数,就照着写了          
          var mc:MapController = maps.controller;        
                 lngNum = Math.round(mc.centerLngLat.x*100000)/100000 "";                
                 latNum = Math.round(mc.centerLngLat.y*100000)/100000 "";        
                 zoom.value = mc.zoom;            
      }
         private function Big():void{
           //放大的最高上限为17,如果小于17就可以放大,如果大于17了,就不动
            if(zoom.value < 17){
               zoom.value  = 1;
               }
               //在放大后,重新得到一个ZOOM值,然后在把这个值放到showMap()里,然后再显示地图
                showMap();        
         }
         private function Small():void{
           //缩小的最小下限
           if(zoom.value > 5){
               zoom.value -= 1;
               }
               showMap();
         }
         //专门显示地图的构造函数
         private function showMap():void{
             var p:Point = new Point(new Number(lngNum), new Number(latNum ));
             var z:int = zoom.value;                          
             maps.setCenter(p,z);
           }
      ]]>
    </mx:Script>
    <maps:MapLive id="maps" width="100%" height="100%" />
    <mx:Button id="zoomBig" label=" " click="Big()"/>
     <!--Hsilder的一般用法,具体用法请参考帮助,但是如果拖动HSILER后,就会得到一个ZOOM值,然后再到showMap() -->
    <mx:HSlider x="78" y="281" snapInterval="1"
         liveDragging="true" change="showMap()" tickInterval="1" id="zoom"  minimum="5" maximum="17" value="5"/>
    <mx:Button id="zoomSmall" label="-" click="Small()"/>
</mx:Application>

     代码写完后,我们就会得到以下那样的DEMO

   恩,效果还不错.这样这第一部分算是讲完了,属于一个尝鲜的过程.

FLEX地图应用教程之二
    

Flex 3 正式版注册码(cdkey) 不指定

Category : Flex技术 | Post on 2008/03/13 10:16 by gdgzboy | Comments:0
注册码:1377-4167-5844-4698-0048-5821

下载地址请看Flex Builder 3.0正式版+破解补丁
Tags: , ,

在Flex 2.0.1中使用动态CSS 不指定

Category : Flex技术 | Post on 2008/03/02 20:35 by gdgzboy | Comments:0
英文原文:《Using Dynamic CSS in Flex 2.0.1》
原文地址:http://www.keaura.com/blog/
作者:Peter Ent
译者:Dreamer

在Flex 2.0.1中使用动态CSS

Flex 2.0.1 的特性之一就是可以动态加载CSS文件。这就使得你的程序在只有一个SWF文件的情况下有多个不同的外观。换句话说,就是不需要多个SWF来对应多个CSS文件。

示例

这里有一个简单的例子。创建一个Flex程序,其中有一个Panel控件,Panel中有一个Label和一个Button。然后创建两个CSS文件:

red_styles.css:

green_styles.css:
Tags: ,

用Flex从前往后开发RIA 第一部分 夜晚

Category : Flex技术 | Post on 2008/03/02 20:17 by gdgzboy | Comments:0
原文是:Building RIAs from Front to Back – Part 1: Understanding the Approach
原文地址:http://www.adobe.com/devnet/flex/articles/frontback_pt1.html

用Flex从前往后开发RIA 第一部分:理解这种方式

现在我们不再被原始的界面控件和难以理解的请求/响应(request/response)体系结构所束缚,富因特网应用程序(Rich Internet Applications,以下简称RIAs,译者注)正在改变我们在网上处理事情的方式。随着Adobe Flex 2.0 Beta 的发布,使web开发者构建出比较丰富的应用程序变成了现实。

但是随着技术的发展,对传统web开发者的观念也提出了严峻的挑战。我们经常看到这样的问题:刚刚接触Flex的web开发者试图用‘以页面为中心’或‘请求/响应’(request/response)的观念构建RIAs。为了充分发挥RIAs的优势,开发者必须开始用RIAs的方式思考,把注意力集中到他们提供的丰富的用户体验(user experience)上面来。

这篇文章是开发者中心(Developer Center)的一系列文章中的第一篇,这一系列文章探索一种创新的,被证明有效的开发RIAs的方式。这种方式就是把注意力集中在用户体验上而不是其它。在这篇文章中我们会介绍一种“从前往后(front to back)”开发的观念,在这种开发方式里,用户体验成为了开发过程中的第一驱动,而不是事后才考虑的事情。我们将讨论如何利用Flex 2.0 Beta来实现这种方式,Flex 2.0 Beta的特色使得这种方式非常成功。我们还将针对如何用这种方式将下一代的软件移植到web上给出一些提示和建议。

在Flex中使用资源包 夜晚

Category : Flex技术 | Post on 2008/03/02 19:54 by gdgzboy | Comments:0
英文原文:《Using Resource Bundles in Flex》
原文作者:Brian Deitte
原文地址:http://webddj.sys-con.com/read/276863.htm
译者:Dreamer

在Flex中使用资源包


现在是一个需要多国语言应用程序的时代。Eso es la verdad(这是一个不争的事实,西班牙语)。在Flex中,这个问题的解决方案就是资源包。在这篇文章中,我将描述资源包的基本用法并使用Flex Builder创建了一个小例子。同时我也提供了一些关于更深层次探索的资源以及关于这个特性在未来可能的趋势的一些想法。

资源包基本用法

一个资源包是一个简单的文件,通常叫做属性(properties)文件,里面保存的是key和value。资源包的文件格式和Java属性文件格式很类似,每一行都是 “key=value” 这种格式。它同Java属性文件格式的主要区别是包含非ASCII码的文件需要被保存为UTF-8格式。

属性文件应该放到可以被编译器检测到的路径下,编译器检测资源文件的方式和检测其他源文件的方式相同。属性文件应该以一个特殊的方式被放在一个文件夹下,我会在下面的例子中说明这种方式。

在Flex中可以通过MXML中的 @Resource,ResourceBundle元数据以及ActionScript中的ResourceBundle 类来访问资源包中的值。在MXML或ActionScript中访问资源包需要两个信息—— 包名和key。包名就是属性文件的文件名。所以如果你创建了一个HelloWorldBundle.properties,包名就是HelloWorldBundle。key可以在属性文件中value的左边找到。
如何更改DataGrid中某一行的背景色是一个被经常问的问题。这个在Flex2.0中很简单,只需按照下面的步骤做:

1.创建一个扩展自 mx.controls.DataGrid 的类。这个类可以是MXML文件或者ActionScript文件,你可以根据自己的习惯创建。

2.覆写 protected 方法 drawRowBackground :3.在你的程序中用你新建的类替代

Flex如何改观web上的用户体验 不指定

Category : Flex技术 | Post on 2008/02/23 18:38 by gdgzboy | Comments:0
英文原文:《How Flex can transform the user experience on the web 》
原文地址:http://coenraets.org/blog/2006/08/how-flex-can-transform-the-user-experience-on-the-web/
译者:Dreamer

Flex如何改观web上的用户体验

既然现在产业把它的注意力转向了客户端和用户体验,那么在经过了10年的沉寂之后,web用户界面的品质将有希望以一个相当快的速度提高。

在这种背景下,Flex提供了可以极大地改观人们与web应用程序交互方式的一系列独特的特性。这些特性包括:

•表现力(矢量图)
•性能(JIT 编译器)
•实时性(二进制sockets和pub/sub通讯)
•丰富的媒体(视频和音频流)
•离线支持(本地存储和桌面客户端)

这些特性单独来说都不是独特的。独特的是所有这些特性都可以在一个无处不在并且非常轻量级的运行环境中(Flash虚拟机)被利用,而现在这个环境在所有主流操作系统上的所有主流浏览器中都是可用的。

解决flex无法调试的问题 多云

Category : Flex技术 | Post on 2008/02/23 16:05 by gdgzboy | Comments:0
在用FLEX调试程序时,可能会出现以下提示:

引用
Installed Flash Player is Not a Debugger. Flex Builder cannot locate the required debug version of the Flash Player. You may need to install the debug version of the Flash Player 9.0 or reinstall Flex Builder. Do you want to try to debug with the current version?


解决办法,下一个debug版本的FLASH PLAYER就可以了...

Tags: ,
分页: 1/8 第一页 1 2 3 4 5 6 7 8 下页 最后页 [ 显示模式: 摘要 | 列表 ]