StationRoute.java 3.58 KB
package com.bsth.entity;

import com.bsth.util.geo.GeoUtils;
import com.bsth.util.geo.Point;
import com.bsth.util.geo.Polygon;

import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

/**
 * 站点路由
 */
public class StationRoute {

    /**
     * 线路编码
     */
    private String lineCode;

    /**
     * 上下行
     */
    private int upDown;

    /**
     * 站点编码
     */
    private String stationCode;

    /**
     * 站点标记
     */
    private String mark = "Z";

    /**
     * 站点名称
     */
    private String name;

    /**
     * 站点序号
     */
    private int serialNo;

    /**
     * 站点位置
     */
    private Point point;

    private Float lon;

    private Float lat;

    private char shapesType;

    /**
     * 圆形半径
     */
    private Float radius;

    /**
     * 多边形
     */
    private Polygon polygon;

    private String polygonStr;

    /**
     * 到下一站 的 路段点位
     */
    private CopyOnWriteArrayList<Point> paths;

    /**
     * 路段长度
     */
    private double length;

    public String getLineCode() {
        return lineCode;
    }

    public void setLineCode(String lineCode) {
        this.lineCode = lineCode;
    }

    public int getUpDown() {
        return upDown;
    }

    public void setUpDown(int upDown) {
        this.upDown = upDown;
    }

    public String getStationCode() {
        return stationCode;
    }

    public void setStationCode(String stationCode) {
        this.stationCode = stationCode;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getSerialNo() {
        return serialNo;
    }

    public void setSerialNo(int serialNo) {
        this.serialNo = serialNo;
    }

    public Point getPoint() {
        return point;
    }

    public void setPoint(Point point) {
        this.point = point;
    }

    public Float getLon() {
        return lon;
    }

    public void setLon(Float lon) {
        this.lon = lon;
    }

    public Float getLat() {
        return lat;
    }

    public void setLat(Float lat) {
        this.lat = lat;
    }

    public char getShapesType() {
        return shapesType;
    }

    public void setShapesType(char shapesType) {
        this.shapesType = shapesType;
    }

    public Float getRadius() {
        return radius;
    }

    public void setRadius(Float radius) {
        this.radius = radius;
    }

    public Polygon getPolygon() {
        return polygon;
    }

    public void setPolygon(Polygon polygon) {
        this.polygon = polygon;
    }

    public String getPolygonStr() {
        return polygonStr;
    }

    public void setPolygonStr(String polygonStr) {
        this.polygonStr = polygonStr;
    }

    public List<Point> getPaths() {
        return paths;
    }

    public void setPaths(CopyOnWriteArrayList<Point> paths) {
        this.paths = paths;

        if (paths.size() > 1) {
            //计算 paths 长度
            double sum = 0, distance;
            for (int i = 0, len = paths.size() - 1; i < len; i++) {
                distance = GeoUtils.getDistance(paths.get(i), paths.get(i + 1));

                if (!Double.isNaN(distance))
                    sum += distance;
            }

            this.length = sum;
        }
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    public double getLength() {
        return length;
    }

    public void setLength(double length) {
        this.length = length;
    }
}