amap_map_sdk 2.1.2
高德地图RTOS地图SDK
载入中...
搜索中...
未找到
awk_map.h
浏览该文件的文档.
1/*
2 * @brief watch地图接口
3 */
4#ifndef _AWK_MAP_H
5#define _AWK_MAP_H
6
7#include <stddef.h>
8#include <stdint.h>
9#include <stdlib.h>
10#include <stdbool.h>
11#include "awk_map_defines.h"
12#include "awk_adapter.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18/*********************
19 * 地图操作
20*********************/
21
25typedef struct _awk_map_render_callback_t awk_map_render_callback_t;
27
34 bool (*on_point_begin_draw)(uint32_t map_id, int32_t guid);
35
43 void (*on_point_end_draw)(uint32_t map_id, int32_t guid, int32_t status);
44
51 bool (*on_line_begin_draw)(uint32_t map_id, int32_t guid);
52
60 void (*on_line_end_draw)(uint32_t map_id, int32_t guid, int32_t status);
61
68 bool (*on_polygon_begin_draw)(uint32_t map_id, int32_t guid);
69
77 void (*on_polygon_end_draw)(uint32_t map_id, int32_t guid, int32_t status);
78
87 bool (*on_tile_begin_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom);
88
98 void (*on_tile_end_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, int32_t status);
99
108 bool (*on_tile_begin_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom);
109
118 bool (*on_poi_begin_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom);
119
128 bool (*on_poi_begin_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom);
129
139 void (*on_poi_end_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, int32_t status);
140
150 void (*on_tile_end_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, awk_map_tile_response_status_t status);
151
161 void (*on_poi_end_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, awk_map_tile_response_status_t status);
162};
163
170
176int32_t awk_map_destroy_view(uint32_t map_id);
177
182int32_t awk_map_do_render(void);
183
189int32_t awk_map_pause_render(uint32_t map_id);
190
196int32_t awk_map_resume_render(uint32_t map_id);
197
203int32_t awk_map_add_texture(const awk_map_texture_data_t *texture_data);
204
211int32_t awk_map_update_texture(uint32_t texture_id, const awk_map_texture_data_t *texture_data);
212
218int32_t awk_map_remove_texture(uint32_t texture_id);
219
226
233
240
248int32_t awk_map_add_overlay(uint32_t map_id, awk_map_base_overlay_t *overlay);
249
257int32_t awk_map_update_overlay(uint32_t map_id, awk_map_base_overlay_t *overlay);
258
265int32_t awk_map_remove_overlay(uint32_t map_id, uint32_t overlay_id);
266
273const awk_map_base_overlay_t *awk_map_find_overlay(uint32_t map_id, uint32_t overlay_id);
274
280uint32_t awk_map_get_overlay_count(uint32_t map_id);
281
282/************** tacker navigation *******************/
287typedef int (*track_parser)(const char *track_data, size_t length, awk_map_track_info_t *result_track);
288
296awk_map_track_info_t* awk_map_track_navi_parse_gpx(const char *gpx_data, size_t length);
297
305
313
323
331int32_t awk_map_track_navi_remove_overlay(uint32_t map_id, uint32_t overlay_id);
341
352
353/************** tacker navigation *******************/
354
355
362const awk_map_base_overlay_t *awk_map_get_overlay(uint32_t map_id, uint32_t index);
363
370int32_t awk_map_set_view_port(uint32_t map_id, awk_map_view_port_t view_port);
371
377int32_t awk_map_set_render_callback(awk_map_render_callback_t callback);
378
385int32_t awk_map_set_center(uint32_t map_id, awk_map_coord2d_t coord2d);
386
393int32_t awk_map_set_level(uint32_t map_id, float level);
394
401int32_t awk_map_set_roll_angle(uint32_t map_id, float roll_angle);
402
409int32_t awk_map_get_posture(uint32_t map_id, awk_map_posture_t *posture);
410
419int32_t awk_map_request_tiles(awk_rect_area_t req_rect, awk_map_coord2d_t map_center, float map_level, int32_t priority);
420
426int32_t awk_map_cancel_request_tiles(int32_t req_id);
427
436int32_t awk_map_lonlat_to_xy(uint32_t map_id, awk_map_coord2d_t lonlat, int32_t *x, int32_t *y);
437
446int32_t awk_map_xy_to_lonlat(uint32_t map_id, int32_t x, int32_t y, awk_map_coord2d_t *lonlat);
447
456double awk_map_calc_points_distance(double lon1, double lat1, double lon2, double lat2);
457
466void awk_map_wgs84_to_mgs(double lng_wgs, double lat_wgs, double *lng_mgs, double *lat_mgs);
467
468/*********************
469 * 地图手势
470*********************/
471
479int32_t awk_map_touch_begin(uint32_t map_id, int32_t x, int32_t y);
480
488int32_t awk_map_touch_update(uint32_t map_id, int32_t x, int32_t y);
489
497int32_t awk_map_touch_end(uint32_t map_id, int32_t x, int32_t y);
498
507awk_map_point_overlay_t **awk_map_click_points(uint32_t map_id, int32_t x, int32_t y, int32_t *overlay_count);
508
515int32_t awk_map_release_overlays(awk_map_base_overlay_t **overlays, int32_t overlay_count);
516
517/*********************
518 * 离线地图下载
519*********************/
520
524typedef struct _awk_map_download_callback_t awk_map_download_callback_t;
531 void (*on_started)(awk_map_download_callback_t *callback);
538 void (*on_progress)(awk_map_download_callback_t *callback, float progress);
544 void (*on_finish) (awk_map_download_callback_t *callback);
550 void (*on_stop) (awk_map_download_callback_t *callback);
558 void (*on_error) (awk_map_download_callback_t *callback, int32_t error_code, const char* msg);
559};
560
568int32_t awk_map_start_download_offline_data(const char *adcode, uint32_t level, awk_map_download_callback_t *download_callback);
569
575
584int32_t awk_map_start_download_region_range(awk_map_coord2d_t center, awk_map_range_t range, uint8_t expect_level, awk_map_download_callback_t *download_callback);
585
591
592typedef enum {
593 AWK_MAP_TILE_TYPE_TILE = 0, // 瓦片数据
594 AWK_MAP_TILE_TYPE_POI = 1, // POI数据
600typedef struct _awk_map_tile_download_info_t {
602 char tile_file_key[64];
604
609typedef struct _awk_map_tile_download_callback_t {
614 void (*on_success) (const char *key, awk_map_tile_download_info_t *tile_download_infos, uint32_t tile_download_size);
615
620 void (*on_fail) (const char *key, int32_t error_code, const char* msg);
633int32_t awk_map_download_polyline_region(const char *key, awk_map_coord2d_t *points,uint32_t point_size, uint8_t *expand_levels, uint8_t expand_levels_size, awk_map_tile_download_callback_t *download_callback);
634
649int32_t awk_map_sync_tile_file(char **tile_file_keys, uint32_t tile_file_size);
650
661
666typedef struct _awk_map_offline_gdb_adcode_t {
667 char adcode[8];
669
674typedef struct _awk_map_offline_gdb_location_t {
677 uint8_t expect_level;
679
691
696typedef struct _awk_map_offline_gdb_query_result_t {
697 size_t size;
700
711
720int32_t awk_map_delete_download_region_range(awk_map_coord2d_t location, awk_map_range_t range, uint8_t expect_level);
721
731int32_t awk_map_list_download_offline_regions(const char *adcode, uint32_t level, awk_map_offline_gdb_query_result_t *result);
732
740int32_t awk_map_delete_download_offline_region(const char *adcode, uint32_t level);
741
748
749#ifdef __cplusplus
750}
751#endif
752
753#endif
int32_t awk_map_init_point_overlay(awk_map_point_overlay_t *point_overlay)
初始化点覆盖物的结构体,方法的调用需要在主流程线程中
int32_t awk_map_track_navi_add_overlay(uint32_t map_id, awk_map_track_navi_overlay_t *overlay)
添加轨迹导航覆盖物
int32_t awk_map_cancel_request_tiles(int32_t req_id)
取消在线请求缓存瓦片
int32_t awk_map_list_download_region_range(awk_map_coord2d_t location, awk_map_range_t range, uint8_t expect_level, awk_map_offline_gdb_query_result_t *result)
查询已下载的区域信息
awk_map_tile_type_t
Definition awk_map.h:592
@ AWK_MAP_TILE_TYPE_POI
Definition awk_map.h:594
@ AWK_MAP_TILE_TYPE_TILE
Definition awk_map.h:593
int32_t awk_map_track_navi_remove_overlay(uint32_t map_id, uint32_t overlay_id)
移除轨迹导航覆盖物
int32_t awk_map_remove_texture(uint32_t texture_id)
移除纹理数据,方法的调用需要在主流程线程中
void awk_map_track_navi_update_real_point(uint32_t map_id, awk_map_coord2d_t point, float bear, awk_map_track_navi_overlay_t *overlay)
更新真实点
int32_t awk_map_sync_download_offline_region(void)
同步下载区域信息,只在外部指定离线数据时使用, 方法的调用需要在主流程线程中
int32_t awk_map_lonlat_to_xy(uint32_t map_id, awk_map_coord2d_t lonlat, int32_t *x, int32_t *y)
经纬度坐标转屏幕坐标,方法的调用需要在主流程线程中
const awk_map_base_overlay_t * awk_map_get_overlay(uint32_t map_id, uint32_t index)
根据索引获取map_id对应地图的覆盖物,方法的调用需要在主流程线程中
int32_t awk_map_sync_tile_file(char **tile_file_keys, uint32_t tile_file_size)
程序异常退出时,或差异时的同步
int32_t awk_map_set_render_callback(awk_map_render_callback_t callback)
设置地图渲染回调接口实例
void awk_map_track_navi_parse_track_info_free(awk_map_track_info_t *track_info)
析构track info
int32_t awk_map_touch_update(uint32_t map_id, int32_t x, int32_t y)
持续挪图过程,方法的调用需要在主流程线程中
int32_t awk_map_add_overlay(uint32_t map_id, awk_map_base_overlay_t *overlay)
添加覆盖物,方法的调用需要在主流程线程中
int32_t awk_map_set_level(uint32_t map_id, float level)
设置地图级别,方法的调用需要在主流程线程中
uint32_t awk_map_get_overlay_count(uint32_t map_id)
获取map_id对应的地图所有覆盖物的数量,方法的调用需要在主流程线程中
int32_t awk_map_release_overlays(awk_map_base_overlay_t **overlays, int32_t overlay_count)
释放覆盖物数组指针
const awk_map_base_overlay_t * awk_map_find_overlay(uint32_t map_id, uint32_t overlay_id)
根据overlay_id查找覆盖物信息,方法的调用需要在主流程线程中
int32_t awk_map_resume_render(uint32_t map_id)
将map_id对应的地图恢复绘制,方法的调用需要在主流程线程中
int32_t awk_map_pause_render(uint32_t map_id)
将map_id对应的地图暂停绘制,方法的调用需要在主流程线程中
int32_t awk_map_get_posture(uint32_t map_id, awk_map_posture_t *posture)
获取地图的状态,方法的调用需要在主流程线程中
int32_t awk_map_list_download_offline_regions(const char *adcode, uint32_t level, awk_map_offline_gdb_query_result_t *result)
列出已下载的离线地图信息,方法的调用需要在主流程线程中 读取结果中的regions在不需要时需要手动释放,否则会有内存泄露
int(* track_parser)(const char *track_data, size_t length, awk_map_track_info_t *result_track)
自定义轨迹解析器
Definition awk_map.h:287
int32_t awk_map_init_line_overlay(awk_map_polyline_overlay_t *line_overlay)
初始化线覆盖物的结构体,方法的调用需要在主流程线程中
awk_http_request_t * awk_map_download_get_request(const char *tile_file_key)
根据瓦片文件key获取请求
void awk_map_wgs84_to_mgs(double lng_wgs, double lat_wgs, double *lng_mgs, double *lat_mgs)
WGS84坐标转AMap坐标
int32_t awk_map_stop_download_offline_data()
停止离线地图下载,方法的调用需要在主流程线程中
int32_t awk_map_touch_begin(uint32_t map_id, int32_t x, int32_t y)
开始挪图手势,方法的调用需要在主流程线程中
int32_t awk_map_download_polyline_region(const char *key, awk_map_coord2d_t *points, uint32_t point_size, uint8_t *expand_levels, uint8_t expand_levels_size, awk_map_tile_download_callback_t *download_callback)
按照传入的经纬度点下载地图数据
double awk_map_calc_points_distance(double lon1, double lat1, double lon2, double lat2)
计算两点之间距离
int32_t awk_map_add_texture(const awk_map_texture_data_t *texture_data)
添加纹理数据,方法的调用需要在主流程线程中
int32_t awk_map_delete_download_region_range(awk_map_coord2d_t location, awk_map_range_t range, uint8_t expect_level)
删除下载的区域信息
double awk_map_track_navi_get_distance(uint32_t map_id, awk_map_coord2d_t point, awk_map_track_point_type point_type, awk_map_track_navi_overlay_t *overlay)
获取距离,获取最近的一个类型点距离
int32_t awk_map_create_view(awk_map_view_param_t param)
创建地图mapview,方法的调用需要在主流程线程中
int32_t awk_map_start_download_offline_data(const char *adcode, uint32_t level, awk_map_download_callback_t *download_callback)
下载离线地图,方法的调用需要在主流程线程中, 目前下载不支持并发任务,多个下载需顺序执行
int32_t awk_map_remove_overlay(uint32_t map_id, uint32_t overlay_id)
移除覆盖物,方法的调用需要在主流程线程中
int32_t awk_map_delete_download_offline_region(const char *adcode, uint32_t level)
删除下载的离线地图数据,方法的调用需要在主流程线程中
int32_t awk_map_set_roll_angle(uint32_t map_id, float roll_angle)
设置地图的旋转角度,方法的调用需要在主流程线程中
int32_t awk_map_update_overlay(uint32_t map_id, awk_map_base_overlay_t *overlay)
更新覆盖物,方法的调用需要在主流程线程中
int32_t awk_map_request_tiles(awk_rect_area_t req_rect, awk_map_coord2d_t map_center, float map_level, int32_t priority)
在线请求并进行缓存瓦片,SDK内部会判断是否已经存在磁盘缓存和离线数据,如果存在缓存则不会走在线请求
awk_map_offline_type
离线数据下载类型
Definition awk_map.h:655
@ OFFLINE_GDB_TILE_DONWLOAD
Definition awk_map.h:659
@ OFFLINE_GDB_UNKNOWN
Definition awk_map.h:656
@ OFFLINE_GDB_LOCATION_RANGE
Definition awk_map.h:658
@ OFFLINE_GDB_ADCODE
Definition awk_map.h:657
int32_t awk_map_update_texture(uint32_t texture_id, const awk_map_texture_data_t *texture_data)
更新纹理数据,方法的调用需要在主流程线程中
int32_t awk_map_start_download_region_range(awk_map_coord2d_t center, awk_map_range_t range, uint8_t expect_level, awk_map_download_callback_t *download_callback)
通过经纬度和范围下载地图数据
awk_map_point_overlay_t ** awk_map_click_points(uint32_t map_id, int32_t x, int32_t y, int32_t *overlay_count)
获取单击屏幕时命中的点覆盖物,如果命中多个点覆盖物,返回的结果中会按照priority从大到小进行排序
int32_t awk_map_do_render(void)
地图绘制,方法的调用需要在主流程线程中
awk_map_track_info_t * awk_map_track_navi_parse_gpx(const char *gpx_data, size_t length)
解析gpx
int32_t awk_map_touch_end(uint32_t map_id, int32_t x, int32_t y)
停止挪图手势,方法的调用需要在主流程线程中
int32_t awk_map_init_polygon_overlay(awk_map_polygon_overlay_t *polygon_overlay)
初始化面覆盖物的结构体,方法的调用需要在主流程线程中
int32_t awk_map_xy_to_lonlat(uint32_t map_id, int32_t x, int32_t y, awk_map_coord2d_t *lonlat)
屏幕坐标转经纬度坐标,方法的调用需要在主流程线程中
int32_t awk_map_set_center(uint32_t map_id, awk_map_coord2d_t coord2d)
设置地图中心,方法的调用需要在主流程线程中
int32_t awk_map_init_track_navi_overlay(awk_map_track_navi_overlay_t *overlay)
初始化轨迹导航覆盖物
int32_t awk_map_destroy_view(uint32_t map_id)
销毁地图mapview,方法的调用需要在主流程线程中
int32_t awk_map_stop_download_region_range(void)
停止经纬度范围下载
int32_t awk_map_set_view_port(uint32_t map_id, awk_map_view_port_t view_port)
设置地图视口,方法的调用需要在主流程线程中
awk_map_tile_response_status_t
在线瓦片请求状态
awk_map_range_t
地图范围
awk_map_track_point_type
导航点类型
struct _awk_bitmap_t awk_map_texture_data_t
纹理数据结构
地图下载回调
Definition awk_map.h:525
void(* on_stop)(awk_map_download_callback_t *callback)
下载停止
Definition awk_map.h:550
void(* on_finish)(awk_map_download_callback_t *callback)
下载完成
Definition awk_map.h:544
void(* on_started)(awk_map_download_callback_t *callback)
开始下载
Definition awk_map.h:531
void(* on_progress)(awk_map_download_callback_t *callback, float progress)
下载的进度回调
Definition awk_map.h:538
void(* on_error)(awk_map_download_callback_t *callback, int32_t error_code, const char *msg)
下载错误
Definition awk_map.h:558
地图渲染回调
Definition awk_map.h:26
bool(* on_tile_begin_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom)
tile开始下载回调(仅在线模式)
Definition awk_map.h:108
bool(* on_poi_begin_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom)
tile开始绘制回调
Definition awk_map.h:128
void(* on_polygon_end_draw)(uint32_t map_id, int32_t guid, int32_t status)
面覆盖物结束绘制回调
Definition awk_map.h:77
void(* on_poi_end_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, awk_map_tile_response_status_t status)
poi结束下载回调(仅在线模式)
Definition awk_map.h:161
void(* on_line_end_draw)(uint32_t map_id, int32_t guid, int32_t status)
线覆盖物结束绘制回调
Definition awk_map.h:60
bool(* on_poi_begin_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom)
poi开始下载回调(仅在线模式)
Definition awk_map.h:118
void(* on_point_end_draw)(uint32_t map_id, int32_t guid, int32_t status)
点覆盖物结束绘制回调
Definition awk_map.h:43
bool(* on_point_begin_draw)(uint32_t map_id, int32_t guid)
点覆盖物开始绘制回调
Definition awk_map.h:34
void(* on_tile_end_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, int32_t status)
tile结束绘制回调
Definition awk_map.h:98
void(* on_tile_end_download)(int32_t type, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, awk_map_tile_response_status_t status)
tile结束下载回调(仅在线模式)
Definition awk_map.h:150
bool(* on_line_begin_draw)(uint32_t map_id, int32_t guid)
线覆盖物开始绘制回调
Definition awk_map.h:51
void(* on_poi_end_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom, int32_t status)
tile结束绘制回调
Definition awk_map.h:139
bool(* on_polygon_begin_draw)(uint32_t map_id, int32_t guid)
面覆盖物开始绘制回调
Definition awk_map.h:68
bool(* on_tile_begin_draw)(uint32_t map_id, uint32_t tile_x, uint32_t tile_y, uint32_t zoom)
tile开始绘制回调
Definition awk_map.h:87
地图覆盖物基类
2d经纬度坐标结构
离线数据下载类型中adcode下载相关
Definition awk_map.h:666
awk_map_offline_type type
下载类型
Definition awk_map.h:686
awk_map_offline_gdb_adcode_t adcode_info
adcode下载相关信息
Definition awk_map.h:688
awk_map_offline_gdb_location_t location_info
经纬度下载相关信息
Definition awk_map.h:689
离线数据下载类型经纬度下载相关
Definition awk_map.h:674
uint8_t expect_level
需要的级别
Definition awk_map.h:677
awk_map_range_t range
范围枚举
Definition awk_map.h:676
awk_map_coord2d_t location
经纬度
Definition awk_map.h:675
查询下载的结果
Definition awk_map.h:696
awk_map_offline_gdb_info_t * infos
info信息数组
Definition awk_map.h:698
地图线面覆盖物
地图姿态数据结构
瓦片下载信息
Definition awk_map.h:600
awk_map_tile_type_t tile_type
Definition awk_map.h:601
轨迹信息结构
地图mapview参数
视口尺寸结构
矩形区域定义
Definition awk_defines.h:62