百度鹰眼之工具类

  本文主要介绍对接百度鹰眼工具,包含创建entity、查询entity、轨迹上传、创建围栏等。需要的朋友可以参考一下。

  1.YinyanUtil.java

public class YinyanUtil {

    /**

    * 百度鹰眼服务器端Key

    */

    public static final String BAIDU_YINGYAN_AK_S = "百度鹰眼服务器端Key";

    /**

    * 百度鹰眼服务ID

    */

    public static final String BAIDU_YINGYAN_SERVICE_ID = "百度鹰眼服务ID";

    /**

    * 百度鹰眼接口URL

    */

    public static final String BAIDU_YINGYAN_URL = "http://yingyan.baidu.com/api/v3/";

    /**

    * 百度鹰眼请求方式(POST)

    */

    public static final String BAIDU_YINGYAN_REQ_POST = "POST";

    /**

    * 百度鹰眼请求方式(GET)

    */

    public static final String BAIDU_YINGYAN_REQ_GET = "GET";

    /**

    * 逆地理编码

    */

    public static final String BAIDU_REVERSE_GENCODING = "http://api.map.baidu.com/reverse_geocoding/v3/";

    public static String operEntityReq(String urlReq, String param, String method) {

        try {

            //Get请求,拼装参数

            if (BAIDU_YINGYAN_REQ_GET.equals(method)) {

                urlReq = urlReq + "?" + param;

            }

            //创建URL对象

            URL url = new URL(urlReq);

            //返回一个URLConnection对象,它表示到URL所引用的远程对象的连接

            URLConnection urlConnection = url.openConnection();

            //POST请求,写入参数

            if (BAIDU_YINGYAN_REQ_POST.equals(method)) {

                // 设置doOutput属性为true表示将使用此urlConnection写入数据

                urlConnection.setDoOutput(true);

                // 定义待写入数据的内容类型,我们设置为application/x-www-form-urlencoded类型

                urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded");

                // 得到请求的输出流对象

                OutputStreamWriter out = new OutputStreamWriter(urlConnection.getOutputStream());

                // 把数据写入请求的Body

                out.write(param);

                out.flush();

                out.close();

            }

            // 从服务器读取响应

            InputStream inputStream = urlConnection.getInputStream();

            String encoding = urlConnection.getContentEncoding();

            String result = IOUtils.toString(inputStream, encoding);

            return result;

        } catch (IOException e) {

            e.printStackTrace();

            return null;

        }

    }

    /**

    * 创建entity

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String createEntity(String urlPreFix,String ak,String serviceId,String entityName){

        String urlReq = urlPreFix + YingyanEntity.ADD;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&entity_name=" + entityName +

                "&entity_desc=" + entityName;

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);

        return result;

    }

    /**

    * 查询entity

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String queryEntity(String urlPreFix,String ak,String serviceId,String entityName){

        String urlReq = urlPreFix + YingyanEntity.LIST;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&filter=entity_names:" + entityName +"";

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_GET);

        return result;

    }

    /**

    * 更新entity

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String updateEntity(String urlPreFix,String ak,String serviceId,String entityName){

        String urlReq = urlPreFix + YingyanEntity.UPDATE;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&entity_name=" + entityName +

                "&entity_desc=" + entityName;

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);

        return result;

    }

    /**

    * 删除entity

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String delEntity(String urlPreFix,String ak,String serviceId,String entityName){

        String urlReq = urlPreFix + YingyanEntity.DELETE;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&entity_name=" + entityName;

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);

        return result;

    }

    /**

    * 轨迹上传

    * @param urlPreFix

    * @param list

    */

    public static String uploadLocus(String urlPreFix, List<NameValuePair> list){

        String result = "";

    try {

    //创建一个HTTPClient

            String url = urlPreFix + YingyanEntity.ADDPOINTS;

        HttpClientUtil ct = new HttpClientUtil(url, list);

        //默认方式创建

        ct.setClient(HttpClients.createDefault());// 创建默认http连接

        //开始请求

            result = ct.startHttp(ct.getClient());

        } catch (IOException e) {

            e.printStackTrace();

        }

    System.out.println(result);

    return result;

    }

    /**

    * 创建围栏

    * @param urlPreFix

    * @param list

    */

    public static String createFence(String urlPreFix,List<NameValuePair> list){

        String result = "";

        try {

            //创建一个HTTPClient

            String url = urlPreFix +  YingyanEntity.CIRCLEFENCE;

            HttpClientUtil ct = new HttpClientUtil(url, list);

            //默认方式创建

            ct.setClient(HttpClients.createDefault());// 创建默认http连接

            //开始请求

            result = ct.startHttp(ct.getClient());

        } catch (IOException e) {

            e.printStackTrace();

        }

        System.out.println(result);

        return result;

    }

    /**

    * 查询围栏

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String queryFence(String urlPreFix,String ak,String serviceId,String entityName){

        String urlReq = urlPreFix + YingyanEntity.FENCEQUERYSTATUS;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&monitored_person=" + entityName;

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_GET);

        return result;

    }

    /**

    * 围栏列表

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String queryFenceList(String urlPreFix,String ak,String serviceId,String entityName,Integer page_index,Integer page_size){

        String urlReq = urlPreFix + YingyanEntity.FENCEQUERYLIST;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&monitored_person=" + entityName;

        if(page_index != null){

            param =  param + "&page_index=" + page_index;

        }

        if(page_size != null){

            param =  param + "&page_size=" + page_size;

        }

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_GET);

        return result;

    }

    /**

    * 删除围栏

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param fence_ids

    * @return

    */

    public static String delFenceList(String urlPreFix,String ak,String serviceId,String fence_ids){

        String urlReq = urlPreFix + YingyanEntity.FENCEDELETELIST;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&fence_ids=" + fence_ids;

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_POST);

        return result;

    }

    /**

    * 获取用户实时轨迹

    * @param urlPreFix

    * @param ak

    * @param serviceId

    * @param entityName

    * @return

    */

    public static String getlatestpoint(String urlPreFix,String ak,String serviceId,String entityName){

        String urlReq = urlPreFix + YingyanEntity.LATESTPOINT;

        String param = "ak=" + (StringUtils.isEmpty(ak) ? BAIDU_YINGYAN_AK_S : ak) +

                "&service_id=" + (StringUtils.isEmpty(serviceId) ? BAIDU_YINGYAN_SERVICE_ID : serviceId) +

                "&entity_name=" + entityName;

        String result = operEntityReq(urlReq, param, BAIDU_YINGYAN_REQ_GET);

        return result;

    }

    /**

    * 逆地理编码

    * @param ak

    * @param location

    * @return

    */

    public static String reversegGeocoding(String ak, String location){

        String url = BAIDU_REVERSE_GENCODING + "?ak=" + ak + "&output=json&coordtype=wgs84ll" + "&location=" + location;

        String result = operEntityReq(url, null, BAIDU_YINGYAN_REQ_GET);

        return result;

    }

    public static String toJsonStr(Object object) {

if(object == null) {

return "";

}

try {

return JSONObject.toJSONString(object);

} catch(Exception e) {

}

return "";

}

}


  2.YingyanEntity.java

public class YingyanEntity {

/**

    * 创建entity,并赋属性信息

    */

    public static final String ADD ="entity/add";

/**

    * 删除entity

*/

    public static final String DELETE ="entity/delete";

/**

    * 更新entity属性信息

    */

    public static final String UPDATE ="entity/update";

/**

    * 检索符合条件的entity,返回entity属性信息和最新位置。可用于列出entity,也可用于批量查询多个entitiy的位置

    */

    public static final String LIST ="entity/list";

/**

    * 轨迹上传能力

    */

    public static final String ADDPOINTS ="track/addpoints";

/**

    * 创建圆形围栏

    */

    public static final String CIRCLEFENCE ="fence/createcirclefence";

/**

    * 查询围栏状态

    */

    public static final String FENCEQUERYSTATUS ="fence/querystatus";

/**

    * 查询实时轨迹

    */

    public static final String LATESTPOINT ="track/getlatestpoint";

/**

    * 围栏列表

    */

    public static final String FENCEQUERYLIST ="fence/list";

/**

    * 围栏删除

    */

    public static final String FENCEDELETELIST ="fence/delete";

}

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容