// Add Barrier private void AddBarrier(IPoint objPoint) { // project to Routing projection objPoint.Project(m_objSpatialReference); // add point from shape to Barriers ISMRouterPoint objSMPoint = null; objSMPoint = new SMRouterPointClass(); objSMPoint.X = objPoint.X; objSMPoint.Y = objPoint.Y; ISMNetBarrier objBarrier = null; objBarrier = new SMNetBarrierClass(); objBarrier.BarrierID = m_nBarriersCount; objBarrier.Point = objSMPoint as SMRouterPointClass; try { m_objRouter.Barriers.Add(objBarrier as SMNetBarrier); } catch (Exception ex) { m_nBarriersIgnoredCount = m_nBarriersIgnoredCount + 1; } m_nBarriersCount = m_nBarriersCount + 1; }
// Creates Stop by Stop Point, Index and Description and adds it to Stops collection private void CreateStop(SMRouter objRouter, string strAddress, string strCity, string strState, string strCode, SMStopsCollection objStopsCol, int nID) { // geocode point IPoint objPoint = new PointClass(); objPoint = GeocodeAddress(strAddress, strCity, strState, strCode); if (objPoint.IsEmpty) throw new Exception("Cannot geocode address."); // project point objPoint.Project(m_objSpatialReference); // create and initialize router point SMRouterPoint objRouterPoint = null; objRouterPoint = new SMRouterPointClass(); objRouterPoint.X = objPoint.X; objRouterPoint.Y = objPoint.Y; // create flag ISMFlagCreator2 objFlagCreator2 = null; objFlagCreator2 = objRouter.FlagCreator as ISMFlagCreator2; if (objFlagCreator2 != null) objFlagCreator2.SearchTolerance = 5; SMFlag objFlag = null; objFlag = objRouter.FlagCreator.CreateFlag(objRouterPoint); // create and initialize stop SMStop objStop = null; objStop = new SMStop(); objStop.StopID = nID; objStop.Duration = 0; objStop.Flag = objFlag; objStop.Description = GetAddressString(strAddress, strCity, strState, strCode); objStopsCol.Add(objStop); }