1. ВНИМАНИЕ! В течении пары дней +- будет переезд форума на более защищённый сервер. Возможны периодические перебои в работе.

Как выделить часть площади в МПолигоне, занятой другим объектом?

Тема в разделе "Map 3D", создана пользователем AdrasMan, 8 ноя 2019.

  1. AdrasMan

    AdrasMan Форумчанин

    В общем, сам вопрос в названии темы. Более подробно примерно так:
    Имею озеро. Формирую МПолигон по береговой линии. Но в озере есть остров. Он полностью закрывается штриховкой МПолигона. Как вычленить этот остров? Ведь площадь зеркала воды должна быть меньше как раз на величину площади острова.
    Может как-то сумбурно задал вопрос, извиняюсь. Тороплюсь.
     
  2. trir

    trir Форумчанин

    при создании полигона - указывай не только внешний контур, но и дырки

    Код:
            public MPolygon MakePolygon(Geometry.TPolygon wp)
            {
                MPolygon mpoly = new MPolygon();
                MPolygonLoopCollection acPolyColl = ConvertPolygon(wp);
                foreach (MPolygonLoop loop in acPolyColl)
                {
                    mpoly.AppendMPolygonLoop(loop, false, 0);
                }
                mpoly.PatternScale = 50;
                mpoly.PatternSpace = 50;
                mpoly.SetPattern(HatchPatternType.PreDefined, "ANSI37");
                return mpoly;
            }
    https://github.com/triroakenshield/RosReestrImpLib/blob/master/RosReestrImp/MyCommands.cs

    Редактировать FDO-геометрию гораздо удобнее!
     
  3. -=13=-

    -=13=- Форумчанин

    В свойствах штриховки можно добавить границы контура острова и он будет из неё исключён.

    Штриховка.png
     
    Qvinto нравится это.
  4. AdrasMan

    AdrasMan Форумчанин

    Спасибо всем откликнувшимся.
    Это в отношении примитива "штриховка". Пробовал это сделать с МПолигоном - не вышло, или что-то не так делал.

    А так получилось. У самого ума почему-то нехватило выделить еще и дырки, хотя мысль пробегала.

    Теперь возник вопрос: почему-то МПолигон не описал всю полилинию, то есть он сформировался как-то неточно, как-то вот так, как на скрине:
    Скрин.jpg
    Может есть где-то настройки, в которых можно что-то изменить?
     
  5. trir

    trir Форумчанин

    может самопересечения в линии
     
  6. -=13=-

    -=13=- Форумчанин

    Двойные точки в полилинии, как вариант.
    И полилиния 2D?
     
  7. AdrasMan

    AdrasMan Форумчанин

    Полилиния 2D. Двойные точки - фиг знает. Найти их есть инструмент?
    Не увидел.
    В общем бросил эту затею. Надобность отпала.
     
  8. АлексЮстасу

    АлексЮстасу Форумчанин

    Двойные точки проще удалить PL-VXOPT из PLTools.
    Так же можно и Корректировка (Drawing cleanup), _MAPCLEAN в Map 3D.
    Последним еще много что можно найти/исправить.
     
    AdrasMan нравится это.
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление