def match(self, feature, gps_precision=None, profile='mapbox.driving'):
        """Match features to OpenStreetMap data."""
        profile = self._validate_profile(profile)

        feature = self._validate_feature(feature)
        geojson_line_feature = json.dumps(feature)

        uri = URITemplate(self.baseuri + '/{profile}.json').expand(
            profile=profile)

        params = None
        if gps_precision:
            params = {'gps_precision': gps_precision}

        res = self.session.post(uri, data=geojson_line_feature, params=params,
                                headers={'Content-Type': 'application/json'})
        self.handle_http_error(res)

        def geojson():
            return res.json()

        res.geojson = geojson
        return res
Match features to OpenStreetMap data.