MapServer使用笔记(二)

转自:http://blog.csdn.net/iwillsw/article/details/6037643

为MapServer添加瓦片缓存服务

国际上有两个比较流行的开源地图瓦片缓存服务器:geowebcache和tilecache。
geowebcache基于J2EE架构,具有完整的Web图形管理界面,支持多进程并发切图,可以随时查看切图进度和剩余时间,搭配geoserver非常合适。
titlecache采用python编写,CGI工作模式,非常小巧,2.11版本只有令人惊讶的68K!(这一点很像MapServer)。
titlecache采用SHELL或DOS命令行方式运行切图程序,实时输出切图进度信息。
mapserver选择titlecache作为地图切片缓存服务器,在ms4w_3.0beta10中包含了tilecache插件,由于beta版本存在问题,
我们在ms4w_2.3.1正式版中手工加入tilecache服务器,具体步骤如下:

1、从tilecache官方网站下载安装包tilecache-2.11.tar.gz,该安装包适用于所有操作系统,我们使用Windows XP。
2、解压安装包,将其中的tilecache-2.11目录整体复制到ms4w的apps目录下。
3、进入ms4w的http.d目录,新建一个名为httpd_tilecache.conf的文本文件,内容如下:
Alias /tilecache/ "/ms4w/apps/tilecache-2.11/"
<Directory "/ms4w/apps/tilecache-2.11/">
  AllowOverride None
  Options ExecCGI
  Order allow,deny
  Allow from all
</Directory>
addHandler cgi-script .cgi .py
4、进入ms4w/apps/tilecache-2.11目录,打开tilecache.cgi文件,修改第一行的python编译器路径,例如
#!E:/Python25/python.exe
5、打开该目录下的tilecache.cfg文件,修改cache标签,指定本地磁盘缓存目录,例如
[cache]
type=Disk
base=F:/tmp/tilecache
添加一个road标签,指定地图服务类型,服务地址,mapfile文件路径,图层名称,栅格格式,空间参考系统编码,例如
[road]
type=WMS
url=http://127.0.0.1/cgi-bin/mapserv.exe?map=I:/cn_data/c2.map&transparent=true&
layers=road
extension=png
srs=EPSG:4326
6、重新启动Apache
7、打开tilecache下的index.html文件,根据实际情况修改openlayers.js的路径,例如
<script src="/openlayers/OpenLayers.js"></script>
修改layer参数,例如
layer = new OpenLayers.Layer.WMS( "road", "tilecache.cgi?", {layers: 'road', format: 'image/png' } );

使用浏览器访问http://127.0.0.1/tilecache,Web页面上将显示经过tilecache处理的地图,客户端浏览过的地图切片文件被保存在tilecache.cfg文件指定的临时目录下,这里是F:/tmp/tilecache目录,如果其中包含客户端正在请求的地图,这些地图将不再通过MapServer动态生成,而是直接从缓存目录读取静态图片文件。对于大用户量、高并发的地图访问,瓦片缓存机制可以非常有效的提高客户端读取、显示地图的速度。

通过执行tilecache_seed.py脚本,可以手动生成地图切片,下面的命令给road图层发布0到6级的地图切片文件。
python "F:/ms4w/apps/tilecache-2.11/tilecache_seed.py" road 0 6
等待执行完毕,进入缓存目录可以找到刚才发布的地图切片文件。

转载于:https://www.cnblogs.com/LCGIS/archive/2013/05/31/3110195.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个是前面一个的加强版 40-50个相关代码 和大家一起学习 2. 使某图层可选或不可选 3 3. 使用checkboxes控制图层可见性 3 4. 把当前窗口地图保存为图片 3 5. 设置地图视图功能的范围选定 4 6. 创建从一个Microsoft Access表的填图(还未实现) 4 7. 建立一个线缓冲区,并加载到地图中(还未实现) 5 8. 计算一个多边形内点的数目(已完成) 6 9. 把当前的选择工具变为漫游工具 7 10. 改变绘图样式 7 11. 返回选择物信息(已完成) 7 12. 一个简单的点对点路径分析(这个路径分析是使用mapinfo服务器,得付费) 8 13. 把选择的结果填充到datagrid中 9 14. 设置导出图片的格式 9 15. Feature相关程序 10 1. 创建一个feature并加载到地图中 10 2. 插入一个feature 11 3. 向地图中插入一个特殊的feature 11 4. 选择geometry的样式 11 16. 添加一个加载图片的自定义标签工具(已完成) 12 17. 比例尺和标签修饰(已完成) 13 18. 使用专题和图例 13 19. 相对路径加载地图 14 20. SearchInfoFactory类 15 21. 可制图表的一个研究 17 22. 两种方法实现动态轨迹 19 23. 运动轨迹的代码(桌面程序用) 22 24. MapXtreme中桌面信息工具(InfoTool)的简单实现 26 25. 在MapXtreme2004 地图中创建一个显示动态小车的图层 27 26. 地图图元的闪烁效果制作 29 27. 根据名称搜索图元,高亮显示,显示信息 30 28. 画线轨迹 31 29. 多点画一线 31 30. 改变线或区域的样式 32 31. 显示多边形 32 32. 添加图元 32 33. 控制显示比例 33 34. 显示多行InfoTips 33 35. 取得选择图元的ID列表 35 36. 用程序选择指定层中符合条件的图元 36 37. 瘦控件的专题图制作 37 38. 一个选中的图元强调显示,用红色醒目的文字显示 40 39. 在MapXtreme中的标注换行 43 41. 几个报错 43 42. 在C#应用中如何读取存在ORACLE(或SQL Server)中的MapInfo表 45 43. 读取线的节点坐标程序 47 44. 常用示例 48 1 设置图层可选状态 48 2 设置层的可用状态 48 3 层居中,看全图 49 4 放大缩小地图 50 5 移动层的顺序 mapControl1.Map.Layers.Move(index1,index2); 51 6 图元/图层透明 51 7 选择全部图元 53 10 计算缩放比例 57
技术类:HP_UXadminII培训笔记 第一章 3 HP的几个网站: 3 第二章 4 1.OSI网络模型 4 2. MAC地址(media control addresses) 4 3. IP地址(internet protocol addresses) 5 4. 子网掩码 5 5. IP回环地址(IP回馈地址)(IP loopback address) 5 6. 获得IP地址 5 7. 主机名 6 8. IP与MAC的转换 6 9. 综述 6 10. TCP传输 6 11. UDP传输 7 12. 端口 7 13. 套接字 7 14. OSI模型回顾 7 第三章 8 1. 每个LAN中的每个工作站或者服务器都至少有一个网卡. 8 2. 常见网络设备有: 8 3. LAN传输介质 8 4. 局域网的拓扑结构 9 5. 局域网访问方式 9 6. 中继器(repeater)(基本不再使用,已经被hub取代) 9 7. 集线器(hub) 9 8. 网桥(bridge)(基本不再使用,已经被交换机取代) 10 9. 交换机(switch) 10 10. 路由器(router) 10 11. 网关(gateway) 10 12. 防火墙(firewall) 11 13. 综述 11 第四章 12 1. 一些基本的东西: 12 2. 不重启的情况下,更改静态IP(更改后,如果重启系统,新IP生效) 12 3. 更改动态IP 12 4. 不重启的情况下,更改hostname 13 5. 检查网卡的自动配置(checking LANIC autoconfiguration) 13 6. HP_UX网络启动文件 13 7. 配置链路层的连通性(configuring link layer connectivity) 14 8. 配置IP连通性 14 9. IP多路技术(configuring IP multiplexing)(虚拟网卡) 15 10. /etc/hosts文件 16 第五章 17 1. 路由概念 17 2. 路由表 17 3. 查看路由表 17 4. 配置静态路由(本节用处不大) 18 5. 配置静态路由 19 6. 在/etc/rc.config.d/netconf文件中配置路由 19 第六章 20 1. 大型网络的限制 20 2. 子网中的IP地址 20 3. 已划分子网的网络中的网络掩码 20 4. 子网地址 21 5. 子网中的主机的IP地址 21 6. 变长的子网(考试会考,很重要.) 21 7. 配置子网 21 第七章 22 1. 网络不通的troubleshooting 22 2. lanscan的使用 22 3. Linkloop的使用 23 4. lanadmin 23 5. arp命令 23 6. ping 命令 23 7. netstat命令 23 8. nslookup命令 23 第八章 24 1. 启动系统网络服务 24 2. 运行级别 24 3. /sbin/rc*.d目录 24 4. S/K命名习惯 25 第九章 27 1. 哪些目录不适合作为NFS的挂载点 27 2. 运行原理及过程 27 3. rpcbind守护进程 27 4. nfs是面向无状态的操作 27 5. 对UID和GID的要求 28 6. NIS(集中身份验证) 28 7. NTP(网络时间协议) 28 8. 因为NFS的要求太高,而且不够灵活,所以不太流行了 28 9. NAS 28 10. NFS PV2和PV3的比较 28 11. NFS和CIFS(也叫samba)的比较 29 第十章 30 1. 配置NFS需要考虑的事项 30 2. 配置NFSserver和client的步骤 30 3. 保持NFSserver和client的一致性 31 4. 配置NFSserver端 31 5. NFS相关其他内容 32 第十一章 33 1. AutoFS的概念 33 2. AutoFS maps 33 3. 使AutoFS生效 34 4. 配置AutoFS map 35 5. 配置AutoFS直接挂载列表 35 6. 间接挂载列表 36 7. 区别(直接挂载和间接挂载) 36 8. 间接挂载方式的用途 36 9. 直接挂载方式的用途 36 10. trouble shooting 36
个人学习golang笔记,从各种教程中总结而来,作为入门参考。目录如下 目录 1. 入门 1 1.1. Hello world 1 1.2. 命令行参数 2 2. 程序结构 3 2.1. 类型 4 2.1.1. 命名类型(named type)与未命名类型(unamed type) 4 2.1.2. 基础类型(underlying type) 4 2.1.3. 可赋值性 5 2.1.4. 类型方法集 6 2.1.5. 类型声明 6 2.2. 变量 8 2.2.1. 变量声明 8 2.2.2. 类型零值 12 2.2.3. 指针 13 2.3. 赋值 17 2.4. 包和文件 17 2.5. 作用域 18 2.6. 语句 19 2.7. 比较运算符 20 2.8. 类型转换 21 2.9. 控制流 23 2.9.1. If 23 2.9.2. Goto 24 2.9.3. For 25 2.9.4. Switch 25 2.9.5. break语句 31 2.9.6. Continue语句 31 3. 基础数据类型 31 3.1. golang类型 31 3.2. Numeric types 32 3.3. 字符串 33 3.3.1. 什么是字符串 33 3.3.2. 字符串底层概念 35 3.3.3. 获取每个字节 38 3.3.4. Rune 39 3.3.5. 字符串的 for range 循环 40 3.3.6. 用字节切片构造字符串 41 3.3.7. 用rune切片构造字符串 42 3.3.8. 字符串的长度 42 3.3.9. 字符串是不可变的 42 3.3.10. UTF8(go圣经) 43 3.4. 常量 45 3.4.1. 常量定义 45 3.4.2. 常量类型 46 3.4.3. Iota 46 4. 组合数据类型 47 4.1. 数组 47 4.1.1. 数组概述 47 4.1.2. 数组的声明 49 4.1.3. 数组的长度 50 4.1.4. 遍历数组 50 4.1.5. 多维数组 51 4.2. 切片 52 4.2.1. 什么是切片 52 4.2.2. 切片概述 55 4.2.3. 创建一个切片 55 4.2.4. 切片遍历 57 4.2.5. 切片的修改 58 4.2.6. 切片的长度和容量 60 4.2.7. 追加切片元素 62 4.2.8. 切片的函数传递 65 4.2.9. 多维切片 66 4.2.10. 内存优化 67 4.2.11. nil slice和empty slice 69 4.2.12. For range 70 4.3. 结构 71 4.3.1. 什么是结构体? 71 4.3.2. 结构体声明 73 4.3.3. 结构体初始化 77 4.3.4. 嵌套结构体(Nested Structs) 81 4.3.5. 匿名字段 82 4.3.6. 导出结构体和字段 84 4.3.7. 结构体相等性(Structs Equality) 85 4.4. 指针类型 86 4.5. 函数 87 4.6. map 87 4.6.1. 什么是map 87 4.6.2. 声明、初始化和make 89 4.6.3. 给 map 添加元素 91 4.6.4. 获取 map 中的元素 91 4.6.5. 删除 map 中的元素 92 4.6.6. 获取 map 的长度 92 4.6.7. Map 的相等性 92 4.6.8. map的排序 92 4.7. 接口 93 4.7.1. 什么是接口? 93 4.7.2. 接口的声明与实现 96 4.7.3. 接口的实际用途 97 4.7.4. 接口的内部表示 99 4.7.5. 空接口 102 4.7.6. 类型断言 105 4.7.7. 类型选择(Type Switch) 109 4.7.8. 实现接口:指针接受者与值接受者 112 4.7.9. 实现多个接口 114 4.7.10. 接口的嵌套 116 4.7.11. 接口的零值 119 4.8. Channel 120 4.9. 类型转换 120 5. 函数 120 5.1. 函数的声明 121 5.2. 一个递归函数的例子( recursive functions) 121 5.3. 多返回值 121 5.4. 命名返回值 121 5.5. 可变函数参数 122 5.6. Defer 123 5.6.1. Defer语句介绍 123 5.6.2. Defer使用场景 128 5.7. 什么是头等(第一类)函数? 130 5.8. 匿名函数 130 5.9. 用户自定义的函数类型 132 5.10. 高阶函数(装饰器?) 133 5.10.1. 把函数作为参数,传递给其它函数 134 5.10.2. 在其它函数中返回函数 134 5.11. 闭包 135 5.12. 头等函数的实际用途 137 6. 微服务创建 140 6.1. 使用net/http创建简单的web server 140 6.2. 读写JSON 144 6.2.1. Marshal go结构到JSON 144 6.2.2. Unmarshalling JSON 到Go结构 146 7. 方法 146 7.1. 什么是方法? 146 7.2. 方法示例 146 7.3. 函数和方法区别 148 7.4. 指针接收器与值接收器 153 7.5. 那么什么时候使用指针接收器,什么时候使用值接收器? 155 7.6. 匿名字段的方法 156 7.7. 在方法中使用值接收器 与 在函数中使用值参数 157 7.8. 在方法中使用指针接收器 与 在函数中使用指针参数 159 7.9. 在非结构体上的方法 161 8. 并发入门 162 8.1. 并发是什么? 162 8.2. 并行是什么? 162 8.3. 从技术上看并发和并行 163 8.4. Go 对并发的支持 164 9. Go 协程 164 9.1. Go 协程是什么? 164 9.2. Go 协程相比于线程的优势 164 9.3. 如何启动一个 Go 协程? 165 9.4. 启动多个 Go 协程 167 10. 信道channel 169 10.1. 什么是信道? 169 10.2. 信道的声明 169 10.3. 通过信道进行发送和接收 169 10.4. 发送与接收默认是阻塞的 170 10.5. 信道的代码示例 170 10.6. 信道的另一个示例 173 10.7. 死锁 174 10.8. 单向信道 175 10.9. 关闭信道和使用 for range 遍历信道 176 11. 缓冲信道和工作池(Buffered Channels and Worker Pools) 179 11.1. 什么是缓冲信道? 179 11.2. 死锁 182 11.3. 长度 vs 容量 183 11.4. WaitGroup 184 11.5. 工作池的实现 186 12. Select 188 12.1. 什么是 select? 188 12.2. 示例 189 12.3. select 的应用 190 12.4. 默认情况 190 12.5. 死锁与默认情况 191 12.6. 随机选取 191 12.7. 这下我懂了:空 select 191 13. 文件读写 191 13.1. GoLang几种读文件方式的比较 197 14. 个人 197 14.1. ++,-- 198 14.2. 逗号 198 14.3. 未使用的变量 199 14.4. Effective go 199 14.4.1. 指针 vs. 值 199 14.5. 可寻址性-map和slice的区别 201 14.5.1. slice 201 14.5.2. map 202 14.6. golang库 203 14.6.1. unicode/utf8包 203 14.6.2. time包 205 14.6.3. Strings包 205 14.6.4. 输入输出 212 14.6.5. 正则处理 224 14.6.6. Golang内建函数 226

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值