Beispiel #1
0
    def get_path(self, request, **kwargs):
        self.method_check(request, allowed=['get'])
        self.is_authenticated(request)
        self.throttle_check(request)

        q = request.GET.get('q', '').strip().split(',')
        coords = []
        for p in q:
            mq = re.match('(?P<lat>-?[\d\.]+) (?P<lon>-?[\d\.]+)', p)
            coords.append([float(mq.group('lat')), float(mq.group('lon'))])

        h = request.GET.get('h', None)
        try:
            h = float(h)
        except:
            h = None

        path = LineString(coords)
        indexes, interpolated = interpolate_linestring(path)
        relief_profile = get_relief_profile_along_track(interpolated)

        ib = get_space_intersect_path(LineString(interpolated), h)
        ib.indexes = indexes
        ib.interpolated = interpolated
        ib.relief_profile = relief_profile

        bundle = self.build_bundle(obj=ib, request=request)
        bundle = self.full_dehydrate(bundle)

        self.log_throttled_access(request)
        return self.create_response(request, bundle)
Beispiel #2
0
    def get_path(self, request, **kwargs):
        self.method_check(request, allowed=['get'])
        self.is_authenticated(request)
        self.throttle_check(request)

        q = request.GET.get('q', '').strip().split(',')
        coords = []
        for p in q:
            mq = re.match('(?P<lat>-?[\d\.]+) (?P<lon>-?[\d\.]+)', p)
            coords.append([float(mq.group('lat')), float(mq.group('lon'))])

        h = request.GET.get('h', None)
        try:
            h = float(h)
        except:
            h = None
        
        path = LineString(coords)
        indexes, interpolated = interpolate_linestring(path)
        relief_profile = get_relief_profile_along_track(interpolated)
        
        ib = get_space_intersect_path(LineString(interpolated), h)
        ib.indexes = indexes
        ib.interpolated = interpolated
        ib.relief_profile = relief_profile
        
        bundle = self.build_bundle(obj=ib, request=request)
        bundle = self.full_dehydrate(bundle)

        self.log_throttled_access(request)
        return self.create_response(request, bundle)
Beispiel #3
0
    def get_gpx(self, request, **kwargs):
        try:
            filename = kwargs.get('gpxid', None)
            dfilename = os.path.join("uploads", filename)

            track_geos = loadFromGpx(str(dfilename))
            relief_profile = get_relief_profile_along_track(track_geos)
        except:
            raise ImmediateHttpResponse(response=HttpNotFound())

        ib = get_space_intersect_path(track_geos)

        ib.indexes = [track_geos.project(Point(x)) for x in track_geos]
        ib.interpolated = []

        ib.relief_profile = relief_profile

        bundle = self.build_bundle(obj=ib, request=request)
        bundle = self.full_dehydrate(bundle)
        bundle.data['success'] = True
        bundle.data['trackURL'] = '/static/' + filename

        self.log_throttled_access(request)
        return self.create_response(request, bundle)
Beispiel #4
0
    def get_gpx(self, request, **kwargs):
        try:
            filename = kwargs.get('gpxid', None)
            dfilename = os.path.join("uploads", filename)
        
            track_geos = loadFromGpx(str(dfilename))
            relief_profile = get_relief_profile_along_track(track_geos)
        except:
            raise ImmediateHttpResponse(response=HttpNotFound())
        
        ib = get_space_intersect_path(track_geos)

        ib.indexes = [track_geos.project(Point(x)) for x in track_geos]
        ib.interpolated = []

        ib.relief_profile = relief_profile
                
        bundle = self.build_bundle(obj=ib, request=request)
        bundle = self.full_dehydrate(bundle)
        bundle.data['success'] = True
        bundle.data['trackURL'] = '/static/' + filename
        
        self.log_throttled_access(request)
        return self.create_response(request, bundle)