/// <summary>
/// 线性参考代码,作者:刘宇
/// </summary>
/// <param name="_pRouteFC"></param>
/// <param name="_pPKName"></param>
/// <param name="_pID"></param>
/// <param name="_pFrom"></param>
/// <param name="_pTo"></param>
/// <returns></returns>
IPolyline FindRoutByMeasure(IFeatureClass _pRouteFC, string _pPKName,object _pID, double _pFrom, double _pTo)
{
IDataset pDataset = (IDataset)_pRouteFC;
IName pName = pDataset.FullName;
IRouteLocatorName pRouteLocatorName = new RouteMeasureLocatorNameClass();
pRouteLocatorName.RouteFeatureClassName = pName;
pRouteLocatorName.RouteIDFieldName = _pPKName;
pRouteLocatorName.RouteMeasureUnit = esriUnits.esriFeet;
pName = (IName)pRouteLocatorName;
IRouteLocator2 pRouteLocator = (IRouteLocator2)pName.Open();
IRouteLocation pRouteLoc = new RouteMeasureLineLocationClass();
pRouteLoc.MeasureUnit = esriUnits.esriFeet;
pRouteLoc.RouteID = _pID;
IRouteMeasureLineLocation rMLineLoc = (IRouteMeasureLineLocation)pRouteLoc;
rMLineLoc.FromMeasure = _pFrom;
rMLineLoc.ToMeasure = _pTo;
IGeometry pGeo = null;
esriLocatingError locError;
pRouteLocator.Locate(pRouteLoc , out pGeo, out locError);
return pGeo as IPolyline;
}