Добро пожаловать!

Войдите или зарегистрируйтесь сейчас!

Войти

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

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

  1. AdrasMan

    Форумчанин

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

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.253
    Симпатии:
    931
    Адрес:
    gnomtrir@mail.ru
    при создании полигона - указывай не только внешний контур, но и дырки

    Код:
            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-геометрию гораздо удобнее!
     
    #2
  3. -=13=-

    Форумчанин

    Регистрация:
    26 июн 2013
    Сообщения:
    2.254
    Симпатии:
    3.320
    Адрес:
    Окраины Нерезиновска на немцеопасном направлении
    В свойствах штриховки можно добавить границы контура острова и он будет из неё исключён.

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

    Форумчанин

    Регистрация:
    4 дек 2013
    Сообщения:
    965
    Симпатии:
    871
    Адрес:
    город Воинской Славы Белгород
    Спасибо всем откликнувшимся.
    Это в отношении примитива "штриховка". Пробовал это сделать с МПолигоном - не вышло, или что-то не так делал.

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

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

    Форумчанин

    Регистрация:
    25 ноя 2014
    Сообщения:
    3.253
    Симпатии:
    931
    Адрес:
    gnomtrir@mail.ru
    может самопересечения в линии
     
    #5
  6. -=13=-

    Форумчанин

    Регистрация:
    26 июн 2013
    Сообщения:
    2.254
    Симпатии:
    3.320
    Адрес:
    Окраины Нерезиновска на немцеопасном направлении
    Двойные точки в полилинии, как вариант.
    И полилиния 2D?
     
    #6
  7. AdrasMan

    Форумчанин

    Регистрация:
    4 дек 2013
    Сообщения:
    965
    Симпатии:
    871
    Адрес:
    город Воинской Славы Белгород
    Полилиния 2D. Двойные точки - фиг знает. Найти их есть инструмент?
    Не увидел.
    В общем бросил эту затею. Надобность отпала.
     
    #7
  8. АлексЮстасу

    Форумчанин

    Регистрация:
    28 май 2012
    Сообщения:
    1.868
    Симпатии:
    668
    Адрес:
    Маськва
    Двойные точки проще удалить PL-VXOPT из PLTools.
    Так же можно и Корректировка (Drawing cleanup), _MAPCLEAN в Map 3D.
    Последним еще много что можно найти/исправить.
     
    #8
    AdrasMan нравится это.

Поделиться этой страницей

  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление