// Geocodes user data and adds Start and finish private void AddStops(SMStopsCollection objStopsCol) { // create and add "From" stop to stops collection CreateStop(m_objRouter, m_txtStartAddress.Text, m_txtStartCity.Text, m_txtStartState.Text, m_txtStartCode.Text, objStopsCol, 0); // create and add "To" stop to stops collection CreateStop(m_objRouter, m_txtFinishAddress.Text, m_txtFinishCity.Text, m_txtFinishState.Text, m_txtFinishCode.Text, objStopsCol, 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); }