SDK设计:
数据IO层:负责资源数据的加载、解析、数据缓存等,包括缓存数据和网络数据等;
资源管理层:负责地图资源的管理调度,资源包括地图样式、图片、文字、地图数据等;
渲染组织层:负责将地图数据和样式,生成渲染所需数据,渲染状态控制、渲染排序等;
渲染接口层:负责对渲染API(OpenGL、gles)的封装,实现渲染的跨平台性;
地图控制层:负责对地图的控制,包括位置、层级、风格等,负责事件的分发处理,负责对外(sdk层)接口的封装;
SDK封装层:负责地图引擎空间部分的实现,负责根据不同平台实现不同的语言的封装,如iOS的OC封装、Android的JNI封装等。
技术点:
earcut - 三角剖分
csscolorparser - css解析
面数据中心点计算- 面数据标签
geojson 解析
地图几何对象构建
碰撞检测 -
pbf解析
Mvt数据解析
sql存储
zip压缩
坐标转换
鸿蒙实现方式:
1.采用引入android包的方式
2.在鸿蒙中获取activity
harmony方案
采用安卓原生代码:
map.jar + android.jar + 安卓部分依赖库
android api说明:
LibraryLoader.java:加载so文件在这个类里面;
Annotations:覆盖物代码,基本都是获取参数,具体实现都在渲染库代码里;
Camera:视野相关代码;
Constants:定义常量;
Exceptions:自定义异常;
http:网络请求,
Offline:离线地图、缓存相关,大部分代码我都删了,只保留了清除缓存的逻辑;
Snapshotter:截屏相关;
MapsInitializer.java:初始化类
Model:bitmap操作相关代码;
Renderer:android渲染类相关,配置opengl相关参数;
Widgets:地图控件view,放大缩小按钮、比例尺、罗盘都在这里面;
Map:地图操作类,设置样式、各种手势回调;
ios api
#import “MAAccountManager.h” // token
#import “MAAnnotation.h” // 覆盖物
#import “MAAnnotationImage.h” // 图片
#import “MABackgroundStyleLayer.h” // 背景图层
#import “MACircleStyleLayer.h”
#import “MACluster.h”
#import “MACompassButton.h” // 组件
#import “MAIndoorFloorsView.h”
#import “MAComputedShapeSource.h”
#import “MAFeature.h” // 图层
#import “MAFillExtrusionStyleLayer.h”
#import “MAFillStyleLayer.h”
#import “MAForegroundStyleLayer.h”
#import “MAGeometry.h” // 坐标计算
#import “MAGeometryEngine.h” //
#import “MAHeatmapStyleLayer.h”
#import “MAHillshadeStyleLayer.h”
#import “MAImageSource.h”
#import “MALight.h” // 三维
#import “MALineStyleLayer.h”
#import “MALoggingConfiguration.h”
#import “MAMapCamera.h” // 视野
#import “MAMapSnapshotter.h”
#import “MAMapView.h” // 地图对象
#import “MAMapViewDelegate.h” // 协议
#import “MAMapView+IBAdditions.h”
#import “MAMultiPoint.h”
#import “MAOfflinePack.h” // 离线地图
#import “MAOfflineRegion.h”
#import “MAOfflineStorage.h”
#import “MAOpenGLStyleLayer.h”
#import “MAOverlay.h” // 图层
#import “MAPointAnnotation.h”
#import “MAPointCollection.h”
#import “MAPolygon.h”
#import “MAPolyline.h”
#import “MACircle.h”
#import “MAArc.h”
#import “MARasterDEMSource.h”
#import “MARasterStyleLayer.h”
#import “MARasterTileSource.h”
#import “MAShape.h”
#import “MAShapeCollection.h”
#import “MAShapeOfflineRegion.h”
#import “MAShapeSource.h”
#import “MASource.h”
#import “MAStyle.h”
#import “MAStyleLayer.h”
#import “MAStyleValue.h”
#import “MASymbolStyleLayer.h”
#import “MATilePyramidOfflineRegion.h”
#import “MATileSource.h”
#import “MATypes.h”
#import “MAVectorStyleLayer.h”
#import “MAVectorTileSource.h”
#import “NSExpression+MAAdditions.h”
#import “NSPredicate+MAAdditions.h”
#import “NSValue+MAAdditions.h”