Category Archives: 从这里发布的

从blog.newnaw.com发布的

Mobile Atlas Creator简介

update:2011.06.08  看起来Mobile Atlas Creator现在遇到了点麻烦。作者在sourceforge论坛上发帖说,由于收到了很多地图厂商的邮件,要求他从工具中撤下这个或那个地图数据源。。。这也是能理解的,商业公司毕竟在花大力气维护这些地图,人家不让用了我们还能怎么着?所以作者从1.9 beta2版本开始,在MAC中只保留了基于OpenStreetMap的数据源,并且取消了以前版本软件的下载。  不过作者也善意提醒大家,如果有需要,大家可以主动尝试联系数据厂商,看看能否让自己通过MAC获取离线地图。。。当然,MAC依然继续会是一个开源的java程序,也有网友指出,既然有openstreetmap的dataprovider,从技术上讲,就可以添加别的dataprovider,大家都懂的~=========================================================  如果你使用过手机上的地图或导航软件,那你一定知道最头疼的问题就是如何方便地搞到离线地图。比如Google Maps,如果你没有离线地图,最高兴的就是移动运营商了,流量大把大把的。网上有不少下载Google Maps离线地图的软件,但要不然收费,要不然就是会有各种各样的问题。这里给大家介绍一个完全免费,并且功能强大的离线地图下载软件,Mobile Atlas Creator。  Mobile Atlas Creator是一个为各种手机地图软件创建离线地图的开源应用程序。它能够用最简便的方式把常用的数据源下载成相应软件的离线地图文件,这样的话你的手机在没有联网的情况下,也能显示完整的地图了。它支持的数据源有很多,包括Google Maps, Bing Maps, Yahoo Maps, OpenStreetMap等近30种数据源。   它支持的软件也很多,比如Windows Mobile系统上的OZI Explorer CE,Android平台上的OruxMaps和RMaps/BigPlanet等,这几个软件是我认为各自平台上最好用,功能最全面的离线导航软件。   使用方法见下图:   下载完成后,它会生成你选择软件格式的离线地图文件,比如我这里选择RMaps,生成后缀名为.sqlitedb的地图文件。一张地图一个文件,拷贝和使用起来非常方便。   值得一提的时,Mobile Atlas Creator在下载时使用了多线程(默认4个,最多15个),可以充分利用你的带宽。除了Google Map的卫星影像图片会限制IP外(如果下载速度过快,会报错),其余常用地图比如Google Maps街道图,Bing Maps的影像(完全可以用这个代替Google Maps的影像图)和街道图,都可以正常下载完成。  根据网友建议,下载你感兴趣区域遵循以下原则即可:世界1-4级,中国4-7级,城市8-17级。当然,如果你有时间,硬盘够大,完全可以把整个Google Maps搬回家~  去年夏天我就是用它创建的离线地图横穿了陕西,河南和河北三个省~

改变

  一个人在大学的四年时间里最应该学习的是什么?18岁你满怀憧憬进学校的时候可能没有想到这个问题,20岁你在学校的时候(悠哉悠哉?刻苦学习?风花雪月?黑白颠倒?)可能没有想到这个问题,现在离开学校了,如果你还没想到或者想过这个问题,那么很遗憾,估计你现在回想起来学校生活,首先想到的可能是后悔。  当然这个问题没有标准答案,我认为比较好的答案是首要学做人,同时学知识。就和种树种花种庄稼一样,浇水、施肥、除虫都有一个最佳时机,赶上了,会有好的收获,错过了,只能坐等后悔。第一个问题,怎样做人,做什么样的人这个我说不来也不敢说,一方面是因为每个人都有自己的标准,这个是内在的东西,形成之后难以改变;另一方面是这实在是个太私人的问题,也不应该去改变。如果能和自己面对面,你完全了解对面的你么?这是个挺难的问题,我觉得。第二个问题,学知识。凡事必有因,存在即合理。学知识是为了什么?这个问题不算隐私,可以拿出来讨论一下。去大城市赚钱?让家里人过上更好的生活?让自己活的更体面?都没错。可如果社会都没有了,外部条件都不好,生活在社会中的你怎么去赚钱?所以我更偏向下面这种答案。  哈佛大学与Massachusetts街道相邻的地方有一个建于1901年的小门,叫做Dexter Gate,在你进入学校的时候,会看到门的正面写着:Enter to grow in wisdom,找了两张图片:   当你离开学校的时候,会看到门的背面写着:Depart to serve better thy country and thy kind.   也许你会说,如果我能赚很多钱,让自己和家人都过上好生活,小家好了,自然能为这个社会更好地服务。没错,是殊途同归,但这样的触发点是小的,在让大家过的更好这个目标实现之前,大环境是坏的,如果有了利益分歧,那么情况就会变得很糟;如果把出发点改成门背面这句话,过程和结果都会赏心悦目。  这两天电视新闻关注西部地区贫困小学生的饮食问题,报道广西省都安县16000名学生从小学到初中9年时间里吃的饭菜几乎顿顿一样,就是“黄豆蒸饭”,每天晚上睡觉前自己把生米和黄豆放到饭盒里,然后放上唯一的佐料,盐,蒸熟后饭盒里的饭就是菜,菜就是饭。记着问围在墙根吃饭的学生,好吃吗?学生说,好吃。这是2011年,总理说公平正义比太阳还要有光辉。以前我有一种想法,就是去外面吃饭的时候,如果稍微剩了一点饭菜,我会安慰自己说,这不是浪费,因为已经付过钱了,农民伯伯种地的辛苦也得到了应有的回报。但现在我改变了这种想法,我可以把浪费的这一部分钱攒起来,虽然不给红十字会,但终有一天,可以以适合的途径去帮助更有需要的人。自己赚的钱给了陌生人,不觉得可惜么?左小祖咒在《感激》中唱过,多五百元你也不会富,少五百元你也不会穷,我很认同。  说到上面哈佛的小门,我是看了昨天20110326非诚勿扰才知道的,上面有个来自美国的男嘉宾(视频27:50起),曾经在哈佛上本科,在他的心动女生已经站到他对面的时候,问最后一个问题,如果你中奖得了1000w美金,会怎么花?女生说我没什么变化,该怎么生活还怎么生活。主持人都以为男嘉宾会上去牵手离开的时候,男嘉宾却很挣扎,最后选择了放弃。原因就是上面Dexter Gate背面这句话在他心里的烙印太深了,而女嘉宾却一点也没有。  一个学校对一个人的影响是多么的大啊,哈佛的这个小门至少从表面上影响了这个人的择偶观念,而想想我见过的大学校门呢?高大无比,宽阔无比,母校斜对面的一个学校大门修得简直和城堡一样,而这些大门有没有改变我们哪怕一点点观念?我不知道,但我知道修大门的这些钱能够改变顿顿吃黄豆蒸饭的小学生的命运,不止一个学校的所有学生。  确实有一些东西是内在的,无法改变的,即使女生很善变。与非门的《改变》,送给女嘉宾,再合适也不过。

ArcGIS API for Windows Phone开发实例(5):对超市信息进行空间查询

  本文内容:ArcGIS API中Task的概念,QueryTask的使用,以及Draw对象。  空间查询GIS中一个非常常用的功能:在地图上画出任意多边形,从自己感兴趣的事物中筛选出与所画多边形有指定空间关系(通常是相交)的要素来,进一步查看。在本次开发实例中,第二个功能就是空间查询。用手势在地图上画一个范围,筛选出落入该范围的超市店面,从而进一步查看它们的营业额统计信息。  ArcGIS API中,给我们提供了许多Task类,来完成一些常见的GIS功能,比如属性/控件查询,几何对象的拓扑处理,特定工作流的地理任务等。它们都是已经封装好的Task类,使用起来都遵循3个步骤的原则:1、为某个Task设置所需的相应参数;2、通过Task对象向服务器发送处理请求;3、接受服务器端返回的结果。所有的计算和处理工作都是由ArcGIS Server发布的REST服务来完成,是典型的客户端请求,服务器端相应的流程。  QueryTask是ArcGIS API提供的诸多Task之一,它接受Query类型的参数。该参数有几个常用的属性,比如Where属性和Geometry属性,通过对这两个属性的设置,我们就可以完成最常见的属性查询和空间查询功能。依然将空间查询这个功能封装成一个工具,在主界面中进行调用。   这里为了清晰起见,我省去与空间查询功能无关的代码(所有程序代码会在教程完结后提供下载)。要使用QueryTask的功能,我们按照前面说三个步骤来做。首先设置好查询参数Query,然后通过QueryTask对象提交查询请求: 1: void _draw_DrawComplete(object sender, DrawEventArgs e) 2: { 3: Polygon polygon = null; 4: if (_usingFreeHand) //geometry is freehand polyline 5: { 6: Polyline polyline = e.Geometry as Polyline; 7: ESRI.ArcGIS.Client.Geometry.PointCollection pc = polyline.Paths[0]; 8: pc.Add(pc[0]); 9: polygon = new Polygon() 10: { 11: SpatialReference = map1.SpatialReference, 12: }; 13: polygon.Rings.Add(pc); 14: } 15: else //geometry is polygon 16: … Continue reading ArcGIS API for Windows Phone开发实例(5):对超市信息进行空间查询 »

ArcGIS API for Windows Phone开发实例(4):点击查看超市信息

  本文内容:Silverlight的自定义UserControl,NavigationService(页面导航),WP的Application Bar,ArcGIS API的ElementLayer。  上一节中,已经完成了程序的准备工作,利用FeatureLayer来显示超市位置,接下来的几篇文章中我们就来依次实现程序的四个功能点: 点击查看某个超市的详细信息; 按空间范围查看某几个店面的销售总额; 按时间的方式动态查看每个店面的营业情况; 对某个店面的近期营业情况做出具体分析。   第一个功能在GIS中叫做Identify。这个功能的作用是,当使用者激活该功能后,点击地图上的某个超市图标,会弹出一个类似气泡的小窗口(InfoWindow)显示超市名称,点击这个气泡后,程序可导航到另一个页面来显示该超市的详细信息。  由于很多功能都是利用单击地图的方式来实现,为了不让这些功能混淆,我将程序中的四个功能分别做成不同的工具(封装成不同的类),点击某个工具后就激活它,此时地图或其中的控件就响应该工具的功能。  我们在工程中新建一个文件夹Tools,放置与功能点有关的类;并在其中新建一个Identify.cs的文件,用来实现我们的第一个功能点。 1: public class Identify 2: { 3: private bool _isActivated; 4: private ElementLayer _elementLayer; //InfoWindow layer 5: public Map _map1 { get; set; } 6: public GraphicsLayer GLayer { get; set; } //supermarket layer 7: public bool IsActivated 8: { 9: get { return _isActivated; } 10: set 11: { 12: if (_isActivated != value) 13: { … Continue reading ArcGIS API for Windows Phone开发实例(4):点击查看超市信息 »

ArcGIS API for Windows Phone开发实例(3):在地图上显示超市数据

  本文内容:GraphicsLayer,FeatureLayer,自定义地图符号。  我们的应用场景是对超市数据进行展示,查询和分析,因此第一步当然是要将超市显示在地图之上。如所有的GIS软件一样,要将数据加载到地图里面,需要图层的概念,这里我们也需要合适的图层,将超市数据加载进来。  先看一下ArcGIS API for Windows Phone/Silverlight/WPF中的主要图层类型。 Layer  |–TiledMapServiceLayer  |       |–ArcGISTiledMapServiceLayer  |–DynamicLayer  |       |–DynamicMapServiceLayer  |                 |–ArcGISDynamicMapServiceLayer  |                 |–ArcGISImageServiceLayer  |                 |–GPResultImageLayer  |–GraphicsLayer  |       |–FeatureLayer  |–ElementLayer   Layer最基本的基类,常用的几种图层类型我已经用红色标记出来了。前两种ArcGISTiledMapServiceLayer和ArcGISDynamicMapServiceLayer分别用于加载ArcGIS Server发布的缓存地图服务和动态地图服务,这个在上一节中已经说过。再来看一下中间的GraphicsLayer和FeatureLayer,可以说这是API中最常用的两种图层,大部分的程序功能都要基于它们来完成。  GraphicsLayer是保留在内存中的一种图层(与ArcMap、ArcGIS Engine、ArcGIS Server ADF程序中的相应概念类似),顾名思义是很多Graphic的集合,而所有与用户交互的内容通常都用Graphic来显示。比如多边形查询中用户画出的多边形,属性/空间查询结果中的所有要素等内容,都是Graphic。可以说,除了地图本身,基本上看到的所有与地理位置有关的东西都可以用Graphic来表示。Graphic对象有3个重要的属性:Geometry,Symbol和Attributes。Geometry代表了一个Graphic的几何形状(可疑是点、线、面任意一种)或地理位置,而Symbol则表示Graphic的呈现样子,比如颜色、效果,同时有了这两个属性(缺一不可),Graphic就可以显示到地图上了。而Attributes是键值对集合,可在里面存储任意类型的对象,比如一个要素的属性信息。  FeatureLayer继承自GraphicsLayer,它与后者的区别是,GraphicsLayer中的Graphic都是人为创建出来的,而FeatureLayer中的Graphic都是从ArcGIS Server发布的服务中读取出来的,因此FeatureLayer比GraphicsLayer多了一个URL属性。这个URL通常指向一个ArcGIS Server发布的,MapService或FeatureService的子图层(对应一个FeatureClass)。FeatureLayer有了这个URL后,就可以读取出该服务对应子图层里的所有要素内容,因此FeatureLayer里Graphic的Geometry属性会自动被FeatureClass的Shape字段填充,而Graphic的Attributes字段则会根据要求,被FeatureClass中的属性信息所填充。如果发布服务的服务器是ArcGIS Server 10版本,则Graphic的Symbol属性会自动被服务的DrawingInfo信息填充。另外,FeatureLayer是客户端API中对FeatureService的唯一载体,这是它另一个非常重要的作用(也是主要作用),以后的文章中会提到。  ArcGIS API for Windows Phone/Silverlight/WPF/Javascript/Flex/iOS/Android都是基于ArcGIS Server所发布的REST服务,所以,在开始之前,我们需要将超市数据用ArcGIS Server发布成MapService。这个过程不属于本文要讨论的内容,不熟悉的同学可自己查阅相关资料。超市图层的属性表如下,前面是每个店面的基本信息,后面是该月每天的营业额信息:   超市的ShapeFile在这,点我下载。在我本机上发布出来的地址是:http://localhost/ArcGIS/rest/services/supermarket/MapServer/0。  现在打开上一节我们完成的HelloMap程序,来继续改造之。底图服务我们依旧使用ArcGIS Online提供的StreetMap数据http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer,然后我们在Map控件中加入一个FeatureLayer,其URL属性指向发布在本机的超市地图服务。由于我们的数据范围仅限于北京市附近,因此我们可以利用Map的Extent属性指定地图的初始范围,代码现在看起来是这样的: 1: <esri:Map x:Name=”map1″ Extent=”12926244,4840437,12982108,4878585″> 2: <esri:Map.Layers> 3: <esri:ArcGISTiledMapServiceLayer ID=”BaseMap” Url=”http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer” /> 4: <esri:FeatureLayer ID=”BusinessLayer” 5: Url=”http://localhost/arcgis/rest/services/supermarket/MapServer/0″ 6: OutFields=”*” /> 7: </esri:Map.Layers> 8: </esri:Map>   其中FeatureLayer的OutFields属性代表从服务器端返回的属性字段,这里“*”表示返回所有属性字段,也就是我们的Graphic对象的Attributes里自动填充了超市的所有属性值。  需要注意,在xaml代码中,最靠上的图层在显示时会出现在Map控件的最底端,如图:   Silverlight中,可以将常用的任何资源保存到Resource集合中,以便重复利用。因此我们将两个服务地址保存到App.xaml文件的ResourceDictionary中(可在所有页面中直接引用): 1: … Continue reading ArcGIS API for Windows Phone开发实例(3):在地图上显示超市数据 »

ArcGIS API for Windows Phone开发实例(2):HelloMap

  本文内容:WP开发环境的搭建和第一个程序HelloMap。所有参考资料都会给出相应链接,供仔细的朋友进一步学习,后同。 一、开发环境搭建   1、安装微软的Windows Phone Developer Tools。微软的开发离不开Visual Studio,Silverlight开发又需要Silverlight Tools for Visual Studio,WP的开发需要Windows Phone Developer Tools…看起来有点复杂,其实很简单,只需到APP HUB网站,按照1、2、3的说明依次安装即可。如图:   其中最主要的是1中提到的Windows Phone Developer Tools,它会下载一个3.2M大小的vm_web.exe安装程序,这其实是一个安装工具,不管你的机器是否安装了VS 2010(不支持以前的版本),是否安装了Silverlight Tools,它都会检测你机器开发WP程序所需的所有工具,并提示你进行安装(比如没有VS的话会为你安装VS 2010 Express,已有的就不再重复提示了),有点类似1 click install,非常方便。如果你的机器上什么都没有,那么它会依次提示你安装以下几个工具:   另外APP HUB网页上第二步中提到的Windows Phone Developer Tools January 2011 Update修复了最初版本中的bug,提供了一个新的模拟器,以及一些新的特性,比如拷贝和粘贴。第三步中提到的Windows Phone Developer Tools Fix修正了不能给真机上部署超过64M大小的XAP文件的bug。所以,2、3属于选装,但强烈推荐安装。  安装完成之后,打开VS 2010,新建工程中应该能够看到以下画面:   至此,我们已经可以用Silverlight开发WP的应用程序了。  另外,与Silverlight Toolkit类似,微软还提供了Silverlight for Windows Phone Toolkit,地址都在这里。它们都是封装好的,开源的一些控件或效果,用来补充自带控件的不足,为你的程序增加效果。  2、安装Esri的ArcGIS API for Windows Phone。ArcGIS API for Windows Phone与ArcGIS for Silverlight/WPF一样,是Esri免费提供给我们的开发包,里面包含了几个dll文件(包含各种类,函数)供我们引用。目前最新版本是2.2 beta,可利用自己的Esri Global Account(可免费申请)登陆Beta Community后进行下载。如果你不想参与beta community,也可以在这里按照提示下载2.1版本的API。2.2 beta版本的API提供了exe安装程序(2.1版本没有),安装好后,你可以在安装目录中找到以下内容: ESRI.ArcGIS.Client.dll。这是API中的核心类库,包括最常用的Map控件,各种图层类,Graphics,Geometry,Symbols等,同时还包括了各种Task:Identity,Find,Query,Geoprocessing等; ESRI.ArcGIS.Client.Bing.dll。如果你需要在程序中调用Bing Maps的底图或使用它的Geocoding或Routing服务,则需要这个dll; ESRI.ArcGIS.Client.Toolkit.dll。类似Silverlight Toolkit,是Esri提供的已经封装好的,开源的,一些常用控件,比如缩略图,书签,导航条,InfoWindow等,可以在这里下载它们的源码; … Continue reading ArcGIS API for Windows Phone开发实例(2):HelloMap »

ArcGIS API for Windows Phone开发实例(1):准备工作

  本文有三部分内容。注:以后的文章中以WP作为Windows Phone的简写。 一、Windows Phone开发需要哪些知识?   先来看一下WP的整体结构:   最底下是通用的基础类库,可以当做是.NET Framework中保留了核心功能的简化版CLR;最上层是WP特有的类库,提供给开发者与手机相关的功能,比如说屏幕控制,摄像头控制,获取位置等等。  中间这层是WP为我们提供的两套开发框架:Silverlight或XNA。也就是说,你可以利用Silverlight技术或者XNA技术来开发运行在WP上的应用程序。大致地,在WP上,Silverlight适合编写大多数应用程序,XNA适合编写游戏程序。XNA是微软提供的一套游戏开发环境,它有多强大,看看XBOX有多成功就知道了,感兴趣的同学可以深入研究。Silverlight是微软抢占RIA市场的有力武器之一,也是以后微软.NET Framework中主打开发技术之一——WPF——的子集。作为.NET开发人员,如果还不熟悉的话,有必要赶紧熟悉一下。关于它的介绍很多,可以参考我之前写的这篇,或者自己搜索。  要强调的一点是,你在别处写的Silverlight或XNA程序基本不需要或只需要进行少量的更改(比如屏幕尺寸调整或使用WP的硬件功能),便可顺利运行在WP上,这是微软统一的开发平台给我们带来的好处。  这次,我们只关心Silverlight,它就是开发WP程序所需的知识。 二、ArcGIS API for Silverlight/WPF和ArcGIS API for Windows Phone的异同?   在比较Esri的这几个客户端API之前,我们需要看一看Windows Phone上使用的Silverlight技术和普通的Silverlight技术有什么区别。目前是WP的第一个版本,也就是Windows Phone 7,它所使用的Silverlight开发技术是基于3版本的,在WP开发中你基本可以使用Silverlight 3的所有特性,还包括WP特有的触控功能。具体可参考这两篇文章:Features Supported in Silverlight for Windows Phone和Differences Between Silverlight and Silverlight for Windows Phone。需要强调的一点是,Silverlight 4的新特性在WP上基本无法使用,对此我们只能表示遗憾。但可以期待在以后的WP版本中,Silverlight版本能够与其他平台统一起来。  那么Esri的这三个API(最新的2.2beta版本中已将Silverlight和WPF两个API分开)就比较好理解了。ArcGIS API for Silverlight,ArcGIS API for WPF,ArcGIS API for Windows Phone三者的功能,架构,包括源代码完全一致,只是编译的目标平台不同。对于Esri的这三个API,你只需熟悉其中之一,就可以在其他两个平台上进行开发。  所以,如果你没有学过ArcGIS API for Silverlight的话也没有关系,会了Windows Phone API,你也就学会了Silverlight API。 三、我们要完成的工作   在上一篇文章中,我们已经了解到,最终我们需要完成这么一个WP上的应用程序:连锁超市的老板出差在外,在机场候机的过程中想查看一下自己的几家店面最近的营业情况。传统的统计报表只能通过电子邮件发送给老板,他需要不停的查看自己的邮箱;而里面的内容既不直观也不易懂。将报表数据发布成地图服务,这样即可在任何时间任何地点访问业务数据,也可通过地图的方式充分挖掘数据的潜在价值。老板通过windows phone7上的地图应用,对自己店面近来营业情况一目了然,利用应用所提供的分析功能,即使在千里之外也能随时对自己的生意轻松经营。  好了,要了解的预备知识已经梳理完毕。有人可能说,都看了这么多了,还没进入动手阶段?我是希望大家每时每刻都知道我们在做什么,为什么要这么做,知其然也知其所以然。就跟听别人的PPT一样,对于我们不熟悉的内容,如果前面两页他交代不清楚,可能整个PPT就是在浪费我们的时间。凡事皆如此。

ArcGIS API for Windows Phone开发实例(0):为什么选择Windows Phone?

为什么要了解Mobile GIS?   GIS技术固然有自己独特的理论知识,但GIS的实际应用离不开IT技术,GIS应用的发展离不开主流IT技术的发展。上面这句话我们可以看做一条公理,公理是不需要证明的。GIS技术的应用,从C/S到B/S,从SOAP到REST,从SOA到云,都印证了这条公理。  从台式机到笔记本,从上网本到平板电脑和遍地开花的智能手机,移动不仅是IT技术的发展趋势之一,也是所有硬件的发展趋势。  综上所述,作为GISser的你,没有理由不了解Mobile GIS技术。 ArcGIS移动产品线   为什么要学习ArcGIS API for Windows Phone?从两个角度来回答:ArcGIS和Windows Phone。ArcGIS目前有5种移动产品,所有产品的介绍,帮助,下载详见这里。 ArcPad。这是一个开箱即用的软件产品,基于Windows Mobile平台,最新版本是ArcPad 10(支持Windows Mobile 6.5)。特点是数据采集精度高(可到分米级),支持并推荐采用完全离线作业方式,包含丰富的GIS功能,比如图形(有捕捉功能)/属性/符号编辑,图层管理等,界面类似ArcMap,适合GIS专业人员使用,可通过界面或脚本语言进行定制。由于推出早(历经5.X,6.X,7.0,7.1,8.0.10几个版本),功能实用而丰富,收到广大用户青睐,目前全球用户超过100,000。 ArcGIS Mobile。是目前ArcGIS应用最广的移动产品之一,基于Windows Mobile平台,最新版本是ArcGIS Mobile 10.0(支持Windows Mobile 6.5)。特点是拥有自己的离线缓存格式,可完全离线使用,也可与ArcGIS Server随时进行各种粒度的缓存同步;基于任务模式,由工作流驱动,非GIS人员可以很快上手;可进行离线数据编辑,属性/空间查询,外业人员协作等任务;具有丰富的定制功能,并提供功能全面的SDK可进行二次开发。软件历经9.2,9.3,9.3.1,10.0几个版本,在国内拥有广大的用户群体。 ArcGIS for iOS。包括一个开箱即用的应用程序(ArcGIS for iOS Application,可在App Store中免费下载)和提供二次开发功能的ArcGIS API for iOS。基于苹果公司的iOS系统,可在iPhone,iPad,iPod Touch产品上运行。最初于2010年4月发布,目前应用程序和API版本是1.8。 ArcGIS for Windows Phone。包括一个开箱即用的应用程序(ArcGIS for Windows Phone Application,可在MarketPlace中免费下载)和提供二次开发功能的ArcGIS API for Windows Phone。基于微软公司的Windows Phone系统,可在基于该系统的手机上运行。最初于2010年9月发布,目前应用程序和API版本是2.2 beta。 ArcGIS for Android。基于Google公司的Android系统。目前ArcGIS API for Android处于public beta阶段,可在ArcGIS Beta Community中免费申请试用。正式版推出后,应该也会有开箱即用的应用程序,照惯例可通过Android Market免费下载。最初与2010年10月内测,今年2月底开始公测。   以上三个产品(ArcGIS for iOS,ArcGIS for Windows Phone,ArcGIS … Continue reading ArcGIS API for Windows Phone开发实例(0):为什么选择Windows Phone? »

google maps中的中国式街景

  大家都知道google maps有个街景服务(street view),自07年推出起,目前已经覆盖了北美洲,欧洲,东亚大部分国家和地区的城市。这样即使我们足不出户,也可以浏览异国他乡的景色,比如看看英国的“伦敦眼”: View Larger Map  但由于某些原因,虽然google的街景已经完全覆盖了我国台湾,香港和澳门地区,但大陆地区的街景数据采集仍是遥遥遥遥遥遥无期。  今天偶然发现,当你拖拽街景的小黄人到地图上的时候,除了能够浏览街景的主要街道以外,还有许多蓝色的热点地区可供浏览:  而这些蓝色的热点区域是网友们上传到panoramio网站(以前被google收购)的照片。于是通过这些离散的照片,我们也能略微领略一下当地的风景了。  赶紧看看你的家乡吧~  ps:该功能必须使用英文版地图:http://maps.google.com才能浏览,中文版http://ditu.google.cn不提供;  pps:欢迎围观我在panoramio上的照片~

我想和自己谈谈

  最近博客上连续都是所谓的技术文章,这样不好。原因有以下几点。   一是因为容易被人误会我是一个纯技术爱好者,这个还不是事实。事实是这是我目前谋生的手段,既然看过了,好记性不如烂笔头,就把它们记下来,另外也好让需要这些东西的同学少些阅读长篇文字的痛苦;我也很羡慕那些真正的技术爱好者,因为他们可以利用自己的兴趣在某一方面推动人类历史发展的车轮,使人们的生活变得更加美好和有趣,如果有一天真能升华成这样的人,我也很荣幸。二是避免让有的同学拿“你才是做技术的,你全家都是做技术的”之类的语句来攻击我,起因是我俩曾在五道口地铁处看到过一个地摊,地摊摊主神似犀利哥,而摊上摆满了技术书籍,诸如《21天精通asp.net》,《php,java入门宝典》之类,5块一本,不还价。其实这都是玩笑话,是咱自己技不如人,但人家西班牙国家队成员还是很光荣的。三是主要原因,因为这些文章有内容,但没思想。思想无所谓好坏,只要是自己的就好,在生活中失去了自己的思想,是一件很可怕的事情。   虽然我的肉身早已和大家一起进入了2011,但总觉得自己的2010还没有结束。结束的标志不是跨年倒数,也不是一篇年终总结,而是要把自己的思绪理一理,塞进时间的罐头中,然后盖好盖子,轻轻埋在心里。不论是这个动作的过程还是结果,对自己都有帮助。这就开始,结束我的2010。   今年(应该是去年)最大的变化,就是开始工作了。结束自己长达十几年的学生生涯,突然过上了一种新的生活,肯定很不适应。和某些过程一样,在生理上和心理上都会产生阵痛。身体上的不适应表现在以前在学校想睡几点就睡几点,想什么时候玩就什么时候玩,想跟谁表白就跟谁表白,想吃什么就能吃到什么,而现在那些都变成了无比美好的回忆;六七月份同学们qq空间里那么多篇的感慨证明了我们思想上的不适应,严格意义上来说,我这篇也算,只是反应有点迟钝。就和我们小时候总希望变成大人一样,上学的时候总想着工作,可回过头来发现失去的东西才是最美好的。好在现在大家都已经适应了新的生活,也希望所有亲爱的同学们,不管是高中的还是大学的,和我一样,觉得虽然现在工作比原来在宿舍睡觉辛苦,但总体来说,感觉也还不错。很高兴告别那些所谓的科研项目,迎来现在平凡而有意义的工作,很高兴告别所谓的教授专家,迎来许多活泼可爱的同事们;离开空间狭小,硬件条件落后,软件环境也不优秀的地方很高兴,但离开母校,结束学生生涯,离开同学们还是伤感;离开一个生活了许多年的地方,新鲜和兴奋,但远离自己的亲人和家乡,还是伤感……   前一阵看到一个词叫gap year,是指用一段较长的时间(通常是一年)去旅行或是从事一些非政府组织的志愿者工作。最常见的gap year包括高中毕业与升大学之间,大学毕业与工作之间,或者工作一段时间之后。想到别人的gap year,大家应该都充满了各种羡慕嫉妒恨,这点不难解释,就和所有人都喜欢下雪,所有人都喜欢旅游一样,the core of man’s spirit comes from new experiences。按照上面的说法,我似乎刚刚错过了一个gap year的机会,但也还不错,夏天的时候我有一个gap half month可以回忆。比起三年前一个人从西安到成都,这次和涛哥从西安骑车去北京的目的要简单和纯粹的多,不是驴友,不是户外,只是简单的自我锻炼和长长见识。能在这样一个低温少雨的冬季城市里,回想起当时汗流浃背,一天10瓶水的日子,夏天金灿灿的茫茫麦田和树荫下潺潺的清凉流水,疾驰时耳边的风声和困倦时田地里抱膝而憩,就像看着从桶里慢慢倒出酸奶一样,是一种享受。如果还有机会,我会毫不犹豫地选择再来一次。有人说这是一种疯狂,其实我觉得这还差得远。我更羡慕和向往在第10天遇到的三个学生,花了2个月时间从北京骑到了能目及珠峰的地方,南京的小胡花了十多天搭免费车25次回乌鲁木齐,Man vs Wild里Bear Grylls穿峡谷过沙漠的经历。不敢保证gap year一定不能实现,但心向往之,至少可以从gap day过起。   关于济南。以前去过2次济南,每次停留的时间都很短,所看到的都是不起眼甚至在大城市人眼里看来有些落魄的外表,所想到的又是它省会的地位,自然和大多数外地人一样,认为这是一个没有吸引力的城市。但十月份的出差改变了我的看法,如果现在让我说,我挺喜欢她。和大部分陌生的山东人接触,让你不自觉的感受到他们的实在和直爽,不管是作为间接甲方的开发商还是早上卖早点的大娘。有一次吃饺子,饭馆人太多,只好和别人拼桌坐着等,服务员拿来茶水,放在了桌子上远离我的那一边,那个陌生人给自己倒完水后竟然主动给我倒水,这样友好的举动出乎意料,当然后来我也主动给他递过调料盘。虽然饺子味道一般,但是吃饭的过程很愉快。如果把济南比作一个姑娘,那么单从外表上来说,北京要比她性感和丰满得多,但我现在还并没有找到真正喜欢北京的理由。就拿倒水这件事来说,都说小概率事件在一次试验中不可能发生,但它发生了,所以就不是小概率事件;而在北京吃饭这么多次,也没碰到过一回,如果我在饭馆主动给同桌的陌生人倒水,碰到和我一样的人知道是友好,没准碰到其他少数人还可能认为我是主动犯贱。北京吸引人的地方主要有两点,除了繁华的外表,就是它悠久的历史文化。历史文化相比我的家乡来说,既不那么悠长又不那么正统,所以这点不吸引我;外表这个东西我认为只是浮云,因为随着时间的变化(这点我们无法阻止),每个人的外表都是会变的,不发达的城市有可能变得发达起来,好看的人也会变得不好看。而北京的繁华,究其原因,好比通过非常手段暴富起来的人一样,容易遭到人的反感和厌恶,而不是羡慕。当然谁都不愿意生活在一个自己没有一点感情投入的地方,也许是我来的时间太短,以后还有许多机会让我去发现这里美好的一面,这也正是我所希望的。比如冷得纯粹的冬天,时常的蓝天白云阳光,这些都比西安要好。《艾玲》里唱过,“迷恋一个人的身体远比爱他的灵魂更加容易”,现在在我看来,有可能恰恰相反。   既然已经开始工作,自然要考虑一些现实的问题。比较初级的是,先让自己独立起来。独立应该分几个阶段。最早达到的应该是生活上的独立,这个容易理解,其他条件都具备的情况下,自己一个人生活,不至于活着活着就被饿死或者被自己成堆的臭袜子熏死;然后是经济上的独立,经济上独立了,上面所说的“其他条件都具备”才可能实现;然后我觉得是思想上的独立,思想独立了,对于所有的事情你才有自己的思考,真正的看法,折射出来你自己的所有行为,这样别人记住/喜欢/讨厌你的时候可能更多的是因为你的性格而不是你的长相;下来是人格上的独立,思想上独立一段时间后,自然就形成了独立的人格;最后,从理论上,是心的独立。如果把你流放到一个荒岛上,除了生活,你不会因为想念任何人而变得伤感和难过,那么恭喜,你完全没有情感依赖症,应该是达到独立的最高境界了。就我现在的认识,最理想的状态是,人格独立并且能够心灵独立但不做到心的独立。   还有一个一直在思考的问题,如果我离开了现在的单位,究竟还可以做什么样的事情?这不是说我现在或者将来就不想继续做我现在做的事情或者离开我现在在的单位,只是我觉得如果找到了这个问题的答案,才能够更清楚的认识自己。其实应该是认识到自己的潜力。和小高聊天时候让我又一次想到了这个问题,不过思来想去,对于我这样从来没有远大抱负的人来说,不把自己逼到那一步似乎是找不到答案的。希望能早点改变我现在的认识。   现在我感觉到自己的2010才真正的结束了。   有趣的是,我们在公元20到21世纪的地球上一起生存。祝大家新年快乐~