1. Creating primary keyvar LLBAND2 = [75, 60, 45, 30, 15, 0];
  2.  
  3. var LL2MC2 = [[-.0015702102444, 111320.7020616939, 0x60e374c3105a3, -0x24bb4115e2e164, 0x5cc55543bb0ae8, -0x7ce070193f3784, 0x5e7ca61ddf8150, -0x261a578d8b24d0, 0x665d60f3742ca, 82.5], [.0008277824516172526, 111320.7020463578, 647795574.6671607, -4082003173.641316, 10774905663.51142, -15171875531.51559, 12053065338.62167, -5124939663.577472, 913311935.9512032, 67.5], [.00337398766765, 111320.7020202162, 4481351.045890365, -23393751.19931662, 79682215.47186455, -115964993.2797253, 97236711.15602145, -43661946.33752821, 8477230.501135234, 52.5], [.00220636496208, 111320.7020209128, 51751.86112841131, 3796837.749470245, 992013.7397791013, -1221952.21711287, 1340652.697009075, -620943.6990984312, 144416.9293806241, 37.5], [-.0003441963504368392, 111320.7020576856, 278.2353980772752, 2485758.690035394, 6070.750963243378, 54821.18345352118, 9540.606633304236, -2710.55326746645, 1405.483844121726, 22.5], [-.0003218135878613132, 111320.7020701615, .00369383431289, 823725.6402795718, .46104986909093, 2351.343141331292, 1.58060784298199, 8.77738589078284, .37238884252424, 7.45]];
  4. function convertorLng(lng, cN) {
  5. var T = cN[0] + cN[1] * Math.abs(lng);
  6. T *= (lng < 0 ? -1 : 1);
  7. return T;
  8. };
  9. function convertorLat(lat, cN) {
  10.  
  11. var cL = Math.abs(lat) / cN[9];
  12. var cO = cN[2] + cN[3] * cL + cN[4] * cL * cL + cN[5] * cL
  13. * cL * cL + cN[6] * cL * cL * cL * cL + cN[7] * cL
  14. * cL * cL * cL * cL + cN[8] * cL * cL * cL * cL
  15. * cL * cL;
  16. cO *= (lat < 0 ? -1 : 1);
  17. return cO;
  18. };
  19. function convertorLat2(lat, b) {
  20.  
  21. d = Math.abs(lat) / b[9];
  22. d = b[2] + b[3] * d + b[4] * d * d + b[5] * d * d * d + b[6] * d * d * d * d + b[7] * d * d * d * d * d + b[8] * d * d * d * d * d * d;
  23. d = d * (0 > lat ? -1 :1);
  24. return d;
  25. };
  26. function aa(lng2, lat2, c3) {
  27. //debugger;
  28. //var c3 = 18;
  29. var c1 = 256;
  30. //var lng = 12684092.41;
  31. //var lat = 2559234.49;
  32.  
  33. var cL = -180;
  34. var T = 180;
  35.  
  36. while (lng2 > T) {
  37. lng2 -= T - cL
  38. }
  39. while (cM < cL) {
  40. lng2 += T - cL
  41. }
  42.  
  43. lat2 = Math.max(lat2, -74)
  44. lat2 = Math.min(lat2, 74)
  45. var cN;
  46. for (var cM = 0; cM < LLBAND2.length; cM++) {
  47. if (lat2 >= this.LLBAND2[cM]) {
  48. cN = this.LL2MC2[cM];
  49. break;
  50. }
  51. }
  52. if (!cN) {
  53. for (var cM = LLBAND2.length - 1; cM >= 0; cM--) {
  54. if (lat2 <= -LLBAND2[cM]) {
  55. cN = LL2MC2[cM];
  56. break
  57. }
  58. }
  59. }
  60.  
  61. var lng = convertorLng(lng2, cN);
  62. var lat = convertorLat(lat2, cN);
  63.  
  64. var cU = Math.pow(2, (18 - c3));
  65. var cX = Math.pow(2, (18 - c3)) * c1;
  66. var cV = Math.ceil(lng / cX);
  67. var cQ = Math.ceil(lat / cX);
  68. var cO = [cV, cQ, (lng - cV * cX) / cX * c1,
  69. (lat - cQ * cX) / cX * c1];
  70. var width = 0;
  71. var height = 0;
  72. var db = cO[0] - Math.ceil((width / 2 - cO[2]) / c1);
  73. var cN2 = cO[1] - Math.ceil((height / 2 - cO[3]) / c1);
  74. alert('http://online2.map.bdimg.com/tile/?qt=tile&x=' + db + '&y=' + cN2 + '&z=' + c3 + '&styles=pl&udt=20140314');
  75.  
  76. return
  77. }

百度地图TILE算法的更多相关文章

  1. 利用百度地图API和群蚁算法,对TSP问题进行模拟与求解

    前言 最近由于换了工作,期间也有反思和总结上家公司的得失,总觉得有什么事情当初可以完成或者完成得更好,其中TSP问题就是其中之一.当初在开发一个仓配系统的时候,有一个线路排程的需求,当时自己简单在纸上 ...

  2. 百度地图API位置偏移的校准算法

    转自极客人原文 百度地图API位置偏移的校准算法 在开始使用百度地图API进行开发时可能会遇到一件相当奇怪的事情,使用百度定位的经纬度在地图上显示相当不准确,这一问题我在微信开发和安卓开始时都遇到过. ...

  3. (转)深入理解最强桌面地图控件GMAP.NET --- 百度地图

    原文地址:http://www.cnblogs.com/enjoyeclipse/archive/2013/01/14/2859026.html 前两篇介绍了GMAP.NET的一些基本功能和如何在自己 ...

  4. 深入理解最强桌面地图控件GMAP.NET ---[更新]百度地图

    之前写了篇博文,深入理解最强桌面地图控件GMAP.NET --- 百度地图 但是很多回复说百度地图更新了,不能显示百度的离线地图.之前承诺说是国庆节更新,最近才更新.代码已经提交到: https:// ...

  5. 微信JS-SDK坐标位置转换为百度地图坐标

    微信JS-SDK开发过程中,使用getLocation获取坐标位置,如何将微信获取的坐标直接应用到百度地图中,显示以下效果: 说明:红色图标是从微信转换过来的位置,蓝色图标是周边位置.首先从微信开发流 ...

  6. C#调用百度地图 api

    转  http://blog.csdn.net/kkkkkxiaofei/article/details/8663377 这一篇,记录一下我调用的地图API实现的功能.下面介绍的都是一些片段的节选,不 ...

  7. 去百度API的百度地图准确叠加和坐标转换的解决方案研究

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 目前项目上如果要使用百度地图,得加载百度的开发包,然后通过百 ...

  8. 首师大附中互测题:50136142WXY的坑爹百度地图【B006】(可以喝的超大桶水)

    [B006]50136142WXY的坑爹百度地图[难度B]——————————————————————————————————————————————————————————————————————— ...

  9. GPS部标平台的架构设计(五)-地图服务算法库

    GPS平台,需要和各种地图打交道,需要解决以下的问题: 1.坐标偏移,这个不用多说,需要将原始坐标加偏,然后在百度地图或谷歌上显示出来,需要注意的是百度地图的加偏是偏上再偏,谷歌.高德地图等是火星坐标 ...

随机推荐

  1. mvc 对一个或者多个实体验证失败

    为了解决“对一个或者多个实体验证失败”,关闭调用SaveChanges() 的实体属性合法性验证(谨慎使用) db.Configuration.ValidateOnSaveEnabled = fals ...

  2. 奔跑的歌颂 diskgenius 找回了20G数据

    2.0同学家的电脑不慎重装系统,结果默认重新分区.其他倒没什么数据,就是几千张记录孩子成长的照片最为珍贵.为了找回数据,用U盘启动,使用Diskgenius全部找回,在此奔歌一下.

  3. Swift 自定义Subscript

    Swift可以方便给自定义类加下标,其中参数和返回值可以在类里定义为任意类型: subscript(parameters) -> ReturnType { get { //return some ...

  4. C#的变迁史 - C# 4.0篇

    C# 4.0 (.NET 4.0, VS2010) 第四代C#借鉴了动态语言的特性,搞出了动态语言运行时,真的是全面向“高大上”靠齐啊. 1. DLR动态语言运行时 C#作为静态语言,它需要编译以后运 ...

  5. iOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)

    iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的,      可以存放重复的元 ...

  6. node.js图片上传

    1.node-formidable 对文件上传提供帮助的组件 2.app.js var formidable = require('formidable'); var http = require( ...

  7. java 多态奇怪现象,子类还没有构造完成就开始干活了,谁来帮我解释?

    java代码: package test.extend; public class Base { public Base(){ System.out.println("基类构造") ...

  8. [Cordova] 无法显示Alert视窗

    [Cordova] 无法显示Alert视窗 问题情景 今天开了一个Cordova专案做范例,将预设的index.html页面修改为下列内容.按下执行却发现,这样一个简单的范例无法正常执行.点击页面上的 ...

  9. 25款专业的 WordPress 电子商务网站主题

    WordPress 作为最流行的博客系统,插件众多,易于扩充功能.安装和使用都非常方便,而且有许多第三方开发的免费模板,安装方式简单易用.这篇文章和大家分享35款专业的 WordPress 电子商务网 ...

  10. Captain Icon – 350+ 有趣的矢量图标免费下载

    Captain Icon 是一套一个惊人的免费图标集,包含350+有趣的矢量图标,可以缩放到任意大小而不会降低质量.图标的类别很丰富,有设计,体育,社会,天气等很多类别.提供 EPS.PSD.PNG. ...