openlayer 引入百度地图

转换百度地图坐标核心代码

import TileGrid from "ol/tilegrid/TileGrid";
import {transformExtent} from 'ol/proj.js';

export const baiduLayer = () => {
  /*定义百度地图分辨率与瓦片网格*/
  var resolutions = [];
  for (var i = 0; i <= 18; i++) {
    resolutions[i] = Math.pow(2, 18 - i);
  }

  var tilegrid = new TileGrid({
    minZoom:3,
    extent: transformExtent([-180, -74, 180, 74], 'EPSG:4326', 'BD-09'),
    origin: [0, 0],
    resolutions: resolutions,
  });
 
  var source = new XYZ({
    projection: "BD-09",
    tileGrid: tilegrid,
    tileUrlFunction: function(tileCoord) {
      var URLS_LENGTH = 5
      var z = tileCoord[0]
      var x = tileCoord[1]
      var y = -tileCoord[2]-1
      var hash = (x << z) + y
      var index = hash % URLS_LENGTH
      index = index < 0 ? index + URLS_LENGTH : index
      if (x < 0) {
        x = 'M' + (-x)
      }
      if (y < 0) {
        y = 'M' + (-y)
      }
      return (
          "http://online" +
          index +
          ".map.bdimg.com//onlinelabel/?qt=vtile&x=" +
          x +
          "&y=" +
          y +
          "&z=" +
          z +
          "&styles=pl&udt=20200211&scaler=1&p=0"
        );
      // return 'http://online{}.map.bdimg.com/onlinelabel/?qt=tile&x={x}&y={y}&z={z}&styles=pl'
      //   .replace('{}', index).replace('{x}', x).replace('{y}', y).replace('{z}', z)
    }
    
  });
  return source;
}

引入百度地图

最重要的坐标转换

proj4.defs('BD-09','+proj=merc +lon_0=0 +units=m +ellps=clrk66 +no_defs')
register(proj4);

import proj4 from 'proj4';
import {transform} from 'ol/proj.js';
import {register} from 'ol/proj/proj4.js';
import TileLayer from 'ol/layer/Tile.js';

 proj4.defs('BD-09','+proj=merc +lon_0=0 +units=m +ellps=clrk66 +no_defs')
  register(proj4);
const view = new View({
    projection: 'BD-09',
    center: transform(options.center,'EPSG:4326','BD-09'),
    zoom: 8,
    maxZoom: 20,
    minZoom: 3
  })
  const map = new Map({
    target: id,
    // layers: options.mapLayers,
    view: view,
    controls: defaultControls({
      zoom: false,
      rotate: false,
      attribution: false
    })
    // interactions: defaultInteractions({ doubleClickZoom: !options.toolbarConfig.show })
  })
let source =  baiduLayer()
  let BaseTileLayer = new TileLayer({
      title: '百度地图',
      properties:‘属性’,
      source: source
    })
    map.addLayer(BaseTileLayer)

创建点位

 addPickerMark(point){
 
    this.coordinatePointFeature = new ol.Feature({
      geometry:new Point(transform(point, 'EPSG:4326', "BD-09"))
    })
    this.coordinatePointFeature.setStyle(
      this.setSelectStyle()
    )
    const vectorSource = new ol.VectorSource({
      features: [this.coordinatePointFeature]
    })

    this.pickerPointMark = new ol.VectorLayer({
      source: vectorSource,
      properties: this.options.layerProperties
    })
    this.map.addLayer(this.pickerPointMark)
  }

加载效果

百度地图经纬度113.542335,34.823305


1724315277535.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容