百度地图API 云存储·LBS.云 VO类封装(Java)

百度地图API 云存储·LBS.云 VO类封装(Java)

一、设计思路

首先将LBS(版本服务器域名)和USER(ak,geotable_id等)的基本信息分别定义在 LBSINFO.javaUSERINFO.java 再将各个请求对象(XXObject)和相应的响应(XXJson)对象根据API参数封装,若包含自定义字段,则继承其父类 结构如下:

这里写图片描述

二、部分源代码

1、LBSINFO.java

package com.xeonmic.lbs.vo;

/**
 * @author Xeon
 * @version 3.0
 */
public class LBSINFO {
    public static final String LBSPOIURL = "http://api.map.baidu.com/geodata/v3/poi/";
    //public static final String LBS = "";
}

2、USERINFO.java

package com.xeonmic.lbs.vo;

/**
 * @author Xeon
 * @version 3.0
 */
public class USERINFO {
    public static final String ak="YourKey";//用户AK
    public static final String geotable_id="YourTableId";//表id
    public static final int coord_type=1;//用户上传的坐标类型
    public static final String sn="";//用户的权限签名(可选)
}

3、POI.java

/**
 * 
 */
package com.xeonmic.lbs.vo;

import java.util.List;

/**
 * 位置数据(poi)实体类
 * @author Xeon
 * @version 3.0
 */
public class POI {
    private int id;//唯一标识
    private List<Double> location;//坐标
    private String province;//省名称
    private int city_id;//市id
    private String city;//市名
    private String district;//区名
    private String title;//名称
    private String address;//地址
    private int coord_type;//用户上传的坐标的类型
    private String tags;//标签
    private String geotable_id;//表主键
    private String create_time;//创建时间
    private String modify_time;//修改时间

    /*Setters and Getter*/

    /**
     * 完整的构造函数
     * @param id
     * @param location
     * @param province
     * @param city_id
     * @param city
     * @param district
     * @param title
     * @param address
     * @param coord_type
     * @param tags
     * @param geotable_id
     * @param create_time
     * @param modify_time
     */
    public POI(int id, List<Double> location, String province, int city_id,
            String city, String district, String title, String address,
            int coord_type, String tags, String geotable_id, String create_time,
            String modify_time) {
        //super();
        this.id = id;
        this.location = location;
        this.province = province;
        this.city_id = city_id;
        this.city = city;
        this.district = district;
        this.title = title;
        this.address = address;
        this.coord_type = coord_type;
        this.tags = tags;
        this.geotable_id = geotable_id;
        this.create_time = create_time;
        this.modify_time = modify_time;
    }
    /**
     * 必须的构造函数
     * @param id
     * @param location
     * @param city_id
     * @param city
     * @param geotable_id
     * @param create_time
     * @param modify_time
     */
    public POI(int id, List<Double> location, int city_id, String city,
            String geotable_id, String create_time, String modify_time) {
        this.id = id;
        this.location = location;
        this.city_id = city_id;
        this.city = city;
        this.geotable_id = geotable_id;
        this.create_time = create_time;
        this.modify_time = modify_time;
    }
    /* (非 Javadoc)
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        return "POI [id=" + id + ", location=" + location + ", province="
                + province + ", city_id=" + city_id + ", city=" + city
                + ", district=" + district + ", title=" + title + ", address="
                + address + ", coord_type=" + coord_type + ", tags=" + tags
                + ", geotable_id=" + geotable_id + ", create_time="
                + create_time + ", modify_time=" + modify_time + "]";
    }

}

4、POIObject.java

package com.xeonmic.lbs.vo;

/**
 * @author Xeon
 * @version 3.0
 */
public class POIObject extends LBSObject {

    /**
     * @param ak
     * @param geotable_id
     * @param coord_type
     */
    protected String title;//poi名称
    protected String address;//地址
    protected String tags;//标签
    protected String latitude;//
    protected String longitude;//
    //protected String coord_type;//
    //protected String geotable;//
    //protected String ak;//
    //protected String sn;//

    /**
     * 构造函数
     * @param title
     * @param address
     * @param tags
     * @param latitude
     * @param longitude
     */
    public POIObject(   String title, String address, String tags, String latitude,
            String longitude) {
        this.title = title;
        this.address = address;
        this.tags = tags;
        this.latitude = latitude;
        this.longitude = longitude;
    }
}

5、POIFindObject.java

package com.xeonmic.lbs.vo;

/**
 * @author Xeon
 * @version 3.0
 */
public class POIFindObject extends LBSObject {
    public String title;//记录(数据)名称
    public String tags;//记录的标签(用于检索筛选)
    public String bounds;//查询的矩形区域
    public int page_index;//分页索引
    public int page_size;//分页数目
    /**
     * @param title
     * @param tags
     * @param bounds
     * @param page_index
     * @param page_size
     */
    public POIFindObject(String title, String tags, String bounds,
            int page_index, int page_size) {
        super();
        this.title = title;
        this.tags = tags;
        this.bounds = bounds;
        this.page_index = page_index;
        this.page_size = page_size;
    }


    /*Setters and Getter*/


    /*public Map<String, Object> toMap() {
        Map<String, Object> map=new HashMap<String,Object>();
        map.put("title", title);
        map.put("bounds", bounds);
        map.put("tags", tags);
        map.put("page_index", page_index);
        map.put("page_size", page_size);
        map.put("ak", ak);
        map.put("geotable_id", geotable_id);
        if(!"".equals(sn)){
            map.put("sn", sn);
        }
        //map.put(key, value)//添加自定义字段键-值对
        return map;

    }*/
    public String toURL() {
        String URL ="?";
        URL+="title="+title;
        if (!"".equals(bounds)) {
            URL+="bounds="+bounds+"&";
        }
        if (!"".equals(tags)) {
            URL+="tags="+tags+"&";
        }
        URL+="page_size="+page_size+"&";
        URL+="page_index="+page_index+"&";
        URL+="ak="+ak+"&";
        if (!"".equals(sn)) {
            URL+="sn="+sn+"&";
        }
        URL+="geotable_id="+geotable_id+"";
        return URL;
    }
}

6、POIFindJson.java

package com.xeonmic.lbs.vo;

import java.util.List;

/**
 * 查询指定条件POI数据的响应参数类
 * @author Xeon
 * @version 3.0
 */
public class POIFindJson {
    protected int status;//状态码
    protected String message;//响应的信息
    protected int size;//返回数据条数
    protected int total;//全部的数据条数
    protected List<POI> pois;//poi结果列表



    /*Setters and Getter*/



    public POIFindJson(int status, String message, int size, int total,
            List<POI> pois) {

        this.status = status;
        this.message = message;
        this.size = size;
        this.total = total;
        this.pois = pois;
    }
    @Override
    public String toString() {
        return "POIFindJson [status=" + status + ", message=" + message
                + ", size=" + size + ", total=" + total + ", pois=" + pois
                + "]";
    }


}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值