Portable Basemap Server发布2.0.6版本
更新内容: ~Portable Basemap Server已在CodePlex上开源,LGPL协议; ~添加ArcGIS Cache/在线地图数据源到MBTiles格式(.mbtiles)的转换/下载工具。详见这里; ~为在线地图数据源添加本地缓存功能。详见这里; ~改进ArcGIS Tile Package(.tpk)格式文件的读取速度; ~修复已知bug; 详见:https://blog.newnaw.com/?p=890
世界上最好的SUV,就是自己的两条腿
更新内容: ~Portable Basemap Server已在CodePlex上开源,LGPL协议; ~添加ArcGIS Cache/在线地图数据源到MBTiles格式(.mbtiles)的转换/下载工具。详见这里; ~为在线地图数据源添加本地缓存功能。详见这里; ~改进ArcGIS Tile Package(.tpk)格式文件的读取速度; ~修复已知bug; 详见:https://blog.newnaw.com/?p=890
听Eminem大概是从上大二开始,《8 mile》也很喜欢,Stan这首歌自然凭借它的旋律给我留下了深刻的印象。以前只知道Dido部分的旋律很好听,但最近才仔细看了这首歌的歌词,才知道里面有这么悲伤、励志的一个故事,像看了一场电影。 移动设备观看 Chorus: Dido My tea’s gone cold I’m wondering why I.. 茶越来越凉,我始终不知道为什么… got out of bad at all 我的心情总是不好。 The morning rain clouds up my window.. 清晨的雨遮住了我的窗 and I can’t see at all 我什么也看不见了 And even if I could it’ll all be gray, 看见的都是灰色 but your picture on my wall 但在墙上却有你的照片, It reminds me, that it’s not so bad, 它提醒我,这还不算坏, it’s not so bad.. 还不算坏…… 1st Chorus: volume gradually grows over raindrop background 2nd Chorus: full volume with beat right after … Continue reading Stan
钓鱼岛自古以来就是中国的固有领土。======================分割线======================== 没想到这么久后才写了一篇非技术的文章;没想到一写就是这么敏感的话题。上面那一段是我的个人立场。 这两天因为别的原因都要出门,恰巧看到了一部分因为日本政府的言行所引起的反日游行。我一直觉得任何人或事,在不了解真相的时候就不能妄下评论,所以就游行这件事本身我没有什么好说的,因为我并不知道我所看到的东西的来龙去脉。我只想告诉大家我的一点感受,这些也许和你们坐在电脑前转发评论微博的感受不太一样。 我站在十字路口的西南侧,游行队伍在十字路口的正北侧(相距大约100米左右),十字路口中心区域为真空地带。游行队伍骚动时西侧的民警就会要求大家往后退,我确实想起了《盗梦空间》里一层梦境中齐藤被按在二楼小房间地上时,窗外的场景,而我所看到的只不过是游行队伍里扔出来的几个矿泉水瓶子而已。你也许觉得夸张了,你也许觉得是我胆小了,我只是陈述一下我的感受。 没想到的还有一件事情,我从事的技术行业内有人开始扯政治了。震惊:美企在中国地图上直接抹杀钓鱼岛和藏南!【转自铁血网精华帖】,我读完了整个日志和帖子,觉得作者的文笔和气势非常好。 但这件事情我是了解始末的,所以我觉得自己可以发表一点看法。公司为了生存,都会有本地的公关办法。比如google地图中国版写的是“钓鱼岛”,google地图日本版写的是“钓鱼岛 尖阁诸岛”。Esri同样有本地化的地图,上面写的同样是“钓鱼岛”。barry说的对,地图只代表一个国家对世界的认知而已。我14岁的时候看到外国地图上少印一个钓鱼岛也会生气,也会震惊;但现在觉得就算地图上印的是钓鱼岛,也不等于现在上岛就不会有小日本干扰你。只有让自己真正强大起来,才能从根本上改变别人对你的看法,用手去捂住自己或同胞的眼睛,只会给别人留下笑柄。王小波说过,人一切的痛苦,本质上都是出于对自己无能的愤怒。写这个文章的朋友,用不着动气。 最后看到上面博客中提到的铁血网精华的帖子,发贴日期是2012-9-16,作者id是“天地日月在我心”,注册日期也是2012-9-16(昨天),希望此人不是真正的铁血论坛网友,否则我以后绝对不会再看任何出自这个鸡血论坛的文章了,虽然我以前也没有看过。======================分割线======================== 人类为什么为了一个小岛如此动怒?你只是这个星球上众多物种的一千万分之一,你和其它一千万分之九百九十九万九千九百九十九商量过你要占领岛屿这个想法么?
WebGL Globe是Google Data Arts Team建立的基于WebGL技术的地理数据可视化工具,最初用来向人们展示全球用户使用Google搜索引擎的概况。 WebGL Globe开源代码在这里,我做了两个小例子。一个是国内(台湾省数据暂缺)及美国每个县(郡)的人口数据,由于数据来源,统计方法不同,例子中两者间的绝对值没有可比性,可比性仅限于各自国家之内。美国人口最多的地方是Los Angeles,国内人口最多的地方是广东普宁及安徽临泉。可看出国内西部地区每个县面积较大,但人口相对少。国内数据来源于同学写论文时千辛万苦的收集(据说需要保密),美国数据是Esri自带的。 另一个例子是世界陆地上各处的高程,数据来源于Esri免费提供的World Elevation Services。 建议在Chrome或IE10浏览器下观看。
今天看到个Wordpress的插件BackWPup,据说是备份wp的好帮手。突然想起自己博客上次备份已经不知道是什么时候了,觉得有点对不住它,就想用这个工具试一下。 在备份前我就想知道如何在将来用备份的文件进行恢复,于是就在BackWPup选项中找到了restore,当时眼一花,手一滑,点了restore,在那十分之一秒内想,总不会这样就直接恢复了吧?怎么也应该有个确认提示吧?结果直接看到“恢复成功,现在可以删掉备份的xxx文件”,擦。。。回首页一看,10年5月,time machine!。。。 原来wp的根目录下竟然有10年5月的一个mysql备份文件;BackWPup竟然就需要这么一个文件在这么一个地点;BackWPup恢复时竟然就没有确认选项。。。 最后用胡辣汤期货为诱饵,让鲶总找到了今年3月他不经意的一次mysql备份,恢复;又用BlogSync和live writer从另一个平行世界同步回了剩下的帖子。赶快在BackWPup设置了一个任务:每天夜里3点自动把博客统统打包,发送到dropbox里去。。。
搭建GIS Server集群环境时,通常不建议在GIS Server之间设置防火墙;而建议在服务器环境的前端设置反向代理来隐藏服务器环境的真实地址及端口,保险起见可将反向代理放入DMZ区(前后都设置防火墙),增加安全性。 ArcGIS 10.1 for Server做出的架构改进使得我们在搭建GIS服务器集群环境时更加容易和省心;Nginx因其高性能,耗资源少,稳定性高,成本低廉,配置简单等诸多特性被越来越多地使用。这里简单介绍如何利用Nginx做反向代理并实现Web层的负载均衡效果,来搭建ArcGIS 10.1 for Server集群环境的过程。具体环境如下: 192.168.0.247(Windows Server 2008 R2):安装Web Server(IIS 7.5),Web Adaptor(使用默认80端口),ArcGIS 10.1 for Server(使用默认6080端口); 192.168.0.244(Windows Server 2003 R2):安装Web Server(IIS 6.0),Web Adaptor(使用默认80端口),ArcGIS 10.1 for Server(使用默认6080端口); 192.168.0.69(Windows 7):运行Nginx,监听本地80端口; 其中192.168.0.247和192.168.0.244两台机器安装ArcGIS 10.1 for Server,加入同一个site,组成GIS Server集群,并分别安装Web Server和Web Adaptor,组成Web Server集群;192.168.0.69机器上运行Nginx,监听80端口,充当反向代理服务器,并将接受到的请求负载均衡到247和244两台机器上。这样既利用了企业级Web Server的性能,也一定程度上保证了内网环境的安全。Nginx配置过程如下。 由于是Windows环境,从官网上下载稳定的1.2.3版本,解压到192.168.0.69机器的c: ginx-1.2.3目录下。因为我们打算让Nginx监听80端口,所以需要将本身占用80端口的IIS默认网站停掉。打开conf目录下的nginx.conf文件,修改如下: 命令行方式输入’start nginx’启动Nginx,然后发送请求到192.168.0.69机器的80端口: 看到请求被转发到了247机器的IIS 7.5上,再次刷新, 请求已经轮询到了244机器的IIS 6.0上。最后通过69机器来访问ArcGIS Server的Services Directory, 此时Nginx会以轮询的方式访问247和244两台机器的Web Adaptor。 这里只是针对ArcGIS for Server集群环境配置做了简单介绍,在实际中可能还需考虑搭建可容错的共享存储环境,DNS服务器的配置,硬件防火墙的配置,Nginx具体参数的配置等因素。
在一台机器上安装ArcGIS 10.1 for Server后,它还无法立即工作,必须将其加入site(的cluster)之中才行。首次登录manager时,也会询问创建新的site还是加入已有的site;如果已经加入site,登录manager则会显示该site的管理目录。那么机器自身是如何判断出自己是否已经加入site了呢? 依据就在于Program FilesArcGISServerframeworketc目录下的两个xml文件,config-store-connection.xml和machine-config.xml。加入site时会在本机创建这两个文件,退出site时会删除之。前者记录site的公用信息,后者记录本机在site中的信息,具体内容大家可以自己查看。 登录manager时会读取这两个文件,如果找不到,则认为自己没有加入site,会询问创建新site还是加入已有site;如果有这两个文件,会首先访问site的config-store目录验证其内容,合法的情况下就打开site管理目录。 如果在一台机器关机时,从site中将其删除,开机后会根据config-store-connection.xml内容去site的config-store目录中验证,发现自己已经被从site中移除后,会自己删除本机的这两个xml文件。 此外,如果你的机器已经加入了site A,但现在需要临时加入site B去做一些工作,就不用在admin api去删除site A了,只需将上述两个xml文件先转移到别的地方,然后登录manager,选择加入site B即可;之前site A的config-store内容可以保留,以便将先前挪走的两个xml文件复原后(需要重启ArcGIS Server服务),登录manager即可直接返回site A。
ArcGIS 10.1 for Server的安装目录中,都会内置一个tomcat(Program FilesArcGISServerframeworkruntimetomcat),无需单独的Web Server即可发布各种GIS服务(对于熟悉.NET的朋友来说,更省去单独安装和配置IIS的步骤);AGS应用程序的端口号也由之前版本的80(ArcGIS Server for .NET)和8099/8399(ArcGIS Server for Java)统一到了6080上,比如http://localhost:6080/arcgis/rest/services和http://localhost:6080/arcgis/manager等。但对于内置的这个tomcat,我们并不能进行过多的操作,如果需要部署Web应用或通过别的端口来访问ArcGIS for Server的服务,这时就需要用到新的组件:Web Adaptor了。 Web Adaptor实际上是安装在Web Server机器上的一个Web应用程序,负责将Web Server接收到的GIS请求转发到ArcGIS Server site内的GIS Server机器上去。通过Adaptor这个桥梁,我们就能使ArcGIS for Server利用到企业级Web Server的诸多优势。根据安装帮助中的解释,安装Web Adaptor后主要有以下好处: 将单独的企业级Web Server集成到ArcGIS for Server的部署架构中来。可以将利用ArcGIS for Server服务的Web应用部署到Web Server上去;可以为site内所有的GIS Server提供不含有6080端口及arcgis等字样的统一访问入口点; 可阻止最终用户通过Web Adaptor的访问地址连接到ArcGIS for Server的相关管理程序。比如用户如果得知了类似6080端口的GIS服务访问地址,就可通过固定的url地址访问到Manger,Admin api等涉及到整个站点操作的内置应用。而Web Adaptor给我们提供了选项,可禁止用户通过Web Adaptor暴露出的GIS服务地址访问到这些管理应用。 此外,相对于site内的多台GIS Server机器,Web Adaptor还可以再次(除了Web Server集群外)起到负载均衡的作用,这在大并发量的情况下会比较有效。假设一个site内有n台GIS Server,它们所能处理的最大并发请求是1w个;根据ArcGIS for Server中p2p的实时通信架构,当我们将1w个并发请求发送到任一GIS Server的tomcat上时,GIS Server之间会自动以轮询(默认设置)的方式处理这些请求,GIS Server们完全可以及时响应;但1w个Web请求会首先使接收请求的这个tomcat过载,产生瓶颈。如果有了Web Adaptor,当这1w个请求到达Web Server(集群)时,Adaptor会将这些请求轮询发送到每个可用的GIS Server去,这样每个tomcat就只需支持1w/n个并发即可,可最大限度利用硬件资源。 以IIS中的Web Adaptor为例(经过Java高手验证WebLogic和WebSphere的Adaptor工作过程与此是完全一致的),看看反编译后的代码。通过查看inetpubwwwrootarcgisWeb.config文件得知,IIS中的Web Adaptor主要的工作过程都集中在ESRI.ArcGIS.WebAdaptor.dll(在GAC目录中)里。这个dll里首先找到两个类: 一个Node就对应一个GIS Server机器,_healthy标记该机器的可用状态;NodeManager是所有Node的管理类。Web Adaptor启动时,会调用WebAdaptorConfig.GetMachines()方法,此方法会向http://siteip:port/arcgis/admin/machines发送get请求,获取site内所有GIS Server机器的列表,然后利用UpdateNodeList方法保存在NodeManager类中,并写入WebAdaptor.config文件。 此外,最重要的是一个叫AGSHandler的类,它实现了IHttpHandler接口: 发送到Web Server的GIS请求都会由其中的ProcessRequest方法进行处理。前面说过Web Adaptor是以轮询方式转发请求的,而_currentNodeIndex便记录了请求转发目标GIS Server的在Nodes列表中的索引: … Continue reading ArcGIS 10.1 for Server中Web Adaptor的工作原理
ArcGIS换了10.1后,需要安装SDE,按照以前的习惯依然选用PostgreSQL。但10.1的SDE安装步骤变化不小,记录下来供有需要的朋友参考。 首先,安装介质上不再自带PostgreSQL数据库的安装文件了,需要自己下载。系统要求上指明支持的版本是9.0.5 64bit(所有Enterprise SDE只支持64位的数据库),我在官网上下载了最接近的9.0.8版本,安装。 其次,10.1版本在弱化ArcSDE服务连接的事实,所有文档默认使用直连的方式。最明显的体现是,将以前的Post Installation的步骤(创建数据库用户,系统表,Schema等工作)从ArcSDE的软件安装步骤中剥离了出来,而能够(也仅能够)采用名为Create Enterprise Geodatabase的新GP工具来完成。因此,如果不需要ArcSDE服务连接方式的话,就无需安装ArcSDE软件了。 下面说明建立直连方式的完整安装步骤(参考此安装文档): 安装PostgreSQL数据库; (可选)修改%PostgreSQL%9.0datapg_hba.conf文件,添加“host all all 0.0.0.0/0 md5”记录,让任意客户端均可连接你的数据库集群(修改后需重启postgresql-x64-9.0服务以生效); 从%Program Files%ArcGISDesktop10.1DatabaseSupportPostgreSQLWindows64目录下,拷贝st_geometry.dll文件到%PostgreSQL%9.0lib目录。在PostgreSQL中创建Geodatabase时必须用到此类库; 配置PostgreSQL的客户端。因为直连方式要求ArcSDE的客户端必须安装数据库的客户端类库,所以首先需要获取PostgreSQL的客户端。ArcGIS Desktop是32位软件,需要的是32位的PostgreSQL类库。我在官网上的zip archive链接中下载了32位的PostgreSQL binary文件,解压后将bin目录中的libeay32.dll, libiconv-2.dll, libintl-8.dll, libpq.dll, and ssleay32.dll文件拷贝到%Program Files%ArcGISDesktop10.1bin目录下;如果ArcGIS Server也需要直连到PostgreSQL中,则需要拷贝libeay32.dll, libintl.dll, libpq.dll, and ssleay32.dll上述同名的5个64位的库(帮助中的64位库列表有误)到%Program Files%ArcGISServerbin目录下,因为ArcGIS Server现在是64位的软件了,这几个库可在PostgreSQL 64位的安装目录下找到; 在ArcMap中使用Create Enterprise Geodatabase工具完成“Post Installation”过程。 对于PostgreSQL库来说Instance是数据库所在的服务器名称;Database是所要新建的GDB名称;对于PostgreSQL,GDB Administrator只能是sde;如果Tablespace Name留空,会将GDB创建到默认的pg_default表空间里; 建立直连连接。通过Add Database Connections建立直连连接: Database是刚才创建的GDB名称。 如果只需要使用直连方式连接的话,就到此结束了。如果仍需要使用ArcSDE服务方式连接,则需要其他步骤。下面说明建立ArcSDE服务连接的额外步骤: 安装ArcSDE for PostgreSQL 10.1; 修改%Program Files%ArcGISArcSDEpgexeetcservices.sde文件和WindowsSystem32driversetchosts文件,分别增加“esri_sde 5151/tcp”记录; 创建ArcSDE服务。你会发现1中安装完ArcSDE后没有弹出后配置的对话框,也无法从开始菜单中找到它,sdesetup命令也没有了install的操作,这也是前面为什么说这个工作仅能够通过新的GP工具来完成的原因。所以以前后配置向导中创建ArcSDE服务的工作就只能通过命令行方式来完成了,分别键入以下两个命令以完成在注册表中创建服务的工作: sdeservice -o create -d POSTGRESQL,postgresql-x64-9.0 sdeservice -o register -d POSTGRESQL,postgresql-x64-9.0 … Continue reading ArcSDE 10.1 for PostgreSQL on Windows安装
12年奖牌预测数据来源:http://www.usatoday.com/sports/olympics/medal-tracker.htm08年奖牌数据来源:http://en.wikipedia.org/wiki/2008_Summer_Olympics_medal_table底图:http://www.arcgisonline.cn地图制作:http://www.arcgis.com 高清大图