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)
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)