import \ export
编译
chunk.webpack.config.js
control.chunk.webpack.config.js
地图init方法,创建地图initialize: function (container, options)
Conf.init();初始化
初始化openGl一些参数
创建不同的图层,地图、瓦片图层、label图层、layer图层、热力图层
地图初始化加载MMMgr.getInstance().init();
icon图片。
样式(配置)
data
地图事件管理
var manager = new Hammer.Manager(this.layerDiv);
拖拽、点击、双击、缩放、旋转
定义layer,存储用户添加的图层
this.layers = [];
地图图层
SkInterLayer
initialize函数
init
创建缓存,存在自动删除逻辑,存储满了按照相应逻辑删除旧的
this.cache = new LRUMap(8192);
当地图发生变化时_viewchange绘制地图(加载地图数据)
postInvalidate
清除数据 每次绘制都清除全部数据 this.Render();
gl.clearDepth(1.0);
地图数据处理绘制
this.BaseData();
准备地图数据
prepareData
获取屏幕所有瓦片-》请求-〉生成一个个的SKTitle对象。
获取瓦片范围
checkTileKey
获取当前图层所有切片号。
getTiles
从缓存中加载
var tile = this.cache.get(key);
加载瓦片
GetMapDat
数据解析
parseDat
加载完成,执行绘制,
this.map.postInvalidate();
有一个总的Render,map里面的Render。每一个图层里的Render值负责绘制,map里的Render负责清空。
如何加载的opengl以及一些第三方资源的,有哪些资源文件,是如何工作的
问题
1.开发说明,开发环境,注意事项等。如何加载的opengl,有哪些资源文件,项目是如何工作的,需要注意哪些,
three.js mailbox webjs
2.项目接口文档。
3.项目成功物生成说明及成功物。如何打包的
图片资源在common.less调整
@urls: ‘http://61.189.20.113:8000/images/';
如何绘制地图
加载瓦片-》解析数据-〉创建点线面对象-》用opengl绘制 ,如何绘制的整个页面上所有的瓦片,地图缩放是如何重新绘制的逻辑
MapMM->GetMapDat
MapDataDeCode
SkTile.prototype.Render
项目中类的特别说明
坐标转换、像素、经纬度等如何实现
经纬度坐标、地图平面坐标,像素
矩阵 mat4.js
var proj = map.GetCurProj();
var objProj = mat4.clone(proj);
求外接矩形,图形的坐标集合相对于外接矩形的左上角为0点计算新的坐标。
外接矩形相对于地图中心点的偏移:
var origin = map.axes.toMapAxes(this.env.startLon, this.env.endLat);
mat4.translate(objProj, objProj, [origin.x, origin.y, 0]);
gl.uniformMatrix4fv(bdProg.uniLocation, false, objProj);
事件、动画、扩展功能特别说明
手势L:hammer
demo功能使用介绍
瓦片、墨卡托投影、相机、矩阵算法在工程中如何使用的。
SkLonLat2Mercator