现在越来越多应用使用地图功能了,目前使用云地图功能调用API实现是比较流行的解决方案。
下面就是高德云地图API使用例子讲解。
首先去高德开发网站注册一个开发者账号,
http://lbs.amap.com/
注册只需要提供手机号和邮箱就可以了。
测试只需要个人开发者,如果商业使用还是申请企业账号吧。
第二步,注册完毕,登陆管理控制台创建自己的应用。
系统默认给一个高德的key,为了更加安全还可以为应用创建一个私有Key
第三步,就可以参考网站的API开发了。下面是工具类代码,引用了一个第三方jar,fastjson-1.1.26.jar,JDK版本是1.8,
package com.meles.gaode;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
/**
*
* @author zhouxj
* web页面查看http://yuntu.amap.com/datamanager/table.html?action=update&tableid=59a69a6f305a2a4ed7ec700a
* 发布链接: https://yuntu.amap.com/share/zIzeia
*/
public class GaodeUtil {
static String key = "fc3887a3d8583d3ede7452cd235279e6"; //高德Key
static String privateKey = "ea6a2a2dbfb48239f0e06fd5a35bf531"; //应用私有key
//String url = "http://yuntuapi.amap.com/datamanage/table/create";
static String gaode_createtable_url="http://yuntuapi.amap.com/datamanage/table/create";
static String gaode_createData_url="http://yuntuapi.amap.com/datamanage/data/create";
static String gaode_updateData_url="http://yuntuapi.amap.com/datamanage/data/update";
static String gaode_deleteData_url="http://yuntuapi.amap.com/datamanage/data/delete";
static String gaode_location_list_url="http://yuntuapi.amap.com/datamanage/data/list";
static String gaode_getDistance_url="http://restapi.amap.com/v3/distance";
static String gaode_dataSearchArround_url="http://yuntuapi.amap.com/datasearch/around";
static String tableId = "59a69a6f305a2a4ed7ec700a";
public static String createTable(String tableName) {
Map paramMap = new HashMap();
paramMap.put("key", key);
paramMap.put("name", tableName);
paramMap.put("sig", getGaodeSign(paramMap, privateKey));
String result = Httpclient.sendPost(gaode_createtable_url, paramMap);
return result;
}
public static String getGaodeSign(Map paramMap,String privateKey) {
Iterator> it = paramMap.entrySet().iterator();
List paramKeyList = new ArrayList();
while(it.hasNext()) {
Entry entry = it.next();
paramKeyList.add(entry.getKey());
}
String[] array = new String[paramKeyList.size()];
paramKeyList.toArray(array);
Arrays.sort(array);
StringBuffer sb = new StringBuffer();
for(int i = 0;i < array.length;i++) {
sb.append(array[i]);
sb.append("=");
sb.append(paramMap.get(array[i]));
sb.append("&");
}
String param = sb.substring(0, sb.length() - 1);
param = param + privateKey;
String sign = MD5Util.MD5Encode(param, "UTF-8");
return sign;
}
public static String createData(Map paramMap) {
Map map = new HashMap();
map.put("key", key);
map.put("tableid", tableId);
//JSONObject json = JSONObject.fromObject(paramMap);
String jsonStr=JSON.toJSONString(paramMap);
map.put("data", jsonStr);
map.put("sig", getGaodeSign(map, privateKey));
String result = Httpclient.sendPost(gaode_createData_url, map);
System.out.println(result);
return result;
}
public static String updateData(Map paramMap) {
Map map = new HashMap();
map.put("key", key);
map.put("tableid", tableId);
String jsonStr=JSON.toJSONString(paramMap);
map.put("data", jsonStr);
map.put("sig", getGaodeSign(map, privateKey));
String result = Httpclient.sendPost(gaode_updateData_url, map);
return result;
}
public static String deleteData(List gaodeIdList,String tableId) {
Map map = new HashMap();
map.put("key", key);
map.put("tableid", tableId);
StringBuffer sb = new StringBuffer();
for(int i = 0;i < gaodeIdList.size();i++) {
String id = gaodeIdList.get(i);
sb.append(id);
sb.append(",");
}
String ids = sb.substring(0, sb.length() - 1);
map.put("ids", ids);
map.put("sig", getGaodeSign(map, privateKey));
String result = Httpclient.sendPost(gaode_deleteData_url, map);
return result;
}
public static List
如果密钥填写正常,而且tableId写的对的话就可以看到云地图效果了。
自己登录后台管理可以看到如下图:
别人能访问的地图如下图,发布链接: https://yuntu.amap.com/share/zIzeia:
是不是很方便啊。
手机查看地图效果图如下,如果开启定位功能则还有更多功能比如:定位,导航
全部源码下载链接:
http://www.meles.cn/bbs/forum.php?mod=attachment&aid=MTIwOXw1M2YyOTc1MXwxNTA0MjU4NDc0fDN8Njg5Mg%3D%3D