2010年4月16日星期五

ESRI Silverlight Application Plus(chs)

演示地址:http://newnaw.com/pub/sl/esrislappplus 其中一些布局感谢"金属狂人"的建议
版本:ArcGIS API for Silverlight 1.2
说明:安装好ArcGIS API for Silverlight 1.2后,在vs2008中会出现两个模板程序:ESRI Standard Map Application和ESRI Showcase Map Application。其中前者与广为流传的Flex Viewer很像,但界面过于简陋,功能过于简单,如果想以它为基础构建快速应用的话还得费点功夫。在它的基础上,我将Code Gallery中的一些功能添加了进来,并将界面基本汉化,下面放出程序代码供大家学习交流之用。
功能:放大/缩小,前/后视图,放大镜,缩略图,书签,Identify,图层属性表,3个测量功能,地址定位。
截图:




下载地址:http://bbs.esrichina-bj.cn/ESRI/thread-64924-1-1.html

ps:地址搜索用到了Google Map API,具体应用时请注意版权问题。
pps:这个程序仅是个人集成,属于民间作品。
ppps:这两天之内ArcGIS API for Silverlight 2.0 beta版本便会放出,但要充分利用新的功能,必须拥有ArcGIS Server 10才行。所以对于暂时升级不了AGS的朋友,这个东西应该还是凑合能用一段时间的。

2010年4月14日星期三

Silverlight中的Busy Indicator

        busy indicator就是执行任务或加载资源期间告诉使用者耐心等待的一个动画,有条的,圈的等。最简单的办法就是显示一个gif动画,ajax应用普及后出现了大量busy indicator,本人就收集了好多gif图片。也可以来在线生成一个。
        但silverlight中不支持gif格式的图片,该如何解决这个问题呢?列出以下几种办法供有需要的参考:

  1. 文字显示。利用DispatcherTimer类来处理,例子见这里;
  2. Silverlight Toolkit中的Busy Indicator控件。不过目前只能显示条状的,对于钟爱转圈的人来说没办法了;
  3. 利用Silverlight中的动画。原理就是截取转圈的gif图画中的一帧出来,然后用RotateTansform和DoubleAnimation做一个循环为forever的从0到360度的动画,这个效果可以以假乱真,推荐使用;
  4. 利用.net image tools控件,据说可以在silverlight中插入gif。没有测试;
  5. 听上去很搞笑的一个办法,就是"在silverlight中播放swf动画"。有老外说silverlight3原生支持播放swf文件,至今没找到实现办法,这个想法本身也比较bug;另外就是可以利用html绝对定位,在silverlight上盖一个swf动画,这到是可行的。但对于小小的busy indicator,需要把它放到比较精确的位置上,浏览器大小稍有改变可能就露出马脚了。

2010年4月8日星期四

t60 reborn

incident flashback:上周t60运行时感觉风扇有点异常,转的声音比较痛苦,但也不知道它想要什么,就没管;第二次开机时风扇惊叫一声,就罢工了,停留在Fan Error的画面,无法进系统;
casue investgation:google以下内容:t60 fan error。找到同样案例,描述是风扇缺油了,准备动手一试;
reborn procedure:两元店买来缝纫机油一瓶,药店买来带针注射器一只,百脑汇买来高级(据说)星牌导热膏一瓶,淘宝买来interchangeable precise manual tool set一套,花费2+0.5+10+23=35.5元。让风扇一次喝个饱。。。其实也就一滴油不到~再次开机,cpu温度39度,重启了两次风扇还是不转,于是开始玩疯狂越野.swf,过了一会风扇终于转了。细听就跟从大瓶里往出到酸奶一样——静谧无比呀,哈哈~
background information:蓝快t60风扇要加400元,还是换购,联想售后的价格和产品的品质真不成正比。

2010年4月4日星期日

在Silverlight中为UIElement.Visibility添加动画

       Visibility可以控制UIElement的可见性,但其是一个枚举变量,msdn中说:“若要对作为枚举的值进行动画处理,必须使用 DiscreteObjectKeyFrame。”而关键帧动画没法做出平滑的过渡效果。
       可以利用Action来实现标题内容。
1、创建一个带opacity动画的Action。

using System.Windows;
using System.Windows.Interactivity;
using System.Windows.Media.Animation;
using System;

namespace SilverlightApp.Actions
{
public class ToggleVisibilityAction : TargetedTriggerAction<UIElement>
{
protected override void Invoke(object parameter)
{
DoubleAnimation da = new DoubleAnimation();
da.Duration = new System.Windows.Duration(TimeSpan.FromSeconds(0.3));
Storyboard sb = new Storyboard();
sb.Children.Add(da);
Storyboard.SetTarget(da, this.Target);
Storyboard.SetTargetProperty(da, new PropertyPath("Opacity"));

if (this.Target.Visibility==Visibility.Visible)
{
da.To = 0;
sb.Begin();
sb.Completed += (o, e) => { this.Target.Visibility = Visibility.Collapsed; };
}
else
{
this.Target.Visibility = Visibility.Visible;
da.To = 1;
sb.Begin();
}

}
}
}

2、xaml中用之,替代visibility属性的设置。UIElement1是需要切换可见性的空间的x:Name。

<Button x:Name="btn1" Content="点我有动画效果">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<actions:ToggleVisibilityAction TargetName="UIElement1" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>

       其中:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:actions="clr-namespace:SilverlightApp.Actions"

       ps:t60风扇罢工了:开机一声怒吼,停留在fan error。搜索了一下,据说是缺油了,等买的螺丝刀到了以后给它加加油,希望不用去找js修。这还不到3年,51nb上那么多用x31的,我以为thinkpad少说能用10年呢。。。

2010年3月2日星期二

在64位Windows 7/Windows Server 2008上安装ArcGIS Server 9.3.1的注意事项

1、Windows 7/Vista上安装ags 93/931的额外步骤:Additional Vista Requirements。注意:图中是最小要求,其他功能选装;
2、ArcGIS Server目前是32位程序,在64位操作系统中,为了保证稳定,需要以32位程序运行。因此,IIS和ASP.NET也需要运行在32位模式下,具体步骤如下:(1)在命令行中运行引号 中 的命令来开启32位模式:“cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1”;(2)在命令行中运行引号 中 的命令来安装32位ASP.NET 2.0并将所有应用程序池运行在ASP.NET 2.0上:“%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i”;(3)确保IIS中的Web服务扩展列表里ASP.NET version 2.0.50727 (32-bit)设置为允许。详见这里。
上面步骤中,(1)中如果没有inetpub\adminscripts文件夹,是因为缺少IIS中的某个功能,方便起见可以安装IIS所有功能,该文件夹即可出现,(3)中,IIS6中Web服务扩展是控制树中的一个节点,IIS7中的ISAPI and CGI Restrictions即是Web服务扩展;
3、ArcGIS Server安装完成后,登陆Manager页面,管理服务会出错,提示“工作站服务未启动”。解决办法:将登陆manager的用户添加到Administrators组中即可。详见这里。