zoukankan      html  css  js  c++  java
  • 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%;
                100%;
                overflow: hidden;
            }
            #map1,#map2{
                 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=" 50%; height: 100%; border-right: 1px solid #000;">
                <div id="map1"></div>
            </td>
            <td style=" 50%; height: 100%; border-right: 1px solid #000;">
                <div id="map2"></div>
            </td>
        </tr>
    </table>
    </body>
    </html>




  • 相关阅读:
    京东分页
    相册分类列表页
    在线运行Javascript,Jquery,HTML,CSS代码
    点击事件后动画提示
    一些广告代码
    爱可有—之最经典
    爱可有网络社区需要定义
    鼠标移动时缩小图片显示说明
    Flask-RESTful 快速入门
    Sequelize 关系模型简介
  • 原文地址:https://www.cnblogs.com/lzugis/p/6539829.html
Copyright © 2011-2022 走看看