linux环境下搭建osm_web服务器三(Openlays和slippymap):
Openlays和slippymap
上一步,我们已经有了自己的地图瓦片服务器,现在,开始实现SlippyMap啦!
<1>下载释放OpenLayers到 www文件夹
SlippyMap 利用 OpenLays 的AJax实现,直接从Openlays官网下载最新版文件
http://www.openlayers.org/
这里是2.12 版本。
http://www.openlayers.org/download/OpenLayers-2.12.tar.gz
释放到 /var/www/openlayes下,并为www-data 设置可读权限,就完成了!
(http://openlayers.org/two/在此路径下载了openlayer2)
<2>下载OpenStreetMap.js
对OSM的数据,下载这个文件,放在上面第一步创建的文件夹里。
http://www.openstreetmap.org/openlayers/OpenStreetMap.js
于是,目录看起来如下:

接着,我们来写网页
<2> 编写第一个网页,实现SlippyMap
我们编写第一个网页, 参考图书 OpenLayers 2.10 Beginner's Guide,该图书在http://download.csdn.net/detail/zyk0511/3473416
代码
[html] view plain copy
- <html>
- <head>
- <title>OSM Local Tiles</title>
- <link rel="stylesheet" href="/openlayers/theme/default/style.css" type="text/css" />
- <!-- bring in the OpenLayers javascript library
- (here we bring it from the remote site, but you could
- easily serve up this javascript yourself) -->
- <script src="/openlayers/OpenLayers.js"></script>
- 10.
- 11. <!-- bring in the OpenStreetMap OpenLayers layers.
- 12. Using this hosted file will make sure we are kept up
- 13. to date with any necessary changes -->
- 14.
- 15. <script src="/openlayers/OpenStreetMap.js"></script>
- 16.
- 17. <script type="text/javascript">
18. // Start position for the map (hardcoded here for simplicity)
- 19. var lat=31.27386;
- 20. var lon=121.48132;
- 21. var zoom=7;
- 22.
- 23. var map; //complex object of type OpenLayers.Map
- 24.
- 25. //Initialise the 'map' object
- 26. function init() {
- 27.
- 28. map = new OpenLayers.Map ("map", {
- 29. controls:[
- 30. new OpenLayers.Control.Navigation(),
- 31. new OpenLayers.Control.PanZoomBar(),
- 32. //new OpenLayers.Control.PanZoom(),
- 33. new OpenLayers.Control.Permalink(),
- 34. new OpenLayers.Control.ScaleLine({geodesic: true}),
- 35. new OpenLayers.Control.Permalink('permalink'),
- 36. new OpenLayers.Control.KeyboardDefaults(),
- 37. new OpenLayers.Control.NavToolbar(),
- 38. new OpenLayers.Control.Attribution()],
- 39. maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
- 40. maxResolution: 156543.0339,
- 41. numZoomLevels: 19,
- 42. units: 'm',
- 43. projection: new OpenLayers.Projection("EPSG:900913"),
- 44. displayProjection: new OpenLayers.Projection("EPSG:4326")
- 45. } );
- 46.
- 47. // This is the layer that uses the locally stored tiles
- 48. var newLayer = new OpenLayers.Layer.OSM("Local Tiles", "/osm_tiles2/${z}/${x}/${y}.png", {numZoomLevels: 19, transitionEffect: "resize"});
- 49. map.addLayer(newLayer);
- 50.
- 51. var switcherControl = new OpenLayers.Control.LayerSwitcher();
- 52. map.addControl(switcherControl);
- 53. var vector_layer = new OpenLayers.Layer.Vector('Editable Vectors');
- 54. map.addControl(new OpenLayers.Control.EditingToolbar(vector_layer));
- 55. map.addLayer(vector_layer);
- 56.
- 57. map.addControl(new OpenLayers.Control.Graticule({visible: false}));
- 58. var mousepos = new OpenLayers.Control.MousePosition({div: document.getElementById('mousepos_div')});
- 59. map.addControl(mousepos);
- 60. //mousepos.moveTo(new OpenLayers.Pixel(64,0));
- 61.
- 62. map.addControl(new OpenLayers.Control.OverviewMap());
- 63. /*
- 64. var navigationT = new OpenLayers.Control.TouchNavigation({
- 65. dragPanOptions:{
- 66. enableKinetic: true
- 67. }
- 68. });
- 69. map.addControl(navigationT);
- 70. */
- 71. if( ! map.getCenter() ){
- 72. var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
- 73. map.setCenter (lonLat, zoom);
- 74. }
- 75. }
- 76.
- 77. </script>
- 78.
79. </head>
80. <!-- body.onload is called once the page is loaded (call the 'init' function) -->
81. <body onload="init();">
- 82. <!-- define a DIV into which the map will appear. Make it take up the whole window -->
- 83. <div style="width: 100%; height: 93%" id="map">
- 84. </div>
- 85. <P><a href='/index.html'>start screen</a></P>
- 86. <div style="width: 100%; height: 5%" id="mousepos_div">
- 87.
- 88.
- 89.
- 90. </div>
91. </body>
92. </html>
访问网页,OK拉

下一篇,我们来导入全球的数据,并进行地名翻译。
转载:http://blog.csdn.net/goldenhawking/article/details/7952303
linux环境下搭建osm_web服务器三(Openlays和slippymap):的更多相关文章
- linux环境下搭建osm_web服务器一(Postgresql配置及osm2pgsql原始数据导入):
Postgresql配置及osm2pgsql原始数据导入 2012年,Ubuntu 12.04LTS发布,又一个长效支持版,我们又该更新OpenStreetMap服务器了,这次,将详细在博客中记录配置 ...
- linux环境下搭建osm_web服务器二(Mapnik及apache2mod_tile配置):
Mapnik及apache2mod_tile配置 上一篇,我们配置好了PostgreSQL服务器,导入了测试数据.今天,我们来配置 mapnik2 + apache2 + mod_tile 的WMS服 ...
- linux环境下搭建osm_web服务器四(对万国语的地名进行翻译和检索):
对万国语的地名进行翻译和检索 经过 前三篇的调试,已经有了一个完整的Map可以浏览,我们痛苦的世界范围数据下载.导入过程也结束了.要提醒一下的是,鉴于网速,不要下载 planetosm.lastest ...
- Windows和Linux环境下搭建SVN服务器
--------------------------Windows下搭建SVN服务器----------------------------- 一.安装SVN服务端 软件包Setup-Subversi ...
- linux环境下搭建solr服务器--单机版
前提需要在安装好jdk和tomcat,本人用的是jdk1.8+tomcat8.5+solr4.10. 第一步:安装linux.jdk.tomcat.(这步都是比较简单的,就不多说了) 第二步:把sol ...
- 在Linux 环境下搭建 JDK 和 Tomcat
在Linux 环境下搭建 JDK 和 Tomcat 参考地址:http://www.cnblogs.com/liulinghua90/p/4661424.html [JDK安装] 1.首先下载 ...
- Linux环境下搭建禅道管理工具-包含软件资源
Linux环境下搭建禅道管理工具 1:百度云盘下载: 禅道--链接: https://pan.baidu.com/s/1Stu7nOZVIPO5TnpJWjWtiQ 提取码:dnik CentOs操 ...
- ubuntu 14.04LTS 环境下搭建tftp服务器
花费我一整天的时间在 ubuntu 14.04LTS 环境下搭建tftp服务器,网上好多资料参差不齐,简单来说,TFTP(Trivial File Transfer Protocol),是一个基于UD ...
- freeSSHD在windows环境下搭建SFTP服务器
freeSSHD在windows环境下搭建SFTP服务器 0 建议现在windows环境下安装cygwin,否则在windows环境下cmd模式使用不了sftp去连接,可以利用win scp去测试连接 ...
随机推荐
- year()+month() 不错的Idear
year(发货日期)*100+month(发货日期),可以取到年份+月份(月份不到10月的,自动补0)
- 字符串的问题(substr,find用法)
链接:https://www.nowcoder.com/acm/contest/77/C来源:牛客网 字符串的问题 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他 ...
- vue-router规则下 history模式在iis服务器上配置
vue默认模式是hash模式 url地址栏会带有“#”这个字符. 例如:http://www.xxx.com/#/index 感觉和正常的url相比有点丑. 如何让此地址如正常的url一样 官 ...
- Java 中的instanceof 运算符
Java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例.instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例. 用法:resu ...
- 028:基于mysqldump备份脚本
MySQL Backup and Recovery 一 MySQL Backup 1.功能 mysqldump全量和增量备份,通过最近一次备份刷新产生binlog来定位执行增量. 脚本下载地址 git ...
- 20181122_C#中AOP_使用Unity实现AOP
一. 使用Unity的AOP实现 a) 整体项目截图: b) 添加Unity的Nuget包, 直接使用最新版就行, 需要添加两个 Unity 和 Unity.Interceptio ...
- python学习(二十) Python 中的比较:is 与 ==
Python 中的比较:is 与 == 在 Python 中会用到对象之间比较,可以用 ==,也可以用 is .但是它们的区别是什么呢? is 比较的是两个实例对象是不是完全相同,它们是不是同一个对象 ...
- 【转】BMR(Block Media Recovery)
关于RMAN的块恢复.Block是oracle数据库最小恢复单位.鉴于此,BMR可以大大缩短恢复的时间,另外,在进行BMR时不需要停掉数据库,可以直接在数据库open状态对数据文件进行恢复,只是需要恢 ...
- canvas获取鼠标位置
canvas获取鼠标位置 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Win8电源选项中没有休眠这一项如何让Win8也能够休眠
我们都知道,Win8默认的电源选项中是没有休眠这一选项的,即使用Alt+F4打开关闭Windows选项窗口也看不到”休眠“.难道Win8就不能够休眠了吗?答案当然不是,我们只要进行一些设置就能让Win ...