博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
openlayers加载百度地图
阅读量:5010 次
发布时间:2019-06-12

本文共 1114 字,大约阅读时间需要 3 分钟。

最近在做openlayers添加百度地图的扩展类,经过轮番的尝试,终于将其接入了,但是发现偏差比较大,有根据百度的坐标进行了比对,将切片原点进行了调整,发现OK了。打开百度地图,可以看出切片的路径如:http://online1.map.bdimg.com/tile/?qt=tile&x=742&y=248&z=12&styles=pl&udt=20141113,在发现百度地图的切片规则也是和google一样,采用TMS进行切片的,因此剩下的工作就是去查找切片和行列层级号的命名规则。代码如下:

getURL: function (bounds) {      var tilez=this.map.zoom-1;      var res = this.map.getResolution();      var bbox = this.map.getMaxExtent();      var size = this.tileSize;      var bx = Math.round((bounds.left - this.tileOrigin.lon) / (res * size.w));      var by = Math.round((bounds.bottom - this.tileOrigin.lat) / (res * size.h));      tilez = tilez + 1;       var x = bx.toString().replace("-","M");        var y = by.toString().replace("-","M");       var urlsNum = parseInt((bx + by) % this.url.length);       var strURL = "";       strURL = this.url[urlsNum] + '?qt=tile&x='+x+'&y='+y+'&z='+tilez+'&styles=pl&udt=20140807';      return strURL;    }

在代码中:主要是this.tileOrigin这个参数影响切片的位置,这个就是切片原点,若将其设置为[0,0],发现和百度坐标偏差较远,经过查看,得知将其设置为:[43.88955327932,12.590178885765]这样就可以和百度地图完全对应上了。对接百度地图就OK了。

转载于:https://www.cnblogs.com/songjiang6940/p/openlayers_baidu.html

你可能感兴趣的文章
java性能调优工具
查看>>
C# 其他的Url 文件的路径转化为二进制流
查看>>
cmake使用
查看>>
ios7上隐藏status bar
查看>>
构造方法和全局变量的关系
查看>>
python3基础05(有关日期的使用1)
查看>>
ArrayList的使用方法
查看>>
面向对象高级
查看>>
Bitwise And Queries
查看>>
打印Ibatis最终的SQL语句
查看>>
HBase之八--(3):Hbase 布隆过滤器BloomFilter介绍
查看>>
oracle连接问题ORA-00604,ORA-12705
查看>>
NOI 2019 退役记
查看>>
java的几个日志框架log4j、logback、common-logging
查看>>
Java从零开始学十三(封装)
查看>>
Python2和Python3中的rang()不同之点
查看>>
MySQL的外键,修改表,基本数据类型,表级别操作,其他(条件,通配符,分页,排序,分组,联合,连表操作)...
查看>>
UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
查看>>
记忆--1.致我们不可缺少的记忆
查看>>
lintcode28- Search a 2D Matrix- easy
查看>>