コード例 #1
0
    def __stop_times(self, request, api, departure_filter="", arrival_filter=""):
        req = request_pb2.Request()
        req.requested_api = api
        req._current_datetime = utils.date_to_timestamp(request['_current_datetime'])
        st = req.next_stop_times
        st.disable_geojson = request["disable_geojson"]
        st.departure_filter = departure_filter
        st.arrival_filter = arrival_filter
        if request["from_datetime"]:
            st.from_datetime = request["from_datetime"]
        if request["until_datetime"]:
            st.until_datetime = request["until_datetime"]
        st.duration = request["duration"]
        st.depth = request["depth"]
        if "nb_stoptimes" not in request:
            st.nb_stoptimes = 0
        else:
            st.nb_stoptimes = request["nb_stoptimes"]
        st.count = request.get("count", 10)
        if "start_page" not in request:
            st.start_page = 0
        else:
            st.start_page = request["start_page"]
        if request["items_per_schedule"]:
            st.items_per_schedule = request["items_per_schedule"]
        if request["forbidden_uris[]"]:
            for forbidden_uri in request["forbidden_uris[]"]:
                st.forbidden_uri.append(forbidden_uri)
        if request.get("calendar"):
            st.calendar = request["calendar"]
        st.realtime_level = utils.realtime_level_to_pbf(request['data_freshness'])
        resp = self.instance.send_and_receive(req)

        return resp
コード例 #2
0
    def journeys(self, origins, destinations, datetime, clockwise, journey_parameters):
        req = request_pb2.Request()
        req.requested_api = type_pb2.pt_planner
        for stop_point_id, access_duration in origins.items():
            location = req.journeys.origin.add()
            location.place = stop_point_id
            location.access_duration = access_duration

        for stop_point_id, access_duration in destinations.items():
            location = req.journeys.destination.add()
            location.place = stop_point_id
            location.access_duration = access_duration

        req.journeys.datetimes.append(datetime)
        req.journeys.clockwise = clockwise
        req.journeys.realtime_level = utils.realtime_level_to_pbf(journey_parameters.realtime_level)
        req.journeys.max_duration = journey_parameters.max_duration
        req.journeys.max_transfers = journey_parameters.max_transfers
        req.journeys.wheelchair = journey_parameters.wheelchair
        if journey_parameters.max_extra_second_pass:
            req.journeys.max_extra_second_pass = journey_parameters.max_extra_second_pass

        for uri in journey_parameters.forbidden_uris:
            req.journeys.forbidden_uris.append(uri)

        if journey_parameters.direct_path_duration is not None:
            req.journeys.direct_path_duration = journey_parameters.direct_path_duration

        return self.instance.send_and_receive(req)
コード例 #3
0
ファイル: planner.py プロジェクト: kinnou02/navitia-1
    def journeys(self, origins, destinations, datetime, clockwise,
                 journey_parameters, bike_in_pt):
        req = request_pb2.Request()
        req.requested_api = type_pb2.pt_planner
        for stop_point_id, access_duration in origins.items():
            location = req.journeys.origin.add()
            location.place = stop_point_id
            location.access_duration = access_duration

        for stop_point_id, access_duration in destinations.items():
            location = req.journeys.destination.add()
            location.place = stop_point_id
            location.access_duration = access_duration

        req.journeys.night_bus_filter_max_factor = journey_parameters.night_bus_filter_max_factor
        req.journeys.night_bus_filter_base_factor = journey_parameters.night_bus_filter_base_factor

        req.journeys.datetimes.append(datetime)
        req.journeys.clockwise = clockwise
        req.journeys.realtime_level = utils.realtime_level_to_pbf(
            journey_parameters.realtime_level)
        req.journeys.max_duration = journey_parameters.max_duration
        req.journeys.max_transfers = journey_parameters.max_transfers
        req.journeys.wheelchair = journey_parameters.wheelchair
        if journey_parameters.max_extra_second_pass:
            req.journeys.max_extra_second_pass = journey_parameters.max_extra_second_pass

        for uri in journey_parameters.forbidden_uris:
            req.journeys.forbidden_uris.append(uri)

        for id in journey_parameters.allowed_id:
            req.journeys.allowed_id.append(id)

        if journey_parameters.direct_path_duration is not None:
            req.journeys.direct_path_duration = journey_parameters.direct_path_duration

        req.journeys.bike_in_pt = bike_in_pt

        if journey_parameters.min_nb_journeys:
            req.journeys.min_nb_journeys = journey_parameters.min_nb_journeys

        if journey_parameters.timeframe:
            req.journeys.timeframe_duration = int(journey_parameters.timeframe)

        if journey_parameters.depth:
            req.journeys.depth = journey_parameters.depth

        if journey_parameters.isochrone_center:
            req.journeys.isochrone_center.place = journey_parameters.isochrone_center
            req.journeys.isochrone_center.access_duration = 0
            req.requested_api = type_pb2.ISOCHRONE

        return self.instance.send_and_receive(req)
コード例 #4
0
    def _create_journeys_request(self, origins, destinations, datetime,
                                 clockwise, journey_parameters, bike_in_pt):
        req = request_pb2.Request()
        req.requested_api = type_pb2.pt_planner
        for stop_point_id, access_duration in origins.items():
            location = req.journeys.origin.add()
            location.place = stop_point_id
            location.access_duration = access_duration

        for stop_point_id, access_duration in destinations.items():
            location = req.journeys.destination.add()
            location.place = stop_point_id
            location.access_duration = access_duration

        req.journeys.night_bus_filter_max_factor = journey_parameters.night_bus_filter_max_factor
        req.journeys.night_bus_filter_base_factor = journey_parameters.night_bus_filter_base_factor

        req.journeys.datetimes.append(datetime)
        req.journeys.clockwise = clockwise
        req.journeys.realtime_level = utils.realtime_level_to_pbf(
            journey_parameters.realtime_level)
        req.journeys.max_duration = journey_parameters.max_duration
        req.journeys.max_transfers = journey_parameters.max_transfers
        req.journeys.wheelchair = journey_parameters.wheelchair
        if journey_parameters.max_extra_second_pass:
            req.journeys.max_extra_second_pass = journey_parameters.max_extra_second_pass

        for uri in journey_parameters.forbidden_uris:
            req.journeys.forbidden_uris.append(uri)

        for id in journey_parameters.allowed_id:
            req.journeys.allowed_id.append(id)

        if journey_parameters.direct_path_duration is not None:
            req.journeys.direct_path_duration = journey_parameters.direct_path_duration

        req.journeys.bike_in_pt = bike_in_pt

        if journey_parameters.min_nb_journeys:
            req.journeys.min_nb_journeys = journey_parameters.min_nb_journeys

        if journey_parameters.timeframe:
            req.journeys.timeframe_duration = int(journey_parameters.timeframe)

        if journey_parameters.depth:
            req.journeys.depth = journey_parameters.depth

        if journey_parameters.isochrone_center:
            req.journeys.isochrone_center.place = journey_parameters.isochrone_center
            req.journeys.isochrone_center.access_duration = 0
            req.requested_api = type_pb2.ISOCHRONE

        if journey_parameters.sn_params:
            sn_params_request = req.journeys.streetnetwork_params
            sn_params_request.origin_mode = journey_parameters.sn_params.origin_mode
            sn_params_request.destination_mode = journey_parameters.sn_params.destination_mode
            sn_params_request.walking_speed = journey_parameters.sn_params.walking_speed
            sn_params_request.bike_speed = journey_parameters.sn_params.bike_speed
            sn_params_request.car_speed = journey_parameters.sn_params.car_speed
            sn_params_request.bss_speed = journey_parameters.sn_params.bss_speed
            sn_params_request.car_no_park_speed = journey_parameters.sn_params.car_no_park_speed

        if journey_parameters.current_datetime:
            req._current_datetime = journey_parameters.current_datetime

        return req