public IList <T> InverseGeocodeMultipleRoute <T>(GeoCoordinate coordonnees, int rayonRecherche, IEnumerable <int> ideRTSs) where T : IRtssc, new() { // conversion coordonnées gps vers lambert LambertCoordinate lambert = GpsHelper.ConvertNAD83ToLambertMtq(coordonnees.Latitude, coordonnees.Longitude); var request = new GeocoderPointsInverseRequete(); request.ListeInformation = ideRTSs.Select( ideRTS => new InfoGeocoderPointInverse { CoordonneeX = lambert.X, CoordonneeY = lambert.Y, RayonRecherche = rayonRecherche, IdentifiantTheme = 207, IdentifiantSousRoute = Convert.ToInt32(ideRTS), DateActivite = DateTime.Today, CodeEmplacement = "" }).ToArray(); GeocoderPointsInverseReponse response = this.GeocoderPointsInverse(request); return(response.ListeInformation .OrderBy(item => item.DistanceTrace) .Select( item => new T { Chainage = item.Chainage, Route = item.NumeroRoute, Section = item.NumeroSection, SousRoute = item.NumeroSousRoute, Troncon = item.NumeroTroncon, Ide = Convert.ToInt32(item.IdentifiantSousRoute) }) .ToList()); }
private IList <Tuple <double, Rtssc> > InverseGeocodeMultipleRouteWithDistance(LambertCoordinate lambert, int rayonRecherche, IEnumerable <int> ideRTSs) { var request = new GeocoderPointsInverseRequete(); request.ListeInformation = ideRTSs.Select( ideRTS => new InfoGeocoderPointInverse { CoordonneeX = lambert.X, CoordonneeY = lambert.Y, RayonRecherche = rayonRecherche, IdentifiantTheme = 207, IdentifiantSousRoute = ideRTS, DateActivite = DateTime.Today, CodeEmplacement = "" }).ToArray(); GeocoderPointsInverseReponse response = this.GeocoderPointsInverse(request); return(response.ListeInformation .OrderBy(item => item.DistanceTrace) .Select(item => Tuple.Create( item.DistanceTrace, RtsscHelper.GetRtsscFromIde(Convert.ToInt32(item.IdentifiantSousRoute), item.Chainage))) .ToList()); }