vimeo转载:the mountain
from: http://www.vimeo.com/22439234 that’s the reason why we should love our earth.
世界上最好的SUV,就是自己的两条腿
from: http://www.vimeo.com/22439234 that’s the reason why we should love our earth.
[poll id=”1″]2014.3.8更新v3.1~在线切片转换为MBTiles时,增加RecreateEmptyCache模式。当你想继续上次未完成的任务或打算合并多个级别/范围的切片时,RecreateEmptyCache模式会非常适合; ~在CustomOnlineMaps.xml中自定义数据源时,增加Multi-Layer模式,比如可将标注和影像两个数据源融合为一个服务。具体用法请参考自带示例; ~修复已知Bug;2013.5.10更新v3.0~添加以Windows服务方式运行功能;~发布的缓存服务增加对OGC WMTS规范的支持。详见这里;~数据源增加对OGC WMS服务的支持。详见这里;~数据源增加对高德本地缓存文件的支持。详见这里;~预览界面中可显示切片来源(动态生成/文件缓存/内存缓存,以不同底色区分);~添加日志功能;~修复已知bug;2012.12.10更新v2.0.7~为影像数据源增加本地缓存(.cache文件)功能。详见这里;~在线地图转换/下载到MBTiles格式时,增加按Shapefile文件范围下载功能。详见这里;~为转换后的MBTiles文件增加了”压缩”选项,某些情况下可大幅减小MBTiles文件体积。详见这里;2012.11.14更新v2.0.6:~Portable Basemap Server已在CodePlex上开源,LGPL协议;~添加ArcGIS Cache/在线地图数据源到MBTiles格式(.mbtiles)的转换/下载工具。详见这里;~为在线地图数据源添加本地缓存功能。详见这里;~改进ArcGIS Tile Package(.tpk)格式文件的读取速度;~修复已知bug;2012.4.24更新v2.0.5:~为数据源类型为ArcGISDynamicMapService的PBS服务增加附加参数设置,比如layers,layerDefs等,达到控制图层可见性,按属性过滤图层内容等目的。详见这里;~REST Admin API为ArcGISDynamicMapService数据源增加changeParams操作,以动态修改附加参数。详见这里。详见这里;~数据源增加对ArcGISTiledMapService的支持;~增加自定义在线地图功能。可通过修改CustomOnlineMaps.xml文件内容,自行增删在线地图数据源(数据源须采用Google Maps/Bing Maps/ArcGIS Online地图的缓存策略);~增加自动保存/载入上次配置的功能;~为系统托盘图标增加右键菜单;~修复已知bug;2012.1.9更新v2.0.4:~REST Admin API增加enable/disable/clearByService三个操作,分别用于开启/关闭内存缓存功能,清除指定服务的内存缓存数据。详见这里;~界面改进:增加中文语言界面;支持最小化到系统托盘;地图预览加入显示切片网格功能;~修复一些已知Bug;2011.11.21更新v2.0.3:~增加REST Admin API。任何程序可通过发送HTTP(POST)请求,对PBS的服务进行管理。新增操作:添加服务(addService),删除服务(deleteService)。详见这里;~底图风格化选项增加泛黄(tint)与浮雕(embossed)两种效果。详见这里;2011.11.08更新v2.0.2:~数据源增加对ArcGIS Tile Package格式的支持。Tile Package是ArcGIS 10.1推出的便于分发,可将地图服务缓存文件(compact或exploded)打包成单一文件的文件格式。详见这里;~增加对单一服务的清除内存缓存功能;2011.11.04更新v2.0.1:~增加对单个服务是否启用内存缓存的控制;~增加输出动态生成切片数量和内存缓存切片数量的信息;~界面微调;~修复bug:32位系统上无法启用内存缓存功能;~修复bug:移动PBS文件夹后,启用内存缓存功能时可能报错;~修复bug:对服务启用反色(Invert)视觉效果后,PBS内存占用过大;~修复bug:在没有网络连接的情况下,双击预览没有初始范围的数据源时(第三方离线缓存或影像数据源),程序报错;2011.10.31更新v2.0: ~增加内存缓存功能。可将已生成过的切片数据自动缓存在机器内存中,之后可从内存中直接返回该切片,而不是动态生成。启用内存缓存功能后,可显著提高PBS性能,尤其对于动态缓存地图服务功能(影像数据或动态地图服务作为数据源),在几乎不占用cpu资源的情况下,支持的并发数可提高数十倍。该功能利用Memcached完成,它是一个免费的高性能分布式缓存系统(http://memcached.org/)。详细介绍;2011.10.25更新v1.0.6: ~增加底图风格化选项。目前除了原本的底图之外,为所有服务提供两个视觉风格选项:灰度图(Gray)和反色图(Invert),用于特殊目的。比如使用灰度图可突出显示业务内容,详见这里。详细介绍;2011.10.12更新v1.0.5:~增加ArcGIS Server Endpoint(http://localhost/arcgis/rest/services?f=json)信息,以便需要此信息的程序来使用PBS发布的服务。比如可在Silverlight Viewer中,直接加载PBS转发的天地图服务;2011.8.8更新v1.0.4:~增加配置文件功能:可将已发布的服务保存为配置文件,下回启动程序时可载入配置文件以启动相应服务;~增加选择本地IP地址功能:方便生成供其他机器使用的正确服务地址;~修复bug:在有些机器上双击服务进行预览时,程序会崩溃。原因是预览窗口中的服务属性使用了xaml binding,但出现了没有捕捉到的异常(有vs2010开发环境的机器不会抛出此异常)。感谢ningjun198624的反馈;~修复bug:在没有vs2010开发环境的机器上发布RasterDataset数据源报错。原因是程序中使用的gdal由vs2010编译,需要用到几个额外的动态链接库。新版本中已将所需的文件随压缩包分发。2011.7.31更新v1.0.3:~影像数据源增加对.sid格式的支持:MrSID是LizardTech公司持有的高压缩比影像存储格式,根据GDAL的解释,最初被FBI用于指纹存储。了解遥感的mm同事告诉我,MrSID格式压缩率通常比ecw格式要高,并且使用更广泛;~数据源增加对ArcGIS影像服务的支持:在10.1版本之前,ArcGIS Server发布的Image Service是不能够做切片的。通过PBS,可将ArcGIS Server的影像服务转换成动态缓存地图服务,既提高了显示速度和效果,又省去了切图时间和硬盘空间;~添加平均出图时间统计:服务信息中增加“Seconds Per Tile”统计信息,即该服务平均成功输出一张切片所用的时间。2011.7.24更新v1.0.2:~影像数据源增加对.ecw格式的支持:ecw是ERDAS公司持有的高压缩比影像存储格式,压缩率可达1:2~1:100。比如1m大小的ecw文件可包含3波段3000*3000(行/列)大小的影像数据;~影像数据源增加对.vrt格式的支持:类似于ArcGIS中的Raster Catalog。比如你有不同空间范围内的若干小的影像文件,可通过构建后缀名为vrt的xml文件,直接将它们通过动态镶嵌,发布为一个完整的动态缓存地图服务;~修复bug:ArcGISDynamicMapService数据源输入错误服务地址时程序会崩溃;~代码重构。2011.7.17更新v1.0.1:~数据源加入对影像数据的支持:对于大数据量的影像文件,无需切图,即可提供动态缓存地图服务。数据源选择RasterDataset,可发布文件形式的影像数据。利用GDAL读取栅格图像,支持格式见这里;不支持动态投影(TilingScheme文件中的空间参考必须与影像数据的空间参考一致);~修复bug:未发布服务时点击“Copy to Clipboard”按钮出错;~修复bug:预览窗口中左上角的缩放级别信息在有的坐标系下不准确。————————————————-更新分割线————————————————- 使用现在流行的Web地图API的第一件事情,就是往地图控件中添加一个底图(Basemap)图层,做为我们整个GIS应用的可视化基础。而这个底图图层通常有两个特点,一是经过了缓存,即服务器端提供已经预先缓存好或动态提供固定大小(比如256*256)地图切片,加快客户端的访问速度;二是该图层由一个REST风格的网络服务暴露出来。对于它的访问,客户端一般会发起若干个包含有三个关键参数的请求,比如http://hostaddress/servicename/LEVEL/ROW/COLUMN,将请求的结果(若干切片)拼接成我们所看到的地图。 目前来讲,要使用这些底图服务的前提是,我们必须使用特定的客户端才能加载特定的底图服务,比如利用Google Maps API加载Google的底图;如果要加载自己地理数据,还需要有专门的GIS软件,比如ArcGIS Server来发布Map Service。 为了解决这一问题,使得开发人员能够更加方便地加载各种底图服务,从而将更多的精力投入到做出更有用的系统中去,我做了这个称作Portable Basemap Server(简称PBS)的小程序供大家免费使用。它的目的是通过一个可以拷贝到U盘里的,免安装的WPF程序,来加载各种数据源作为底图图层,直接为更多的客户端API提供一致风格的REST底图服务,从而使开发人员免去为每个应用程序自定义图层的麻烦。 关于PBS的功能 使用起来很简单,大致分四个步骤。1、选择数据源类型,2、设置数据源路径,3、设置将要发布的服务端口号和服务名,4、启动服务。程序界面如下: 一、选择数据源类型: MobileAtlasCreator:MAC是一个开源的Java程序,可将在线地图切片保存到本地,比如Sqlite数据库中,供移动设备离线使用。介绍看这里。很多朋友都喜欢使用Google地图作为底图,以前的方法是,用第三方程序(MAC还是比较厚道的,不加水印没有任何功能限制)去下载切片,保存到本地,然后按照ArcGIS缓存的组织规则重新组织这些切片,再将其发布成缓存地图服务。最后一步比较麻烦。利用PBS,就可以直接读取MAC保存的Sqlite数据库,将其中的切片直接发布成可供多种客户端API使用的底图服务; MBTiles:类似于MAC,但它有更严格的规范,比如在特定位置存储全图范围(MAC没有),具体规范查看这里。MBTiles切片存储遵循的是TMS规范,虽然这中规范已被WMTS逐步取代,但PBS依然支持这种数据源,可直接读取该数据源作为多种客户端的底图服务。可在这里下载一个海地的地形图进行试验; ArcGISCache:这个不用多说了,ArcGIS Server生成的地图缓存,指定包含Conf.xml和Conf.cdi文件的文件夹作为数据源即可,PBS会自动读取Tiling Scheme;Exploded和Compact两种存储格式均可识别。如果是ArcGIS 10之前的切片,需要自己手动创建Conf.cdi文件(仿照现有的文件即可,里面存储的是全图范围); ArcGISTilePackage:Tile Package是ArcGIS 10.1推出的便于分发,可将地图服务缓存文件(compact或exploded)打包成单一文件的文件格式,文件后缀名为.tpk。以前为了分发地图数据,需要将样式配置信息(针对所有图层的地图文档.mxd,针对单个图层的图层样式.lyer)和实际地理数据(.mdb/.gdb/.shp等)一起拷贝。自9.3.1的开始,为了便于地图数据的分发,ArcGIS推出了Layer Package格式(.lpk),它包括了图层样式(.lyr)以及引用到的实际地理数据。这样其他用户拿到一个文件,就可完全还原数据本身和显示样式。ArcGIS10开始推出Map Package(.mpk)格式,10.1开始推出Tile Package(.tpk),Locator Package(.apk)和Geoprocessing Package(.gpk)格式; RasterImage:1.0.1版本开始支持。文件形式的影像数据。在项目过程中,可能需要加入高分辨率的影像文件做为底图服务,但对这些影像文件切图、保存需要耗费极大的时间、空间。利用PBS可将影像文件直接发布为动态缓存地图服务,无需切图即可达到缓存地图服务的效果。对栅格数据的读取是利用GDAL完成的,支持的影像格式见这里。发布的影像数据必须具有正确的空间参考信息(不支持动态投影);需要选择ArcGIS Server生成的TilingScheme(Conf.xml和Conf.cdi文件)以确定缓存服务的级别; 1.0.2版本开始支持.ecw和.vrt影像格式。ecw是ERDAS公司持有的高压缩比影像格式,压缩率可达1:2~1:100。比如1m大小的ecw文件可包含3波段3000*3000(行/列)大小的影像数据;.vrt格式类似于ArcGIS中的Raster Catalog,具有对多张影像动态镶嵌的功能。比如你有很多空间连续的小的影像文件,它们加起来可能有上百G。通过构建后缀名为vrt的xml文件,直接将它们通过动态镶嵌,发布为一个完整的动态缓存地图服务。vrt文件可利用gdalbuildvrt.exe工具来自动创建,发布时PBS中数据源直接选择.vrt文件即可。vrt格式介绍一文,供参考。1.0.3版本开始支持.sid影像格式。MrSID是LizardTech公司持有的高压缩比影像存储格式,根据GDAL的解释,最初被FBI用于指纹存储。我对遥感知识知之甚少,做遥感的mm同事告诉我,MrSID格式压缩率通常比ecw格式要高,并且使用更广泛;v2.0.7版本开始,为影像数据源提供本地缓存功能,任何客户端浏览过的切片,都会存储在指定目录的本地缓存文件中;本地缓存文件存在的情况下,会首先从该文件中输出切片,而不是动态输出。对于多并发情况下的影像数据源,可大幅减少cpu的使用率(与内存缓存配合可达成二级缓存的效果)。此功能可通过配置文件中的AllowFileCacheOfRasterImage参数设置,默认为True。 … Continue reading Portable Basemap Server:多数据源多客户端的底图服务器