开发 RTOS 地图SDK 开发指南 创建工程 离线下载

离线下载 最后更新时间: 2025年07月11日

按adcode下载

// 下载回调函数指针设置
awk_map_download_callback_t *callback = malloc(sizeof(awk_map_download_callback_t));
callback->on_started = awk_download_started;
callback->on_stop = awk_download_stop;
callback->on_finish = awk_download_finish;
callback->on_progress = awk_download_progress;
callback->on_error = awk_download_error;
 
// 开始下载,第一个参数是城市adcode,第二个参数是地图比例尺,第三个参数是回调函数结构体
awk_map_start_download_offline_data("110105", 16, callback);

按经纬度范围下载

// 下载回调函数指针设置
awk_map_download_callback_t *callback = malloc(sizeof(awk_map_download_callback_t));
callback->on_started = awk_download_started;
callback->on_stop = awk_download_stop;
callback->on_finish = awk_download_finish;
callback->on_progress = awk_download_progress;
callback->on_error = awk_download_error;
 
// 经纬度范围下载
awk_map_coord2d_t center;
memset(&center, 0, sizeof(awk_map_coord2d_t));
center.lat = 30.2227;
center.lon = 120.1212;
awk_map_start_download_region_range(center, AWK_MAP_RANGE_10KM, 16, callback);

按路线下载

awk_map_coord2d_t points[] = {
    {113.947060, 22.748467},
    {113.946982, 22.748467},
    //... more data here
    {113.947212, 22.748468},
};

awk_map_tile_download_callback_t tile_download_callback;
tile_download_callback.on_success = awk_download_tile_on_success;
tile_download_callback.on_fail = awk_download_tile_on_fail;
awk_map_download_polyline_region("test1", points, sizeof(points), tile_download_callback);

查询已下载的离线数据

// 经纬度范围信息查询
awk_map_coord2d_t center;
memset(&center, 0, sizeof(awk_map_coord2d_t));
center.lat = 30.2227;
center.lon = 120.1212;
awk_map_offline_gdb_query_result_t query_result;
memset(&query_result, 0, sizeof(awk_map_offline_gdb_query_result_t));
awk_map_list_download_region_range(center, AWK_MAP_RANGE_10KM, 16, &query_result);
for (int i = 0; i < query_result.size; i++)
{
    awk_map_offline_gdb_info_t info = query_result.infos[i];

    printf("download info %f %f %d %d, %s\n", info.location_info.location.lon, info.location_info.location.lat, info.location_info.range, info.location_info.expect_level, info.file_name);
}
if (query_result.size > 0)
{
    awk_mem_free_adapter(query_result.infos);
    query_result.size = 0;
    query_result.infos = NULL;
}

// 查询通过adcode下载的
awk_map_offline_gdb_query_result_t result;
memset(&result, 0, sizeof(awk_map_offline_gdb_query_result_t));
awk_map_list_download_offline_regions("110105", 16, &result);
for (int i = 0; i < result.size; i++)
{
    printf("list adcode: %s %d %s\n", result.infos[i].adcode_info.adcode, result.infos[i].level, result.infos[i].file_name);
}
if (result.infos)
{
    awk_mem_free_adapter(result.infos);
    result.infos = NULL;
    result.size = 0;
}

删除已下载的离线数据

// 以经纬度信息删除下载数据
awk_map_coord2d_t center;
memset(&center, 0, sizeof(awk_map_coord2d_t));
center.lat = 30.2227;
center.lon = 120.1212;
awk_map_delete_download_region_range(center, AWK_MAP_RANGE_10KM, 16);
 
// 删除通过adcode下载的
awk_map_delete_download_offline_region("110105", 16);

返回顶部 示例中心 常见问题 智能客服 公众号
二维码