zoukankan      html  css  js  c++  java
  • openlayers3应用一:显示百度地图

        在项目中使用百度地图,最直接的方式是使用百度api,但是使用百度api需要申请key,并且某些功能调用有次数限制。

    本文讲述在openlayers3中使用百度地图的方法。调用百度地图,也是经过了几番周折

    贴上显示代码,以免其他人调用百度地图走弯路。效果如下:

     

    代码如下:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <link rel="stylesheet" type="text/css" href="ol/ol3/css/ol.css" />
        <style type="text/css">
            body, #mainMap {
                border: 0px;
                margin: 0px;
                padding: 0px;
                 100%;
                height: 100%;
                font-size: 13px;
            }
        </style>
        <script type="text/javascript" src="ol/ol3/build/ol-debug.js"></script>
    
    </head>
    <body>
    
        <div id="mainMap">
    
        </div>
    
    </body>
    </html>
    <script type="text/javascript">
    
        var projection = ol.proj.get("EPSG:3857");
        var resolutions = [];
        for (var i = 0; i < 19; i++) {
            resolutions[i] = Math.pow(2, 18 - i);
        }
        var tilegrid = new ol.tilegrid.TileGrid({
            origin: [0, 0],
            resolutions: resolutions
        });
    
        var baidu_source = new ol.source.TileImage({
            projection: projection,
            tileGrid: tilegrid,
            tileUrlFunction: function (tileCoord, pixelRatio, proj) {
                if (!tileCoord) {
                    return "";
                }
                var z = tileCoord[0];
                var x = tileCoord[1];
                var y = tileCoord[2];
    
                if (x < 0) {
                    x = "M" + (-x);
                }
                if (y < 0) {
                    y = "M" + (-y);
                }
    
                return "http://online3.map.bdimg.com/onlinelabel/?qt=tile&x=" + x + "&y=" + y + "&z=" + z + "&styles=pl&udt=20151021&scaler=1&p=1";
            }
        });
    
        var baidu_layer = new ol.layer.Tile({
            source: baidu_source
        });
    
        var map = new ol.Map({
            target: 'mainMap',
            controls: ol.control.defaults().extend([
                   new ol.control.MousePosition({ projection: 'EPSG:4326' })
            ]),
            layers: [baidu_layer],
            view: new ol.View({
                center: ol.proj.transform([104.06, 30.67], 'EPSG:4326', 'EPSG:3857'),
                zoom: 4
            })
        });
    </script>
    

      

  • 相关阅读:
    UE4.7的IOS发布和调试的相关问题
    【翻译】CEDEC2015 速成Albedo Chart 制作
    【翻译】KNACK制作介绍
    【翻译】口袋妖怪X/Y 制作技法
    【翻译】圣斗士星矢:圣域传说 制作介绍 特效合成等
    【翻译】圣斗士星矢:圣域传说 制作介绍 场景篇
    Linux 磁盘管理
    linux 文件系统
    Ubuntu18.04系统安装与设置
    C#(99):lazy延迟加载
  • 原文地址:https://www.cnblogs.com/cdguiyiGIS/p/6608008.html
Copyright © 2011-2022 走看看