| |
INAResultPtr pNATraversalResult; //directions agent
m_pNAContext->get_Result(&pNATraversalResult);
INATraversalResultQueryPtr pNATraversalResultQuery;
pNATraversalResultQuery = pNATraversalResult ;
IFeatureClassPtr pTraversalFClass;
pNATraversalResultQuery->get_FeatureClass(esriNETEdge,&pTraversalFClass);
IFeatureCursorPtr pFCursor;
IFeaturePtr pRteFeature;
pTraversalFClass->Search(NULL,TRUE,&pFCursor);
pFCursor->NextFeature(&pRteFeature);
IGeometryPtr geometryPtr;
double x, y;
CDoubleArray xMin;
CDoubleArray yMin;
xMin.SetSize(0,100);
yMin.SetSize(0,100);
IPointPtr pointPtr;
IPointCollectionPtr pPointPtr;
while(pRteFeature != NULL)
{
pRteFeature->get_Shape(&geometryPtr);
if(geometryPtr != NULL)
{
pPointPtr = (IPointCollectionPtr)geometryPtr;
pPointPtr->get_PointCount(&count);
for(i = 0; i < count;i++)
{
pPointPtr->get_Point(i, &pointPtr);
pointPtr->get_Y(&y);
pointPtr->get_X(&x);
yMin.Add(y);
xMin.Add(x);
}
}
}
pFCursor->NextFeature(&pRteFeature);
}
IIdentifyPtr pIdentify;
IArrayPtr pIDArray ;
IUnknownPtr pItem;
IIdentifyObjPtr pIdObj;
ILayerPtr pLayer;
INetworkLayerPtr pNetworkLayer(CLSID_NetworkLayer);
pNetworkLayer->putref_NetworkDataset(m_pNetworkDataset);
pLayer = pNetworkLayer;
pIdentify = pLayer ;
pIdentify->Identify(geometryPtr,&pIDArray);
if(pIDArray != NULL)
{
long countArray;
BSTR locationName;
pIDArray->get_Count(&countArray);
for(i =0 ; i < countArray ; i++)
{
pIDArray->get_Element(i,&pItem);
pIdObj = pItem ;
pIdObj->get_Name(&locationName);
AfxMessageBox(locationName);
}
} |