Esempio n. 1
0
def getDataFromPos(pos):
    detail = []
    lnglat = []
    number = 0
    for i in pos:
        number += 1
        lng = intToCoordinate(i.Lon)
        lat = intToCoordinate(i.Lat)
        lnglat_info = {'lng': lng, 'lat': lat}
        lnglat.append(lnglat_info)
        info = {}
        info.update(id=i.ROWID,
                    mmsi=i.mmsi,
                    source=i.source,
                    lat=intToCoordinate(i.Lat),
                    lon=intToCoordinate(i.Lon),
                    sog=i.Sog,
                    cog=i.Cog,
                    hdg=i.Hdg,
                    rot=i.Rot,
                    navastaus=i.Navastaus)
        info.update(updatetime=timestampToDatetime(i.UpdateTime, format='sec'))
        info.update(inserttime=i.InsertTime.strftime('%Y-%m-%d %H:%M:%S'))
        detail.append(info)
    return [{'num': number, 'detail': detail, 'lnglat': lnglat}]
Esempio n. 2
0
 def get(self):
     pos = Pos.query.filter_by(mmsi=431008147)
     lnglat = []
     for i in pos:
         lng = intToCoordinate(i.Lon)
         lat = intToCoordinate(i.Lat)
         info = {'lng': lng, 'lat': lat}
         lnglat.append(info)
     # return {'mmsi': pos[1].mmsi, 'lnglat': lnglat}
     return [{'value': 1, 'lnglat': lnglat}]
Esempio n. 3
0
 def get(self):
     # pos = Pos.query.filter_by(updatetime=1502354830)
     pos = Pos.query.filter_by(mmsi=235070199)
     data = []
     for i in pos:
         info = {}
         info.update(id=i.ROWID,
                     mmsi=i.mmsi,
                     source=i.source,
                     lat=intToCoordinate(i.Lat),
                     lon=intToCoordinate(i.Lon),
                     sog=i.Sog,
                     cog=i.Cog,
                     hdg=i.Hdg,
                     rot=i.Rot,
                     navastaus=i.Navastaus,
                     updatetime=i.UpdateTime)
         info.update(inserttime=i.InsertTime.strftime('%Y-%m-%d %H:%M:%S'))
         data.append(info)
     return {'pos': data}
Esempio n. 4
0
    def post(self):
        args = self.parser.parse_args()
        point1 = args['lnglat_top_left']
        point2 = args['lnglat_bottom_right']
        eps = args['eps']
        minpts = args['minpts']
        point1_lng = CoordinateToInt(point1.split(',')[0])
        point1_lat = CoordinateToInt(point1.split(',')[1])
        point2_lng = CoordinateToInt(point2.split(',')[0])
        point2_lat = CoordinateToInt(point2.split(',')[1])

        points_list = []
        pos = Pos.query.filter(
            and_(Pos.Lat > point2_lat, Pos.Lat < point1_lat,
                 Pos.Lon > point1_lng, Pos.Lon < point2_lng))
        for i in pos:
            point_list = [intToCoordinate(i.Lon), intToCoordinate(i.Lat)]
            points_list.append(point_list)

        res = dbscan_bmap(points_list, eps, minpts)
        return res
Esempio n. 5
0
    def post(self):
        args = self.parser.parse_args()
        point1 = args['lnglat_top_left']
        point2 = args['lnglat_bottom_right']

        point1_lng = CoordinateToInt(point1.split(',')[0])
        point1_lat = CoordinateToInt(point1.split(',')[1])
        point2_lng = CoordinateToInt(point2.split(',')[0])
        point2_lat = CoordinateToInt(point2.split(',')[1])
        pos = Pos.query.filter(
            and_(Pos.Lat > point2_lat, Pos.Lat < point1_lat,
                 Pos.Lon > point1_lng, Pos.Lon < point2_lng))

        lnglat = []
        number = 0
        for i in pos:
            lng = intToCoordinate(i.Lon)
            lat = intToCoordinate(i.Lat)
            info = {'lng': lng, 'lat': lat}
            lnglat.append(info)
            number += 1
        return [{'number': number, 'lnglat': lnglat}]
Esempio n. 6
0
 def get(self):
     args = self.parser.parse_args()
     point1 = args['top']
     point2 = args['bottom']
     stime = '20170809 16:00'
     etime = '20170809 16:10'
     point1_lng = CoordinateToInt(point1.split(',')[0])
     point1_lat = CoordinateToInt(point1.split(',')[1])
     point2_lng = CoordinateToInt(point2.split(',')[0])
     point2_lat = CoordinateToInt(point2.split(',')[1])
     points_list = []
     pos = Pos.query.filter(
         and_(Pos.InsertTime >= stime, Pos.InsertTime <= etime,
              Pos.Lat > point2_lat, Pos.Lat < point1_lat,
              Pos.Lon > point1_lng, Pos.Lon < point2_lng))
     for i in pos:
         point_list = [
             float(intToCoordinate(i.Lon)),
             float(intToCoordinate(i.Lat))
         ]
         points_list.append(point_list)
     # print(points_list)
     return KNN(points_list)