Получите «Шкалу измерения» функций ArcGIS - PullRequest
0 голосов
/ 23 октября 2018

У меня есть набор классов объектов для перепроектирования, и некоторые из них имеют меры.Чтобы воспроизвести измерения в перепроецированных объектах, мне нужно найти шкалу измерений объектов перед проецированием (некоторые классы объектов имеют измерения в километрах).

Когда я пытаюсь измерить масштаб, он недостаточно точен:

public static double measuresScaleFactor(IFeature pFeat, int iShpLenFld, out string sError)
{
    // Get the scale factor of the feature measures assuming it has measures assigned
    sError = "";
    double dScale = 1;
    IMSegmentation4 pSeg = null;
    double dMax;
    double dLength;

    try
    {
        if (pFeat.Shape != null && pFeat.Shape.IsEmpty == false )
        {
            pSeg = (IMSegmentation4)pFeat.Shape;
            dMax = pSeg.MMax;
            dLength = (double)pFeat.Value[iShpLenFld];
            dScale = dMax / dLength;
        }

        return dScale;
    }
    catch (Exception ex)
    {
        System.Diagnostics.StackTrace pStack = new System.Diagnostics.StackTrace(ex, true);
        System.Diagnostics.StackFrame pFrame = pStack.GetFrame(pStack.FrameCount - 1);
        int iLineNo = pFrame.GetFileLineNumber();
        sError = "Error: measuresScaleFactor; Line: " + iLineNo + " \r\n" + ex.Message;
        return dScale;
    }
}

Для пробного запуска значение dLength составляло 745 м, а dMax было 0,741 км.Также могут возникнуть проблемы, когда pFeat является мультиполилиной, а меры дублированы в отдельных ее частях.

Может кто-нибудь сказать мне, есть ли интерфейс ArcSbjects с информацией о сегментации, который содержит (точное) значение масштабного коэффициента?

Спасибо,

J

...