コード例 #1
0
        public void Test_GetNearestSegment()
        {
            var actualResult = testCandidate.GetNearestSegment(point, referenceDataCategoryList);

            Assert.IsNotNull(actualResult);
            Assert.IsNotNull(actualResult.First().Item1);
            Assert.IsNotNull(actualResult.First().Item2);
        }
コード例 #2
0
        /// <summary>
        /// Get the nearest street for operational object.
        /// </summary>
        /// <param name="operationalObjectPoint">Operational object unique identifier.</param>
        /// <returns>Nearest street and the intersection point.</returns>
        public List <Tuple <NetworkLinkDTO, SqlGeometry> > GetNearestSegment(DbGeometry operationalObjectPoint)
        {
            using (loggingHelper.RMTraceManager.StartTrace("Business.GetNearestSegment"))
            {
                string methodName = typeof(NetworkManagerBusinessService) + "." + nameof(GetNearestSegment);
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

                List <string> categoryNamesNameValuePairs = new List <string>
                {
                    ReferenceDataCategoryNames.AccessLinkParameters,
                };

                List <string> categoryNamesSimpleLists = new List <string>
                {
                    ReferenceDataCategoryNames.NetworkLinkType
                };

                var referenceDataCategoryList =
                    networkManagerIntegrationService.GetReferenceDataNameValuePairs(categoryNamesNameValuePairs).Result;

                referenceDataCategoryList.AddRange(
                    networkManagerIntegrationService.GetReferenceDataSimpleLists(categoryNamesSimpleLists).Result);

                List <Tuple <NetworkLinkDataDTO, SqlGeometry> > nearestSegmentList = streetNetworkDataService.GetNearestSegment(operationalObjectPoint, referenceDataCategoryList);

                NetworkLinkDTO networkLinkDTO = null;

                List <Tuple <NetworkLinkDTO, SqlGeometry> > nearestSegment = new List <Tuple <NetworkLinkDTO, SqlGeometry> >();
                if (nearestSegmentList != null)
                {
                    foreach (var item in nearestSegmentList)
                    {
                        networkLinkDTO = new NetworkLinkDTO()
                        {
                            Id                   = item.Item1.ID,
                            LinkGeometry         = item.Item1.LinkGeometry,
                            NetworkLinkType_GUID = item.Item1.NetworkLinkTypeGUID,
                            TOID                 = item.Item1.TOID
                        };

                        nearestSegment.Add(new Tuple <NetworkLinkDTO, SqlGeometry>(networkLinkDTO, item.Item2));
                    }
                }

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);

                return(nearestSegment);
            }
        }