今天我们来讲有关高德云存储相关,就是我们把一堆位置信息上传到高德提供的云图管理器,然后我们在本地区调用我们所保存的地图信息。
具体是什么,自己百度一下就行了。
高德提供的服务:
今天我就讲一下具体流程。我会用web服务API与Android服务SDK。首先我们看一张图
相关的API如下:
云检索API: http://lbs.amap.com/yuntu/reference/cloudsearch/
云存储API: http://lbs.amap.com/yuntu/reference/cloudstorage/#t1
Android云图SDK: http://lbs.amap.com/api/android-sdk/guide/cloud/
你会发现高德并没有在Android服务SDK中提供操作(增删改)云端的数据的功能。
这是为什么?
考虑到用户安全性问题(只要有tableID,与key便可直接修改云端数据库。 ),官方不推荐在终端直接操作云存储器中的数据(增删改)。
推荐(如图)在中间搭载共同服务器(个人)来操作云端云图。
申请什么KEY?
APIkey:主要是为了使用高德地图提供的开发服务。例android平台sdk。
WEBkey:如果需要实现云存储功能需要申请一个云存储服务key。有多种选择,例:web服务api。
为什么我们要用webkey因为我们想直接通过android去修改云存储中的数据。通过HTTP协议就可以简单的实现。
申请key的链接: http://lbs.amap.com/dev/key#/
别忘了打开“云存储“”的权限。要不然不能访问云端。
我们需要填写SHA1,具体路径可以在eclipse中找到路径如下:
Eclipse>Preferences>Android>Build
我推荐使用一个debug keystore(就是调试版安全码SHA1),因为在eclipse中的SHA1码有时会变,那么在代码里会提示“INVALID USER SCODE”。
通过在CMD命令行窗口中输入一下命令:
keytool -genkey -alias androiddebugkey -keyalg RSA -validity 20000 -keystore debug.keystore -storepass android -keypass android
然后打开Eclipse>Preferences>Android>Build添加custom debug keystore
生成的key在哪?
C盘的user>自己>.android目录里会有debug.keystore文件导入进去就可以了。然后复制添加到调试版安全码SHA1中
申请完以后你可以看到如下图:
特别说明:如果使用android平台SDK必须在工程的“ AndroidManifest.xml ”文件添加用户key(android平台SDK)。
<application android:icon="@drawable/icon" android:label="@string/app_name"> <meta-data android:name="com.amap.api.v2.apikey" android:value="请输入您的用户Key"></meta-data> <activity android:name="com.amap.map3d.demo.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"> <category android:name="android.intent.category.LAUNCHER"> </category></action></intent-filter> </activity> </application>
参考:http://lbs.amap.com/api/android-sdk/guide/mapshow/
创建云图:
快速制图:http://lbs.amap.com/yuntu/operation/make/
手动创建云图:
我们首先需要登录数据管理台: http://yuntu.amap.com/datamanager/
1.登录数据管理台
2.点击“新建地图”
3.添加数据
你可以把此平台看做是以个数据库。
这个云图是一张TABLE。
固定字段:id,name,image,geo-x,geo-y,address,createTime,updateTime
添加自定义字段:点击上图红框即可添加。
我们需要访问此TABLE的时候需要一个识别码(TABLEID),在代码里实现访问此table时会用到TABLEID。
TABLEID在哪?
点击“开发选项”
那么我们可以看到有一个索引管理的按钮。
索引管理是什么? 是当你要搜索某一行数据的时候查询时的添加field。
我们可以最多添加5个自定义索引。
添加索引:
1 索引字段是在代码中读取数据时, 通过{keyword=索引字段值}的方式获取到 相应数据。
2 默认资源name,address可以添加自定义字段。
接下来我们继续看有关云检索
云检索:
主要分以上几种检索方式具体可以参考api。
本地检索: 当检索区域是全国时,等同于对存储在云图里的数据进行全表检索。 keywords是对建立了文本索引字段的对应列内容进行关键字查询;
周边检索: 在指定tableid的数据表内,搜索指定中心点和半径范围内, 符合筛选条件的位置数据。服务协议:HTTP/HTTPS GET。
多边形检索: 在指定tableid的数据表内,搜索指定多边形范围内、 符合筛选条件的位置数据。多点复用。服务协议:HTTP/HTTPS GET。
id检索: 在指定tableid的数据表内,查询对应数据id的数据详情。 只能用_id ,服务协议:HTTP/HTTPS GET。
云检索API: http://lbs.amap.com/yuntu/reference/cloudsearch/
下一节我们讲具体实现方法~