コード例 #1
0
        /// <summary>
        /// Get the nearest street for operational object.
        /// </summary>
        /// <param name="operationalObjectPoint">The operational object unique identifier.</param>
        /// <param name="streetName">The street name.</param>
        /// <returns>The nearest street and the intersection point.</returns>
        public Tuple <NetworkLinkDTO, SqlGeometry> GetNearestNamedRoad(DbGeometry operationalObjectPoint, string streetName)
        {
            using (loggingHelper.RMTraceManager.StartTrace("Business.GetNearestNamedRoad"))
            {
                string methodName = typeof(NetworkManagerBusinessService) + "." + nameof(GetNearestNamedRoad);
                loggingHelper.LogMethodEntry(methodName, priority, entryEventId);

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

                var referenceDataCategoryList = networkManagerIntegrationService.GetReferenceDataSimpleLists(categoryNamesSimpleLists).Result;

                Tuple <NetworkLinkDataDTO, SqlGeometry> getNearestNamedRoad = streetNetworkDataService.GetNearestNamedRoad(operationalObjectPoint, streetName, referenceDataCategoryList);
                NetworkLinkDTO networkLink = null;

                if (getNearestNamedRoad != null && getNearestNamedRoad.Item1 != null)
                {
                    networkLink = new NetworkLinkDTO()
                    {
                        Id                   = getNearestNamedRoad.Item1.ID,
                        LinkGeometry         = getNearestNamedRoad.Item1.LinkGeometry,
                        NetworkLinkType_GUID = getNearestNamedRoad.Item1.NetworkLinkTypeGUID,
                        TOID                 = getNearestNamedRoad.Item1.TOID
                    };
                }

                Tuple <NetworkLinkDTO, SqlGeometry> nearestRoad = new Tuple <NetworkLinkDTO, SqlGeometry>(networkLink, getNearestNamedRoad.Item2);

                loggingHelper.LogMethodExit(methodName, priority, exitEventId);
                return(nearestRoad);
            }
        }
コード例 #2
0
        public void Test_GetNearestNamedRoad()
        {
            var actualResult = testCandidate.GetNearestNamedRoad(point, "XYZ1", referenceDataCategoryList);

            Assert.IsNotNull(actualResult);
            Assert.IsNotNull(actualResult.Item1);
            Assert.IsNotNull(actualResult.Item2);
        }