查看: 1054|回复: 1

Android如何加载离线的加密地图

[复制链接]
发表于 2022-9-25 09:32:17 | 显示全部楼层 |阅读模式
Android如何加载离线的加密地图
发表于 2022-9-25 09:37:21 | 显示全部楼层
离线地图的制作主要用到的是一款叫Mobile Atlas Creator的软件,可以非常方便地根据需要制作自己的地图册,界面如下:

Android如何加载离线的加密地图-1687
制作地图册
1、选择地图册格式为Osmdroid ZIP,首次使用软件时会提示你建立一个地图册,记得选择Osmdroid ZIP格式,名字暂时可以随便取,如果不是首次使用,就在软件左侧选择当前地图册-新建地图册,在弹出来的对话框,选择Osmdroid ZIP格式,并且起一个名字,确定之后点击添加选择区域;

Android如何加载离线的加密地图-2464
2、选择所要制作离线地图的区域,可以通过长按鼠标左键并且拖拽选择,也可以在软件左侧-坐标信息填写经纬度范围去选择,选择好之后记得点击“选择该区域”按钮;

Android如何加载离线的加密地图-5545

3、选择地图源,直接在软件左侧-选择地图源下拉菜单选择,网上是说最好选择OpenStreetMap Mapnik,但是选择这个发现地图加载不了,都是一个个大红叉,为了保险起见,我还是选择了OpenStreetMap MapQuest;
4、选择缩放比例,地图是按照缩放比例来分块的,缩放比例越大,分块就越小,越多。这个根据你的需求来决定;

Android如何加载离线的加密地图-4759

5、选择图片转换,如果不选择的话,默认下载下来的地图册图片是jpg格式的,不知道OpenStreetMap支不支持,所以最好还是选上;
6、点击“开始下载地图册”开始下载。

Android如何加载离线的加密地图-6345

7、下载完成后,把压缩文件重命名为Mapnik.zip,并且把压缩包里面第一层的文件夹名也改成Mapnik,这个因为要解压后再压缩,如果地图册比较大的话,需要花不少时间。完成之后把Mapnik.zip放到真机或者模拟器的/mnt/sdcard/osmdroid/路径下。网上也有说也可以把Mapnik.zip解压了,之后在每个png文件后面加上.tile后缀,放到/mnt/sdcard/osmdroid/tiles路径下(貌似通过网络加载地图就是会在本地保存这种文件),但是这种方法耗时更多。至此地图册算是准备完成了。
编写程序,如下:
[java] view plain copy
<span style="font-family:'Microsoft YaHei';font-size:18px;">package com.***.text_osmdroid2;  

import org.***.geopoint;  
import org.***.mapview;  

import android.***.bundle;  
import android.***.activity;  

public class OSMDroidActivity extends Activity {  

private MapView mMapView;  

@Override  
public void onCreate(Bundle savedInstanceState) {  
***.oncreate(savedInstanceState);  
setContentView(r.***.activity_osmdroid);  

mMapView = new MapView(this, 256);   
***.setclickable(true);  
***.setbuiltinzoomcontrols(true);  
setContentView(mMapView);  
***.getcontroller().setZoom(15);  
***.getcontroller().setCenter(new GeoPoint(23.158141,113.341748));   
***.setusedataconnection(false); //设置取消通过网络加载地图数据  

}     
}</span>  
上面是一个简单程序,经验证是可以运行的。需要注意的是,如果离线地图册比较大的话,所用的机器或者模拟器的内存应该要大一点,我导入杭州市的地图,大概300M,模拟器内存为512M时都会出现内存不够用的情况。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

快速回复 返回顶部 返回列表