openlayers实现多图显示

概述:

本文讲述在openlayers中如何实现多图联动。

思路:

1、判断鼠标在哪个地图上;

2、添加该地图的地图移动事件;

3、设置另外一个地图的bound为该地图的。

代码:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>openlayers map</title>
    <link rel="stylesheet" href="http://localhost/olapi/theme/default/style.css" type="text/css">
    <style>
        html, body, table{
            padding:0;
            margin:0;
            height:100%;
            width:100%;
            overflow: hidden;
        }
        #map1,#map2{
            width: 100%;
            height: 100%;
        }
    </style>
    <script src="http://localhost/olapi/OpenLayers.js"></script>
    <script src="http://localhost/olapi/lib/OpenLayers/Lang/zh-CN.js"></script>
    <script src="http://localhost/jquery/jquery-1.8.3.js"></script>
    <script>
        var map1,map2;
        $(window).load(function() {
            var bounds = new OpenLayers.Bounds(
                    73.45100463562233, 18.16324718764174,
                    134.97679764650596, 53.531943152223576
            );
            var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 0.2403351289487642,
                projection: "EPSG:4326",
                units: 'degrees'
            };
            map1 = new OpenLayers.Map('map1', options);
            map2 = new OpenLayers.Map('map2', options);

            map1.addLayer(getWms("china"));
            map1.addControl(new OpenLayers.Control.Zoom());
            map1.addControl(new OpenLayers.Control.Navigation());
            map1.zoomToExtent(bounds);

            map2.addLayer(getWms("province"));
            map2.addControl(new OpenLayers.Control.Zoom());
            map2.addControl(new OpenLayers.Control.Navigation());
            map2.zoomToExtent(bounds)

            $("table").on("mousemove", function(e){
                var _x = e.clientX;
                var _tabWidth = $("table").width();
                if(_x>0 && _x<_tabWidth/2){
                    map1.events.register("move",map1,function(){
                        map2.zoomToExtent(map1.getExtent());
                    });
                }
                else{
                    map2.events.register("move",map2,function(){
                        map1.zoomToExtent(map2.getExtent());
                    });
                }
            })
        });

        function getWms(layer){
            return new OpenLayers.Layer.WMS(
                    "Geoserver layers - Tiled",
                    "http://localhost:8081/geoserver/lzugis/wms",
                    {
                        "LAYERS": layer,
                        "STYLES": '',
                        format: 'image/png'
                    },
                    {
                        buffer: 0,
                        displayOutsideMaxExtent: true,
                        isBaseLayer: true,
                        yx : {'EPSG:4326' : true}
                    }
            );
        }
    </script>
</head>
<body>
<table cellpadding="0" cellspacing="0" width="100%" height="100%">
    <tr>
        <td style="width: 50%; height: 100%; border-right: 1px solid #000;">
            <div id="map1"></div>
        </td>
        <td style="width: 50%; height: 100%; border-right: 1px solid #000;">
            <div id="map2"></div>
        </td>
    </tr>
</table>
</body>
</html>

时间: 2024-08-01 19:07:19

openlayers实现多图显示的相关文章

C++ opencv快速例子学习——读图显示

1.关键函数 1. 读入图片 imread(图片或位置,显示格式)默认为:IMREAD_COLOR 显示格式: IMREAD_UNCHANGED =-1    // 8bit, color or not IMREAD_GRAYSCALE    = 0    // 8bit, gray IMREAD_COLOR           = 1    //  color IMREAD_ANYDEPTH      = 2   // any depth, IMREAD_ANYCOLOR     = 4   

Linux命令之pstree - 以树状图显示进程间的关系

本文链接:http://codingstandards.iteye.com/blog/842156   (转载请注明出处) 用途说明 pstree命令以树状图显示进程间的关系(display a tree of processes).ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰.在Linux系统中,系统调用fork可以创建子进程,通过子shell也可以创建子进程,Linux系统中进程之间的关系天生就是一棵树,树的根就是进程PID为1的init进程. 常用参

[Linux] Linux命令之pstree - 以树状图显示进程间的关系

转载自: http://codingstandards.iteye.com/blog/842156 pstree命令以树状图显示进程间的关系(display a tree of processes).ps命令可以显示当前正在运行的那些进程的信息,但是对于它们之间的关系却显示得不够清晰.在Linux系统中,系统调用fork可以创建子进程,通过子shell也可以创建子进程,Linux系统中进程之间的关系天生就是一棵树,树的根就是进程PID为1的init进程. 常用参数 格式:pstree 以树状图显

使用CSS3的background-size优化Sprites图显示

可以创建一张Sprites图,这张图既有普通分辨率图像,又有高分辨率下的图像? 你可以,但你还是要面对,你的用户在一个较慢的带宽下下载一个大图的烦恼.你也要同时面对IE9以下的浏览器不支持background-size的麻烦问题. 你最好还是分别为高分辨率和普通分辨率创建不同的两张Sprites图.这个时候又有不同的声音了,这不是增加工作量吗?但这真的不是,在我的工作 流中,我会先创建一张高分辨率的Sprites图像,然后制一份,并把尺寸缩放一半.当图像需要更新时,只需要再一次处理高分辨率下的图

Ios 该图显示其出现的相关问题定义UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:&amp;#39;

解决这个问题 在 加上个 标示符 Cell 自己定义 customCell .h 代码例如以下 ViewController.m 文件里 代码例如以下 执行结果 吕 图坚持直接在这里 不行 Ios 该图显示其出现的相关问题定义UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

AngularJS in Action读书笔记5(实战篇)——在directive中引入D3饼状图显示

前言: "宁肯像种子一样等待  也不愿像疲惫的陀螺  旋转得那样勉强" 这是前几天在查资料无意间看到的一位园友的签名,看完后又读了两遍,觉得很有味道.后来一寻根究底才知这是出资大诗人汪国真之口,出处<她>.且抛开上下文,单从这短短几句,正恰如其分的折射出有一群人,他们穿着不那么fashion,言辞不那么犀利,但是内心某一块地方像是躁动的火山,拥有无尽的动力和激情,矢志不渝种子般投身到技术研究和心得分享当中. 或许每一次的生长都是那么悄无声息,但是无数次的坚持只是为了破土那日

关于游戏打包(Android)后,手机上的模型贴图显示模糊问题的解决方案

1.点击贴图,如图: 2.将红线内的勾去掉. 注释:Mipmap技术有点类似于LOD技术,但是不同的是,LOD针对的是模型资源,而Mipmap针对的纹理贴图资源 使用Mipmap后,贴图会根据摄像机距离的远近,选择使用不同精度的贴图. 缺点:会占用内存,因为mipmap会根据摄像机远近不同而生成对应的八个贴图,所以必然占内存! 优点:会优化显存带宽,用来减少渲染,因为可以根据实际情况,会选择适合的贴图来渲染,距离摄像机越远,显示的贴图像素越低,反之,像素越高!

6. 分类图显示和保存

一.前言 本文主要运用知识为 1.QTableView控件的代理委托:2.颜色进度条设置:3.openCV的Mat数据的显示问题 本文主要实现功能为:利用QGraphicsView控件显示分类图,并实现相关的放大.缩小.平移等:对QTableView进行委托显示:利用PS绘制进度条,添加资源文件,作为颜色进度条:QGraphicsView显示openCV的Mat数据:双击QtableView设置自定义颜色. 二.QTableView控件委托 运用的是QItemDelegate类,实现功能如下,对

通过JFreeChart的饼状图显示XML

<chart> <set label="Paper Cost" value="25" /> <set label="Binding" value="20" /> <set label="Printing Cost" value="20" /> <set label="Royality" value="15