RU2643431C2 - Method and server of curve simplification - Google Patents

Method and server of curve simplification Download PDF

Info

Publication number
RU2643431C2
RU2643431C2 RU2015137418A RU2015137418A RU2643431C2 RU 2643431 C2 RU2643431 C2 RU 2643431C2 RU 2015137418 A RU2015137418 A RU 2015137418A RU 2015137418 A RU2015137418 A RU 2015137418A RU 2643431 C2 RU2643431 C2 RU 2643431C2
Authority
RU
Russia
Prior art keywords
curve
simplicated
algorithm
homogeneous
final
Prior art date
Application number
RU2015137418A
Other languages
Russian (ru)
Other versions
RU2015137418A (en
Inventor
Сергей Сергеевич Константинов
Антон Васильевич КОРЗУНОВ
Original Assignee
Общество С Ограниченной Ответственностью "Яндекс"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Общество С Ограниченной Ответственностью "Яндекс" filed Critical Общество С Ограниченной Ответственностью "Яндекс"
Priority to RU2015137418A priority Critical patent/RU2643431C2/en
Priority to PCT/IB2016/050566 priority patent/WO2017037547A1/en
Publication of RU2015137418A publication Critical patent/RU2015137418A/en
Application granted granted Critical
Publication of RU2643431C2 publication Critical patent/RU2643431C2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

FIELD: data processing.
SUBSTANCE: invention related to methods and systems of curve simplification. In the method for simplifying the curve after obtaining the instruction for curve simplification, the first previously defined simplification algorithm is executed in order to create the first simplified curve and shape parameters for the first simplified curve. Set of homogeneous segments of the first simplified curve is determined on the basis of shape parameters. Each homogeneous segment is simplified using the corresponding second simplification algorithm in order to create the resulting simplified curve. Second simplification algorithm is selected from a plurality of predetermined second simplification algorithms independently for each homogeneous segment based on the shape parameters of the corresponding homogeneous segment.
EFFECT: technical result consists in higher speed of curve simplification.
28 cl, 5 dwg

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

[0001] Настоящее техническое решение относится к способам и системам симплификации кривой.[0001] The present technical solution relates to methods and systems for curve simplification.

Уровень техникиState of the art

[0002] Симплификация кривых включает в себя выборочное удаление вершин на протяжении кривой для удаления ненужной информации. Задачей алгоритмов симплификации кривых (также известных как алгоритмы симплификации линий) обычно является сохранение внешнего вида или формы кривой, хотя число ее точек и уменьшается, при этом сводя к минимуму погрешность в определении местоположения.[0002] Simplification of the curves includes the selective removal of vertices along the curve to remove unnecessary information. The goal of curve simulation algorithms (also known as line simulation algorithms) is usually to preserve the appearance or shape of the curve, although the number of its points decreases, while minimizing the error in determining the location.

[0003] В компьютерных технологиях существует растущая потребность в способах симплификации кривых. Например, симплификация кривых (также известная как симплификация линий) является важной функцией в картографии и географических информационных системах (GIS), и широко используется в коммерческих пакетах программного обеспечения GIS. Множество мобильных устройств (например, смартфонов) имеют картографическое приложение, которое позволяет пользователю просматривать различные географические области для конкретных целей, например, чтобы проложить путь в конкретную область, оценить уровень загруженности конкретных дорог или найти расположение конкретных магазинов. Пользователь рассматривает различные области в картографическом приложении и приближает или удаляет изображение, чтобы видеть карту в разных масштабах. Такие функции требуют от систем картографической генерализации упрощения карт, чтобы отрисовать географические характеристики в высоком разрешении и с хорошим разрешением на выходе.[0003] In computer technology, there is a growing need for ways to simulate curves. For example, curve simulations (also known as line simulations) are an important feature in mapping and geographic information systems (GIS), and are widely used in commercial GIS software packages. Many mobile devices (for example, smartphones) have a mapping application that allows the user to view various geographical areas for specific purposes, for example, to pave the way to a specific area, assess the level of traffic on specific roads, or find the location of specific stores. The user views various areas in the map application and zooms in or out to see the map at different scales. Such functions require cartographic generalization systems to simplify maps in order to render geographic characteristics in high resolution and with good resolution at the output.

[0004] На цифровых картах одно- или двумерные объекты обычно представлены как ломаные линии (полилинии) или как многоугольники (полигоны). Ломаная линия - это соединенная последовательность сегментов в виде прямых линий. Многоугольник - частный случай ломаной линии, которая начинается и заканчивается в одной и той же точке. Таким образом, если объект в реальном мире искривлен, это передается последовательностью точек и сегментов в виде прямых линий, соединяющих эти точки.[0004] On digital maps, one- or two-dimensional objects are usually represented as broken lines (polylines) or as polygons (polygons). A polyline is a connected sequence of segments in the form of straight lines. A polygon is a special case of a broken line that begins and ends at the same point. Thus, if an object in the real world is curved, it is transmitted by a sequence of points and segments in the form of straight lines connecting these points.

Во внутреннем представлении карты одномерный объект, или одномерная граница двумерного объекта обычно представлены списком своих точек.In the internal representation of a map, a one-dimensional object, or a one-dimensional boundary of a two-dimensional object, is usually represented by a list of its points.

[0005] Часто при использовании данных цифровых карт производитель или пользователь данных обнаруживает, что данные слишком точны, а число точек гораздо больше, чем необходимо для конкретной цели. Например, это может произойти, когда данные, изначально собранные для использования при больших (приближенных) масштабах, используются при небольших (удаленных) масштабах. Если карта изображена с использованием более точных данных, присутствует гораздо больше точек, чем необходимо, что делает файл данных гораздо больше, а время обработки - гораздо дольше, чем необходимо. В такой ситуации преимуществом будет генерализовать ломаные линии на карте таким образом, что они станут не более точными, чем это необходимо для конкретной цели.[0005] Often when using digital map data, the manufacturer or user of the data discovers that the data is too accurate and the number of points is much larger than necessary for a specific purpose. For example, this can happen when data originally collected for use at large (approximate) scales is used at small (remote) scales. If the map is drawn using more accurate data, there are much more points than necessary, which makes the data file much longer, and the processing time is much longer than necessary. In such a situation, it will be an advantage to generalize the broken lines on the map so that they become no more accurate than is necessary for a specific purpose.

[0006] Алгоритмы симплификации линий являются важным компонентом таких систем генерализаций карт. Алгоритмы симплификации линий также используются в широком спектре областей, относящихся к графике, например, в видеоиграх (например, чтобы показать такой объект, как замок, пользователю), фоторедакторах, видеоредакторах, для уменьшения размера изображения, для загрузки на электронное устройство или с него, для хранения и так далее. Графы, насыщенные данными, часто встречаются в областях инженерии, включая стереографическое 3D и компьютерную мультипликацию, где перенасыщение данными может вызвать трудности при управлении в интерактивном режиме. Симплификация линий может также быть использована, например, при преобразовании исходных данных, чтобы уменьшить их объем для более компактного хранения, и для объединения разномасштабных баз данных.[0006] Line simulations algorithms are an important component of such card generalization systems. Line simulations are also used in a wide range of areas related to graphics, for example, in video games (for example, to show an object such as a lock to the user), photo editors, video editors, to reduce the size of an image, to download to or from an electronic device, for storage and so on. Data-rich graphs are often found in engineering fields, including stereographic 3D and computer animation, where data oversaturation can cause difficulties when managing interactively. Line simulations can also be used, for example, when transforming source data to reduce their volume for more compact storage, and to combine multi-scale databases.

[0007] Было разработано множество способов симплификации линий. Одним из наиболее широко используемых алгоритмов симплификации линий является алгоритм Дугласа-Пекера (также известный как алгоритм Рамера-Дугласа-Пекера, или алгоритм РДП (RDP)), (Douglas, D.Н. and Peucker, Т.K., Canadian Cartographer, vol. 10, pp. 112-22, 1973). Примеры других широко известных алгоритмов перечислены ниже: алгоритм Лэнга (Lang, Т., Geographical Magazine, vol. 42, pp. 50-51, 1969); Рейманна и Уиткема (Reumann, K. and Witkam, А.Р.М., Proc. Int. Computing Symp., pp. 467-472, North-Holland Publishing Company, Amsterdam, 1974); Висвалингема и Уайетта (Visvalingam, M. and Whyatt, J.D., The Cartographic Journal, vol. 30, pp. 46-51, 1993); Чжао и Заальфельда (алгоритм «подгонки рукавов» ("sleeve-fitting" algorithm; Zhao, Z. and Saalfeld, A., Autocarto 13, ACSM/ASPRS'97 Technical Papers, Seattle, Washington, vol. 5, pp. 214-223, 1997)); и Опхайма (Opheim, H., GeoProcessing, vol. 2, pp. 33-40). Однако у всех общеизвестных способов симплификации линий имеются значительные недостатки. Настоящие способы и системы для эффективной обработки и отрисовки симплифицированных линий неудовлетворительны.[0007] Many methods have been developed to simulate lines. One of the most widely used line simulations is the Douglas-Pecker algorithm (also known as the Ramer-Douglas-Pecker algorithm, or the RDP algorithm), (Douglas, D.N. and Peucker, T.K., Canadian Cartographer, vol. 10, pp. 112-22, 1973). Examples of other well-known algorithms are listed below: Lang's algorithm (Lang, T., Geographical Magazine, vol. 42, pp. 50-51, 1969); Reimann and Whitkam (Reumann, K. and Witkam, A.R.M., Proc. Int. Computing Symp., Pp. 467-472, North-Holland Publishing Company, Amsterdam, 1974); Wisalingem and Wyatt (Visvalingam, M. and Whyatt, J.D., The Cartographic Journal, vol. 30, pp. 46-51, 1993); Zhao and Saalfeld (“sleeve-fitting” algorithm; Zhao, Z. and Saalfeld, A., Autocarto 13, ACSM / ASPRS'97 Technical Papers, Seattle, Washington, vol. 5, pp. 214- 223, 1997)); and Opheim (Opheim, H., GeoProcessing, vol. 2, pp. 33-40). However, all well-known methods for simplification of lines have significant disadvantages. The present methods and systems for efficient processing and rendering of simplicated lines are unsatisfactory.

[0008] Бальбоа и Лопез (Balboa, J.L.G. and Lopez, F.J.A., Pattern Recognition 42 (2009), pp. 2150-59) описывают автоматический способ деления линий на сегменты на основе распознавания изогнутого шаблона. Изогнутый шаблон измеряется с помощью полезной площади, как описано в алгоритме Висвалингема-Уайетта. Сегменты определяются с помощью применения алгоритма Дугласа-Пекера к форме профиля линии. Описанный способ деления на сегменты включает в себя три основных этапа: а) определение, с помощью алгоритма Висвалингема-Уайетта, полезной площади в каждой точке кривой; б) получение формы профиля кривой как суммы полезных площадей по всей линии; и в) выбор критических точек с помощью применения алгоритма Дугласа-Пекера к форме профиля линии. Автоматическое решение для деления на сегменты прилагается.[0008] Balboa and Lopez (Balboa, J.L.G. and Lopez, F.J.A., Pattern Recognition 42 (2009), pp. 2150-59) describe an automatic way of dividing lines into segments based on recognition of a curved pattern. The curved pattern is measured using the usable area, as described in the Wiswellingham-Wyatt algorithm. Segments are determined by applying the Douglas-Pecker algorithm to the line profile shape. The described method of dividing into segments includes three main stages: a) determination, using the Wiswalingem-Wyatt algorithm, of usable area at each point of the curve; b) obtaining the shape of the profile of the curve as the sum of usable areas along the entire line; and c) the selection of critical points by applying the Douglas-Pecker algorithm to the shape of the line profile. An automatic segmentation solution is included.

[0009] Парк и Ю (Park, W. and Yu, K., Pattern Recognition Letters 32 (2011), pp. 1267-73) описывают сегментацию и симплификацию линейного объекта на основе количественного анализа характеристик формы данного сегмента линии с использованием множества алгоритмов симплификации для определения того, какой из них дает наиболее высокую производительность для данного сегмента линии. Их способ включает в себя две главные части: 1) анализ описаний параметров сегментов линии, которые дают особенно высокую производительность для каждого проверенного алгоритма симплификации; и 2) сегментацию данных линии на однородные сегменты с использованием способов геометрического анализа, и симплификация сегментов с использованием алгоритма, определенного в процессе сегментации, т.е. алгоритма, который показал наиболее высокую производительность.[0009] Park and Yu (Park, W. and Yu, K., Pattern Recognition Letters 32 (2011), pp. 1267-73) describe the segmentation and simplicity of a linear object based on a quantitative analysis of the shape characteristics of a given line segment using a variety of algorithms Simplifications to determine which one gives the highest performance for a given line segment. Their method includes two main parts: 1) analysis of descriptions of the parameters of the line segments, which give a particularly high performance for each tested simulation algorithm; and 2) segmentation of the line data into homogeneous segments using geometric analysis methods, and segmentation using the algorithm determined in the segmentation process, i.e. the algorithm that showed the highest performance.

Раскрытие изобретенияDisclosure of invention

[0010] Задачей предлагаемого технического решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.[0010] The objective of the proposed technical solution is to eliminate at least some of the disadvantages inherent in the prior art.

[0011] Первым объектом настоящего технического решения является способ симплификации кривой. Способ выполняется на компьютерном устройстве, например, на сервере или на клиентском устройстве. Способ включает в себя этапы: получения инструкций на симплификацию кривой; выполнения первого алгоритма симплификации, причем первый алгоритм симплификации был предварительно определен, а его выполнение симплифицирует кривую, таким образом создавая первую симплифицированную кривую и параметры формы первой симплифицированной кривой; определения множества однородных сегментов первой симплифицированной кривой на основе параметров формы; и симплификации каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, причем соответствующий второй алгоритм симплификации выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; таким образом выполняют создание итоговой симплифицированной кривой.[0011] A first object of the present technical solution is a curve simplicity method. The method is performed on a computer device, for example, on a server or on a client device. The method includes the steps of: receiving instructions for the curve simplicity; execution of the first simplification algorithm, the first simification algorithm being predefined, and its implementation simplicates the curve, thus creating the first simplicated curve and the shape parameters of the first simplicated curve; determining a plurality of homogeneous segments of the first simplicated curve based on shape parameters; and simplicating each homogeneous segment using the corresponding second simplicity algorithm, the corresponding second simplicity algorithm being selected from a plurality of predefined second simplicity algorithms, independently for each homogeneous segment based on the shape parameters of the corresponding homogeneous segment; in this way, the creation of the final simplicized curve is performed.

[0012] В некоторых вариантах осуществления настоящего технического решения первый алгоритм симплификации выбирается из алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (sleeve-fitting (SF)), функции представления (turning function (TF)), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния. Аналогично, в некоторых вариантах осуществления настоящего технического решения множество предварительно определенных вторых алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точка), радиальное расстояние, алгоритм перпендикулярного расстояния.[0012] In some embodiments of the present technical solution, the first simplification algorithm is selected from the algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao-Saalfeld, Lang, Reimann-Witkhem, Opheim, Rangayyan, RDP variant, “fit” algorithm sleeves ”(sleeve-fitting (SF)), presentation functions (turning function (TF)), point numbering algorithm (N-th point), radial distance, perpendicular distance algorithm. Similarly, in some embodiments of the present technical solution, a plurality of predetermined second simplification algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP variant, sleeve-fitting (SF) algorithm, turning function (TF), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm.

[0013] В некоторых вариантах осуществления настоящего технического решения способ дополнительно включает в себя следующие этапы: определение для каждого однородного сегмента симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем эти параметры были созданы соответствующим вторым алгоритмом симплификации; и симплификацию каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов симплификации независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом выполняют создание второй итоговой симплифицированной кривой.[0013] In some embodiments of the present technical solution, the method further includes the following steps: determining, for each homogeneous segment of the simplicated curve, a second set of second homogeneous segments of the simplicated homogeneous segment based on the shape parameters of the simplicated homogeneous segment, these parameters being created by the corresponding second simification algorithm ; and simplicating every second homogeneous segment using the corresponding third simplicity algorithm, which is selected from a plurality of predefined third simplicity algorithms independently for each second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; in this way, a second final simplicated curve is created.

[0014] В некоторых вариантах осуществления настоящего технического решения множество предварительно определенных третьих алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.[0014] In some embodiments of the present technical solution, a plurality of predetermined third simplification algorithms includes one or more of the following algorithms: Ramer-Douglas-Peker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim , Rangayyan, RDP version, sleeve-fitting (SF) algorithm, turning function (TF), point numbering algorithm (N-th point), radial distance, perpendicular distance algorithm.

[0015] Параметры формы различаются в зависимости от использованных алгоритмов симплификации. В некоторых вариантах осуществления настоящего технического решения параметры формы включают одно или несколько из: длина и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки, комплексность, монотонность, длина между точками, средняя длина сегмента и плотность точек. Множество однородных сегментов также различаются в зависимости от использованных алгоритмов симплификации и параметров формы. В некоторых вариантах осуществления настоящего технического решения однородные сегменты определяются с использованием одного или нескольких пунктов из списка: способ удаления точек, способ на основе измерений, способ критических точек, способ геометрического анализа, способ на основе частоты и способ на основе базы знаний.[0015] The shape parameters vary depending on the simulation algorithms used. In some embodiments of the present technical solution, the shape parameters include one or more of: length and angle of inclination, curvature, distance of heights, elevation difference, effective area for a point, complexity, monotony, length between points, average segment length and density of points. Many homogeneous segments also vary depending on the simulations used and the shape parameters. In some embodiments of the present technical solution, homogeneous segments are determined using one or more items from the list: a method for removing points, a method based on measurements, a method for critical points, a method for geometric analysis, a method based on frequency and a method based on a knowledge base.

[0016] В некоторых вариантах осуществления настоящего технического решения, когда компьютерное устройство является сервером, способ дополнительно включает в себя этап отправки на клиентское устройство инструкции на отображение итоговой симплифицированной кривой (или второй итоговой симплифицированной кривой) на экране клиентского устройства. Инструкция на отображение итоговой симплифицированной кривой на экране клиентского устройства может включать в себя, например, инструкцию на масштабирование визуального представления кривой.[0016] In some embodiments of the present technical solution, when the computer device is a server, the method further includes the step of sending instructions to the client device to display the final simplicated curve (or second final simplicated curve) on the screen of the client device. The instruction for displaying the resulting simplicated curve on the screen of the client device may include, for example, instructions for scaling the visual representation of the curve.

[0017] В альтернативных вариантах осуществления настоящего технического решения, когда компьютерное устройство является клиентским устройством, способ дополнительно включает в себя этап отрисовки итоговой симплифицированной кривой на экране клиентского устройства. Отрисовка итоговой симплифицированной кривой на экране клиентского устройства может включать в себя, например, масштабирование визуального представления кривой.[0017] In alternative embodiments of the present technical solution, when the computer device is a client device, the method further includes the step of drawing the final simplicated curve on the screen of the client device. The drawing of the resulting simplicated curve on the screen of the client device may include, for example, scaling the visual representation of the curve.

[0018] В некоторых вариантах осуществления настоящего технического решения кривая, итоговая симплифицированная кривая и/или вторая итоговая симплифицированная кривая являются частью карты, фотографии, изображения, видео или видеоигры. Кривая, итоговая симплифицированная кривая и/или вторая итоговая симплифицированная кривая могут быть частью графического 2D-объекта или графического 3D-объекта. Кривые и симплифицированные кривые могут быть отрисованы браузерным движком отрисовки (рендеринга) или общим движком отрисовки (рендеринга).[0018] In some embodiments of the present technical solution, the curve, the resulting simplicated curve and / or the second resulting simplicated curve are part of a map, photograph, image, video or video game. A curve, a final simplicated curve and / or a second final simplicated curve can be part of a 2D graphic object or a 3D graphic object. Curves and simplicated curves can be rendered by the browser rendering engine (rendering) or by the general rendering engine.

[0019] В некоторых вариантах осуществления настоящего технического решения этапы способа (этапы определения однородных сегментов и их симплификация) повторяются до тех пор, пока не будут достигнуты один или несколько конечных пунктов, например, желаемый порог масштабирования, желаемое разрешение, использование выделенной памяти или выделенного времени. Технический результат заключается в повышении скорости симплификации кривой.[0019] In some embodiments of the present technical solution, the steps of the method (the steps of determining homogeneous segments and their simplication) are repeated until one or more end points are reached, for example, the desired scaling threshold, the desired resolution, the use of dedicated memory or allocated time. The technical result consists in increasing the speed of curve simplicity.

[0020] Другим объектом настоящего технического решения является сервер. Сервер включает в себя носитель информации; процессор, функционально соединенный с носителем информации и выполненный с возможностью сохранять объекты на носителе информации. Процессор реализован с дополнительной возможностью осуществлять: выполнение первого алгоритма симплификации, причем первый алгоритм симплификации был предварительно определен, а его выполнение симплифицирует кривую, таким образом создавая первую симплифицированную кривую и параметры формы первой симплифицированной кривой; определение множества однородных сегментов первой симплифицированной кривой на основе параметров формы; и симплификацию каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, причем соответствующий второй алгоритм симплификации выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; таким образом выполняют создание итоговой симплифицированной кривой.[0020] Another object of the present technical solution is a server. The server includes a storage medium; a processor operatively coupled to the storage medium and configured to store objects on the storage medium. The processor is implemented with the additional ability to: implement the first simplicity algorithm, the first simplication algorithm being predefined, and its implementation simplicizing the curve, thus creating the first simplicated curve and the shape parameters of the first simplicated curve; determining a plurality of homogeneous segments of a first simplicated curve based on shape parameters; and simplicating each homogeneous segment using the corresponding second simplicity algorithm, wherein the corresponding second simplicity algorithm is selected from a plurality of predefined second simplicity algorithms, independently for each homogeneous segment based on the shape parameters of the corresponding homogeneous segment; in this way, the creation of the final simplicized curve is performed.

[0021] В некоторых вариантах осуществления настоящего технического решения сервер выполнен с дополнительной возможностью осуществлять: определение для каждого однородного сегмента симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем эти параметры были созданы соответствующим вторым алгоритмом симплификации; и симплификацию каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом выполняют создание второй итоговой симплифицированной кривой.[0021] In some embodiments of the present technical solution, the server is configured to perform: determining, for each homogeneous segment of a simplicated curve, a second set of second homogeneous segments of a simplicated homogeneous segment based on the shape parameters of a simplicated homogeneous segment, these parameters being created by the corresponding second simplicity algorithm; and simplicating every second homogeneous segment using the corresponding third simplification algorithm, which is selected from a plurality of predefined third algorithms independently for each second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; in this way, a second final simplicated curve is created.

[0022] В некоторых вариантах осуществления сервера, когда компьютерное устройство является сервером, процессор выполнен с дополнительной возможностью осуществлять отправку на клиентское устройство инструкции на отображение итоговой симплифицированной кривой или второй итоговой симплифицированной кривой на экране клиентского устройства. В некоторых альтернативных вариантах осуществления сервера, когда компьютерное устройство является клиентским устройством, процессор выполнен с дополнительной возможностью осуществлять отрисовку итоговой симплифицированной кривой или второй итоговой симплифицированной кривой на экране клиентского устройства.[0022] In some server embodiments, when the computer device is a server, the processor is further configured to send instructions to the client device to display the final simplicated curve or the second final simplicated curve on the screen of the client device. In some alternative embodiments of the server, when the computer device is a client device, the processor is further configured to draw a final simplicated curve or a second final simplicated curve on the screen of the client device.

[0023] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для настоящего технического решения. В контексте настоящего технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».[0023] In the context of the present description, "server" means a computer program running on appropriate equipment that is able to receive requests (for example, from client devices) over the network and execute these requests or initiate the execution of these requests. The equipment may be one physical computer or one physical computer system, but neither one nor the other is mandatory for this technical solution. In the context of this technical solution, the use of the expression “server” does not mean that each task (for example, received commands or requests) or any specific task will be received, completed or initiated to be executed by the same server (that is, by the same software and / or hardware); this means that any number of software elements or hardware devices can be involved in receiving / transmitting, executing or initiating the execution of any request or the consequences of any request associated with the client device, and all this software and hardware can be one server or several servers , both options are included in the expression “at least one server”.

[0024] В контексте настоящего описания, если конкретно не указано иное, «клиентское устройство» подразумевает под собой электронное устройство, связанное с пользователем и включающее в себя любое аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что компьютерное устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.[0024] In the context of the present description, unless specifically indicated otherwise, "client device" means an electronic device associated with the user and includes any hardware device capable of working with software suitable for solving the corresponding problem. Thus, examples of client devices (among other things) include personal computers (desktop computers, laptops, netbooks, etc.) smartphones, tablets, as well as network equipment such as routers, switches, and gateways. It should be borne in mind that a computer device that behaves as a client device in the present context can behave like a server in relation to other client devices. The use of the expression “client device” does not exclude the possibility of using multiple client devices to receive / send, execute, or initiate the execution of any task or request, or the consequences of any task or request, or the steps of any of the above methods.

[0025] В контексте настоящего описания, если конкретно не указано иное, «компьютерное устройство» подразумевает под собой любое электронное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Компьютерное устройство может являться сервером, клиентским устройством и так далее.[0025] In the context of the present description, unless specifically indicated otherwise, "computer device" means any electronic device capable of working with software suitable for solving the corresponding problem. A computer device may be a server, a client device, and so on.

[0026] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.[0026] In the context of the present description, unless specifically indicated otherwise, the term "database" means any structured data set that is independent of the specific structure, database management software, hardware of the computer on which the data is stored, used or otherwise are available for use. The database may reside on the same hardware that runs the process that stores or uses the information stored in the database, or it may reside on separate hardware, such as a dedicated server or multiple servers.

[0027] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, включая информацию, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (фотографии, видео, звукозаписи, презентации и т.д.), данные (картографические данные, данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.[0027] In the context of the present description, unless specifically indicated otherwise, “information” includes any information of any type, including information that can be stored in a database. Thus, information includes, among other things, audiovisual works (photographs, videos, sound recordings, presentations, etc.), data (map data, location data, digital data, etc.), text (opinions, comments, questions, messages, etc.), documents, tables, etc.

[0028] В контексте настоящего описания, если конкретно не указано иное, «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).[0028] In the context of the present description, unless specifically indicated otherwise, a "component" means software (corresponding to a specific hardware context) that is necessary and sufficient to perform the specific specified (s) function (s).

[0029] В контексте настоящего описания если конкретно не указано иное, слово «координаты» подразумевает под собой расположение точек, и/или линий, или тому подобного в системах отсчета. Системы отсчета могут являться, например, числами, и/или любыми другими символами, которые используются для определения расположения точки, линиями (включая кривые), или плоскостями в пространстве данного измерения относительно системы линий (осей), или другими неподвижными системами отсчета.[0029] In the context of the present description, unless specifically indicated otherwise, the word "coordinates" means the location of points, and / or lines, or the like in reference frames. Reference systems can be, for example, numbers, and / or any other symbols that are used to determine the location of a point, lines (including curves), or planes in the space of a given measurement relative to a system of lines (axes), or other fixed reference systems.

[0030] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.[0030] In the context of the present description, unless specifically indicated otherwise, the term "storage medium" means a medium of absolutely any type and nature, including RAM, ROM, disks (CDs, DVDs, floppy disks, hard drives, etc.). e.), USB flash drives, solid state drives, tape drives, etc.

[0031] В контексте настоящего описания, если конкретно не указано иное, выражение «двумерный объект» (2D-объект) подразумевает под собой плоскую фигуру, отображенную на экране компьютера, причем эта плоская фигура ограничена конечной последовательностью линий, замыкающихся в закрытый контур.[0031] In the context of the present description, unless specifically indicated otherwise, the expression "two-dimensional object" (2D object) means a flat figure displayed on a computer screen, and this flat figure is limited to a finite sequence of lines that are closed in a closed loop.

[0032] В контексте настоящего описания, если конкретно не указано иное, выражение «графический объект» подразумевает под собой любую графическую фигуру, которая может быть отображена на экране компьютера. Графические объекты могут быть линейными объектами, двумерными объектами и трехмерными объектами. Графические объекты могут иметь любую форму.[0032] In the context of the present description, unless specifically indicated otherwise, the expression "graphic object" means any graphic figure that can be displayed on a computer screen. Graphic objects can be linear objects, two-dimensional objects, and three-dimensional objects. Graphic objects can have any form.

[0033] В контексте настоящего описания, если конкретно не указано иное, выражение «граница графического объекта» подразумевает под собой периметр или часть периметра графического объекта, причем слово «периметр» означает контур, ограничивающий графический объект. Граница графического объекта может включать в себя части границы, которые могут быть сохранены как линии, соединяющие две крайние точки соответствующей части периметра. Границы графических объектов могут быть прямыми или кривыми линиями, или же прямыми или кривыми поверхностями, в зависимости от графического объекта.[0033] In the context of the present description, unless specifically indicated otherwise, the expression "border of the graphic object" means the perimeter or part of the perimeter of the graphic object, and the word "perimeter" means the outline bounding the graphic object. The border of a graphic object may include parts of the border that can be saved as lines connecting the two extreme points of the corresponding part of the perimeter. Borders of graphic objects can be straight or curved lines, or straight or curved surfaces, depending on the graphic object.

[0034] В контексте настоящего описания, если конкретно не указано иное, термин «кривая» подразумевает под собой линию, которая не является прямой, т.е. кривую линию. Выражение «симплификация кривой» и «симплификация линии» используется здесь взаимозаменяемо для обозначения симплификации кривой линии. Кривая может быть представлена ломаной линией, которая соединяет последовательность сегментов в виде прямых линий. Многоугольник - частный случай ломаной линии, которая начинается и заканчивается в одной и той же точке. В контексте настоящего описания, если конкретно не указано иное, выражение «многоугольный (полигональный) объект» подразумевает под собой двумерный объект, отображенный на экране компьютера, причем этот двумерный объект ограничен конечной последовательностью линий, замыкающихся в закрытый контур.[0034] In the context of the present description, unless specifically indicated otherwise, the term "curve" means a line that is not a straight line, ie curved line. The terms “curve simplicity” and “line simplicity” are used interchangeably herein to mean simulations of a curve line. A curve can be represented by a broken line that connects a sequence of segments in the form of straight lines. A polygon is a special case of a broken line that begins and ends at the same point. In the context of the present description, unless specifically indicated otherwise, the expression "polygonal (polygonal) object" means a two-dimensional object displayed on a computer screen, and this two-dimensional object is limited to a finite sequence of lines that are closed in a closed loop.

[0035] В контексте настоящего описания, если конкретно не указано иное, выражение «параметр формы» является характеристикой внешней или видимой формы кривой. Неограничивающие параметры формы включают в себя длину и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки (например, определенный по алгоритму Висвалингема-Уайятта), комплексность, монотонность, длину между точками, среднюю длину сегмента и плотность точек.[0035] In the context of the present description, unless specifically indicated otherwise, the expression "shape parameter" is a characteristic of the external or visible shape of the curve. Non-limiting shape parameters include length and angle of inclination, curvature, distance of heights, elevation difference, useful area for a point (for example, determined by the Wiswalingem-Wyatt algorithm), complexity, monotonicity, length between points, average segment length and density of points.

[0036] В контексте настоящего описания, если конкретно не указано иное, «симплификация» является способом, в котором происходит выборочное удаление вершин на протяжении кривой, чтобы избавиться от ненужных деталей, сохранив при этом основную форму кривой.[0036] In the context of the present description, unless specifically indicated otherwise, “simification” is a method in which vertices are selectively removed along a curve to eliminate unnecessary details while maintaining the basic shape of the curve.

[0037] В контексте настоящего описания, если конкретно не указано иное, «генерализация» является способом, в котором информация выбирается и представляется на карте таким образом, что она соответствует масштабу или разрешению средств отображения информации карты, без обязательного сохранения всех сложных географических или других картографических деталей. Генерализация обычно требует сохранения четкости, с подходящим содержимым, при данном масштабе, для выбранной цели, связанной с картой, и предполагаемой аудитории.[0037] In the context of the present description, unless specifically indicated otherwise, "generalization" is the way in which information is selected and presented on the map in such a way that it corresponds to the scale or resolution of the means for displaying map information, without necessarily preserving all complex geographical or other cartographic details. Generalization usually requires maintaining clarity, with appropriate content, at a given scale, for the chosen purpose associated with the map and the intended audience.

[0038] В контексте настоящего описания, если конкретно не указано иное, «алгоритм симплификации» является алгоритмом для симплификации кривых, включая ломаные линии, многоугольники и тому подобное. Многие из этих алгоритмов являются известными. Неограничивающие примеры алгоритмов симплификации линий включают в себя алгоритмы Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функцию представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния. Также известны и могут быть использованы в способах и системах, представленных здесь и другие способы симплификации линий и алгоритмы.[0038] In the context of the present description, unless specifically indicated otherwise, a "simplicity algorithm" is an algorithm for simplicity of curves, including broken lines, polygons and the like. Many of these algorithms are well known. Non-limiting examples of line simulations are Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayan, RDP, and sleeve-fitting (SF) )), presentation function (turning function (TF)), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm. Other methods for simplifying lines and algorithms are also known and can be used in the methods and systems presented here.

[0039] В контексте настоящего описания, если конкретно не указано иное, термин «сегмент» подразумевает под собой прямую часть линии кривой, которая соединяет точки кривой. «Однородный сегмент» является частью кривой, которая имеет одинаковые или, по меньшей мере, очень близкие параметры формы на своем протяжении. Таким образом, как описывается здесь, однородный сегмент может включать в себя множество сегментов кривой, в котором каждый из множества сегментов имеет одинаковые или, по меньшей мере, очень близкие параметры формы, или же параметры формы по всему множеству сегментов в целом одинаковы. В общем случае два сегмента считаются однородными, если у них один или несколько параметров формы одинаковы или по меньшей мере, очень близки. Как будет понятно специалистам в данной области техники параметры формы, используемые для определения однородности в настоящем техническом решении, будут отличаться в зависимости от алгоритма симплификации, используемого для определения и создания параметров формы для данной кривой.[0039] In the context of the present description, unless specifically indicated otherwise, the term "segment" refers to the straight part of the curve line that connects the points of the curve. A “homogeneous segment” is part of a curve that has the same or at least very close shape parameters along its length. Thus, as described herein, a homogeneous segment may include a plurality of curve segments in which each of the plurality of segments has the same or at least very close shape parameters, or the shape parameters across the entire plurality of segments are the same. In general, two segments are considered homogeneous if they have one or more shape parameters that are the same or at least very close. As will be appreciated by those skilled in the art, the shape parameters used to determine uniformity in the present technical solution will differ depending on the simification algorithm used to determine and create the shape parameters for a given curve.

[0040] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными.[0040] In the context of the present description, unless specifically indicated otherwise, the words "first", "second", "third", etc. used in the form of adjectives solely to distinguish the nouns to which they relate from each other, and not for the purpose of describing any specific relationship between these nouns.

Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий «второй сервер» обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.So, for example, it should be borne in mind that the use of the terms “first server” and “third server” does not imply any order, assignment to a certain type, chronology, hierarchy or ranking (for example) of servers / between servers, as well as their use (in itself) does not imply that a certain “second server” must exist in a given situation. Further, as indicated here in other contexts, the mention of the “first” element and the “second” element does not exclude the possibility that it is one and the same actual real element. So, for example, in some cases, the “first” server and the “second” server can be the same software and / or hardware, and in other cases they can be different software and / or hardware.

[0041] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты настоящего технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.[0041] Each embodiment of the present technical solution pursues at least one of the aforementioned objectives and / or objects. It should be borne in mind that some of the objects of this technical solution obtained as a result of attempts to achieve the aforementioned goals can also satisfy other goals not specifically indicated here.

[0042] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.[0042] Additional and / or alternative characteristics, aspects and advantages of embodiments of the present technical solution will become apparent from the following description, the attached drawings and the attached claims.

Краткое описание чертежейBrief Description of the Drawings

[0043] Для лучшего понимания настоящего технического решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:[0043] For a better understanding of the present technical solution, as well as its other aspects and characteristics, reference is made to the following description, which should be used in combination with the accompanying drawings, where:

[0044] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с неограничивающим вариантом осуществления настоящего технического решения.[0044] FIG. 1 presents a schematic diagram of a system made in accordance with a non-limiting embodiment of the present technical solution.

[0045] На Фиг. 2 представлен неограничивающий пример кривой, перед симплификацией и после симплификации, причем первая симплифицированная кривая разделена на три однородных сегмента.[0045] FIG. Figure 2 shows a non-limiting example of a curve before and after simplication, and the first simplicated curve is divided into three homogeneous segments.

[0046] На Фиг. 3 представлена блок-схема способа, выполняемого в рамках системы, изображенной на Фиг. 1, в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.[0046] FIG. 3 is a flowchart of a method performed within the system of FIG. 1, in accordance with embodiments of the present technical solution, not limiting its scope.

[0047] На Фиг. 4 представлена блок-схема способа, выполняемого в рамках системы, изображенной на Фиг. 1, в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.[0047] FIG. 4 is a flowchart of a method performed within the system of FIG. 1, in accordance with embodiments of the present technical solution, not limiting its scope.

[0048] На Фиг. 5 представлен неограничивающий пример кривой, перед симплификацией и после симплификации, причем первая симплифицированная кривая разделена на пять однородных сегментов.[0048] FIG. 5 shows a non-limiting example of a curve before and after simplication, and the first simplicated curve is divided into five homogeneous segments.

Осуществление изобретенияThe implementation of the invention

[0049] На Фиг. 1 представлена схема системы 100, выполненная в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание показательных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание показательного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.[0049] FIG. 1 shows a diagram of a system 100 made in accordance with embodiments of the present technical solution, not limiting its scope. It is important to keep in mind that the following description of system 100 is a description of representative embodiments of the present technical solution. Thus, the entire following description is presented only as a description of a representative example of this technical solution. This description is not intended to determine the scope or boundaries of this technical solution. Some useful examples of modifications to the system 100 may also be covered by the following description. The purpose of this is also solely assistance in understanding, and not determining the scope and boundaries of this technical solution. These modifications are not an exhaustive list, and it will be understood by those skilled in the art that other modifications are possible. In addition, this should not be interpreted so that where examples of modifications have not been set forth, no modifications are possible, and / or that what is described is the only embodiment of this element of the present technical solution. As will be clear to a person skilled in the art, this is most likely not the case. In addition, it should be borne in mind that the system 100 is in some specific manifestations a fairly simple embodiment of the present technical solution, and in such cases is presented here in order to facilitate understanding. As will be clear to a person skilled in the art, many embodiments of the present technical solution will have much greater complexity.

[0050] Система 100 включает в себя компьютерное устройство 102, являющееся сервером 102. Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 102 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем его объем, сервер 102 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих его объем, функциональность сервера 102 может быть разделена, и может выполняться с помощью нескольких серверов.[0050] The system 100 includes a computer device 102, which is a server 102. The server 102 may be a regular computer server. In an example embodiment of the present technical solution, the server 102 may be a Dell ™ PowerEdge ™ server that uses the Microsoft ™ Windows Server ™ operating system. Needless to say, the server 102 may be any other suitable hardware and / or application software and / or system software, or a combination thereof. In the presented embodiment of the present technical solution, not limiting its scope, server 102 is a single server. In other embodiments of the present technical solution, not limiting its scope, the functionality of the server 102 can be divided, and can be performed using multiple servers.

[0051] В некоторых вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика картографических сервисов, такого, например, как Яндекс.Карты (Yandex Maps™). В альтернативных вариантах осуществления настоящего технического решения сервер 102 может получать доступ к картографическому сервису, предоставляемому сторонними поставщиками. В других вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением или может получать доступ к поставщику таких сервисов, как сервисы компьютерных игр, сервисы графического дизайна и к другим сервисам, имеющим отношение к компьютерной графике. В других вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением или может получать доступ к поставщику таких сервисов, как сервисы фоторедакторов, сервисы видеоредакторов, сервисы хранения изображений (например, облачные сервисы) и другие сервисы, имеющие отношение к управлению такими графическими объектами как фотографии, видео и так далее. В дополнительных вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением или может получать доступ к поставщику таких сервисов, как сервисы управления базами данных и сервисы хранения данных.[0051] In some embodiments of the present technical solution, the server 102 may be controlled and / or managed by a map service provider, such as, for example, Yandex.Maps (Yandex Maps). In alternative embodiments of the present technical solution, the server 102 may access a map service provided by third-party providers. In other embodiments of the present technical solution, the server 102 may be controlled and / or controlled, or may access a provider of services such as computer gaming services, graphic design services, and other services related to computer graphics. In other embodiments of the present technical solution, the server 102 may be controlled and / or managed or may access a provider of services such as photo editor services, video editor services, image storage services (eg, cloud services) and other management related services such graphic objects as photographs, videos and so on. In further embodiments of the present technical solution, the server 102 may be controlled and / or managed, or may access a provider of services such as database management services and data storage services.

[0052] Сервер 102 включает в себя носитель 104 информации, который может использоваться сервером 102. В общем случае носитель 104 информации может быть выполнен как носитель любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. а также их комбинацию.[0052] The server 102 includes a storage medium 104 that can be used by the server 102. In general, the storage medium 104 can be configured as any type or type of media, including RAM, ROM, disks (CDs, DVDs, floppy disks, hard drives, etc.), USB flash drives, solid state drives, tape drives, etc. as well as their combination.

[0053] Варианты осуществления сервера 102 хорошо известны. Таким образом, достаточно отметить, что сервер 102 включает в себя, среди прочего, интерфейс 109 сетевой связи (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети 110 передачи данных; и процессор 108, соединенный с интерфейсом 109 сетевой связи и носителем 104 информации, причем процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на носителе 104 информации, выполнение которых инициирует процессор 108 реализовать различные описанные здесь процедуры.[0053] Embodiments of the server 102 are well known. Thus, it is sufficient to note that the server 102 includes, inter alia, a network communication interface 109 (for example, a modem, network card, and the like) for two-way communication over a data network 110; and a processor 108 connected to the network communication interface 109 and the storage medium 104, the processor 108 being configured to perform various procedures, including those described below. To this end, the processor 108 may have access to computer-readable instructions stored on the storage medium 104, the execution of which initiates the processor 108 to implement the various procedures described herein.

[0054] В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.[0054] In some non-limiting embodiments of the present technical solution, the data network 110 may be the Internet. In other embodiments of the present technical solution, the data network 110 may be implemented differently - in the form of a global data network, a local data network, a private data network, or the like.

[0055] Носитель 104 информации выполнен с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов (например, картографические данные, данные видеоигр, изображений и т.д.). В некоторых вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в базе данных 106. В других вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.[0055] The storage medium 104 is configured to store data, including computer-readable instructions and other data, including data of graphic objects (eg, map data, data of video games, images, etc.). In some embodiments of the present technical solution, the storage medium 104 may store at least a portion of the data in the database 106. In other embodiments of the present technical solution, the storage medium 104 may store at least a portion of the data in any data set that is different from the database.

[0056] Носитель 104 информации может хранить машиночитаемые инструкции, которые управляют обновлениями, заполнением и модификациям базы данных 106 и/или другими наборами данных. Более конкретно, машиночитаемые инструкции, хранящиеся на носителе 104 информации, могут позволить серверу 102 получить (например, обновить) информацию относительно графических объектов по сети 110 передачи данных и сохранить информацию относительно графических объектов, включая информацию относительно их симплифицированных кривых в базе данных 106 и/или других наборах данных.[0056] The storage medium 104 may store machine-readable instructions that control updates, populations, and modifications of the database 106 and / or other data sets. More specifically, machine-readable instructions stored on the storage medium 104 may allow the server 102 to receive (for example, update) information on graphical objects on the data network 110 and store information on graphical objects, including information on their simplicated curves in the database 106 and / or other data sets.

[0057] Данные, сохраненные на носителе 104 информации (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных 106) могут включать в себя, среди прочего, графические объекты любого типа. Неограничивающие примеры графических объектов включают в себя карты, видеоигры, изображения, фотографии и аудиовизуальные работы.[0057] The data stored on the storage medium 104 (and, more specifically, at least in part, in some embodiments of the present technical solution, in the database 106) may include, inter alia, graphic objects of any type. Non-limiting examples of graphic objects include maps, video games, images, photographs, and audiovisual works.

[0058] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при исполнении могут инициировать получение процессором 108 инструкций на симплификацию кривой 208, 500. Инструкции на симплификацию кривой 208, 500 могут быть инструкциями пользователя 121, полученными сервером 102 от клиентского устройства 112, которое будет описано подробнее ниже. Инструкции на симплификацию кривой 208, 500 могут быть инструкциями пользовательского устройства 112, полученными сервером 102 от клиентского устройства 112. Например, в ответ на запрос пользователем 121 уменьшения изображения карты, клиентское устройство 112 может отправить на сервер 102 соответствующий запрос на симплификацию частей карты, которые включают в себя кривые линии, чтобы отобразить их в новом масштабе, без мелких деталей, принимая во внимание разрешение экрана 118 клиентского устройства 112. Альтернативно, клиентское устройство 112 может отправлять серверу 102 запрос на простое уменьшение изображения карты, а сервер 102 может интерпретировать такой запрос на простое уменьшение изображения карты как запрос (по меньшей мере частично) на симплификацию кривых линий на карте, например, как часть генерализации карты.[0058] The machine-readable instructions stored on the information medium 104 may, upon execution, cause the processor 108 to receive instructions for simulating the curve 208, 500. The instructions for simulating the curve 208, 500 may be user instructions 121 received by the server 102 from the client device 112, which will described in more detail below. Instructions for simulating curve 208, 500 may be instructions from user device 112 received by server 102 from client device 112. For example, in response to a request by user 121 to reduce a map image, client device 112 may send to server 102 a corresponding request to simulate parts of the card that include curved lines to display them on a new scale, without fine details, taking into account the screen resolution 118 of the client device 112. Alternatively, the client device 112 may send a request to the server 102 to simply reduce the image of the map, and the server 102 can interpret such a request to simply reduce the image of the map as a request (at least in part) to simulate the curved lines on the map, for example, as part of the generalization of the map.

[0059] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при выполнении могут дополнительно инициировать реализацию процессором 108 первого алгоритма симплификации (не изображен) для симплификации кривой 208, 500, таким образом создавая и первую симплифицированную кривую 200, 502, и параметры формы первой симплифицированной кривой 200, 502; причем первая симплифицированная кривая делится на однородные сегменты соответственно на основе параметров формы.[0059] Machine-readable instructions stored on the information medium 104 may, upon execution, further trigger the implementation by the processor 108 of the first simification algorithm (not shown) to simulate the curve 208, 500, thereby creating both the first simulated curve 200, 502 and the shape parameters of the first simulated curve 200, 502; the first simplicated curve is divided into homogeneous segments, respectively, based on the shape parameters.

[0060] На Фиг. 2 представлен неограничивающий пример кривой 208, первой симплифицированной кривой 200 и итоговой симплифицированной кривой 210. Первая симплифицированная кривая 200 разделена на три однородных сегмента: первый однородный сегмент 202, второй однородный сегмент 204 и третий однородный сегмент 206. Первая симплифицированная кривая 200 была создана симплификацией кривой 208 и разделена на три однородных сегмента 202, 204, 206 с помощью первого алгоритма (не изображен) симплификации. Итоговая кривая 210 была создана симплификацией первой симплифицированной кривой 200 с использованием соответствующего второго алгоритма (не изображен) симплификации, выбранного для каждого однородного сегмента 202, 204, 206.[0060] FIG. 2 shows a non-limiting example of a curve 208, a first simplicated curve 200, and a final simplicated curve 210. The first simplicated curve 200 is divided into three homogeneous segments: the first homogeneous segment 202, the second homogeneous segment 204, and the third homogeneous segment 206. The first simplicated curve 200 was created by simulating a curve 208 and is divided into three homogeneous segments 202, 204, 206 using the first algorithm (not shown) simulations. The resulting curve 210 was created by simulating the first simplicated curve 200 using the corresponding second simplicity algorithm (not shown) selected for each homogeneous segment 202, 204, 206.

[0061] На Фиг. 5 представлен другой неограничивающий пример кривой 500, первой симплифицированной кривой 502 и итоговой симплифицированной кривой 514. Первая симплифицированная кривая 502 разделена на пять однородных сегментов: первый однородный сегмент 504, второй однородный сегмент 506, третий однородный сегмент 508, четвертый однородный сегмент 510 и пятый однородный сегмент 512. Первая симплифицированная кривая 502 была создана симплификацией кривой 500 и разделена на пять однородных сегментов 504, 506, 508, 510, 512 с помощью первого алгоритма (не изображен) симплификации. Итоговая кривая 514 была создана симплификацией первой симплифицированной кривой 502 с использованием соответствующего второго алгоритма (не изображен) симплификации, выбранного для каждого однородного сегмента 504, 506, 508, 510, 512.[0061] In FIG. 5 shows another non-limiting example of curve 500, the first simplicated curve 502, and the resulting simplicated curve 514. The first simplicated curve 502 is divided into five homogeneous segments: the first homogeneous segment 504, the second homogeneous segment 506, the third homogeneous segment 508, the fourth homogeneous segment 510 and the fifth homogeneous segment 512. The first simulated curve 502 was created by simulating a curve 500 and divided into five homogeneous segments 504, 506, 508, 510, 512 using the first algorithm (not shown) and. The resulting curve 514 was created by simulating the first simplicated curve 502 using the corresponding second simplicity algorithm (not shown) selected for each homogeneous segment 504, 506, 508, 510, 512.

[0062] В примерах, изображенных на Фиг. 2 и Фиг. 5 каждый однородный сегмент 202, 204, 206, 504, 506, 508, 510, 512 является ломаной линией, т.е. серией точек и сегментов в виде прямых линий, соединяющих эти точки. Следует учесть, что форма и размер первой симплифицированной кривой 200, 502 и кривых 208, 500 из которых они созданы, как объясняется ниже, никак конкретно не ограничены. Хотя первая симплифицированная кривая 200, 502 показана как разделенная на три однородных сегмента 202, 204, 206 и пять однородных сегментов 504, 506, 508, 510, 512, соответственно, в других вариантах осуществления настоящего технического решения первая симплифицированная кривая 200, 502 может быть разделена на любое другой число однородных сегментов, в зависимости от параметров формы. В некоторых (маловероятных) вариантах осуществления настоящего технического решения, если первая симплифицированная кривая 200, 502 является однородной по всей своей длине, тогда определяется только один однородный сегмент (а не множество однородных сегментов).[0062] In the examples depicted in FIG. 2 and FIG. 5, each homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512 is a broken line, i.e. a series of points and segments in the form of straight lines connecting these points. It should be noted that the shape and size of the first simplicated curve 200, 502 and curves 208, 500 of which they are created, as explained below, are not specifically limited. Although the first simulated curve 200, 502 is shown as divided into three homogeneous segments 202, 204, 206 and five homogeneous segments 504, 506, 508, 510, 512, respectively, in other embodiments of the present technical solution, the first simulated curve 200, 502 may be divided into any other number of homogeneous segments, depending on the shape parameters. In some (unlikely) embodiments of the present technical solution, if the first simplicated curve 200, 502 is uniform along its entire length, then only one homogeneous segment is determined (and not a plurality of homogeneous segments).

[0063] Первый алгоритм симплификации является предварительно определенным и никак конкретно не ограничен. Может быть использован любой подходящий алгоритм для симплификации кривых и создания параметров формы симплифицированных кривых. В некоторых неограничивающих вариантах осуществления настоящего технического решения первый алгоритм симплификации линий выбирается из алгоритмов Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (sleeve-fitting (SF)), функции представления (turning function (TF)), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния. Первый алгоритм симплификации может быть предварительно определен на основе нескольких критериев, например, типа графического объекта, включающего в себя кривую для симплификации, источника графического объекта, источника, из которого получена инструкция и так далее.[0063] The first simplification algorithm is predefined and is not specifically limited. Any suitable algorithm can be used to simulate the curves and create the shape parameters of the simplicated curves. In some non-limiting embodiments of the implementation of the present technical solution, the first line simplicity algorithm is selected from the Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao-Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP version, “sleeve fitting” algorithms (sleeve-fitting (SF)), presentation functions (turning function (TF)), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm. The first simplification algorithm can be predefined based on several criteria, for example, the type of graphic object, which includes a curve for simplication, the source of the graphic object, the source from which the instruction is received, and so on.

[0064] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при выполнении могут дополнительно инициировать определение процессором 108 множества однородных сегментов 202, 204, 206 первой симплифицированной кривой 200 на основе параметров формы. Следует отметить, что, хотя настоящее техническое решение описывается здесь с учетом варианта осуществления настоящего технического решения, приведенного на Фиг. 2, Фигура 2 является только примером, и то же самое относится к варианту осуществления настоящего технического решения, показанному на Фигуре 5.[0064] Machine-readable instructions stored on the storage medium 104 may, upon execution, further trigger the determination by the processor 108 of a plurality of homogeneous segments 202, 204, 206 of the first simplicated curve 200 based on the shape parameters. It should be noted that, although the present technical solution is described here in view of the embodiment of the present technical solution shown in FIG. 2, Figure 2 is only an example, and the same applies to the embodiment of the present technical solution shown in Figure 5.

[0065] Однородные сегменты обычно (но не обязательно) включают в себя множество сегментов первой симплифицированной кривой 200, причем либо параметры формы во всем множестве сегментов (т.е. на протяжении однородного сегмента) одинаковы, или каждый из множества сегментов имеет одинаковые или по меньшей мере очень близкие параметры формы. Поскольку параметры формы создаются первым алгоритмом симплификации во время создания первой симплифицированной кривой 200, определение однородных сегментов 202, 204, 206 будет различаться в зависимости от того, какой первый алгоритм симплификации был использован. Кроме того, может быть определено любое число однородных сегментов 202, 204, 206 в зависимости от параметров формы. Однородные сегменты 202, 204, 206 в общем случае определяются первым алгоритмом симплификации во время процесса симплификации кривой 208 и создания параметров формы.[0065] Homogeneous segments typically (but not necessarily) include a plurality of segments of the first simplicated curve 200, wherein either the shape parameters in the whole plurality of segments (ie, throughout a uniform segment) are the same, or each of the plurality of segments has the same or at least very close shape parameters. Since the shape parameters are created by the first simplicization algorithm during the creation of the first simplicated curve 200, the definition of the homogeneous segments 202, 204, 206 will vary depending on which first simplicity algorithm was used. In addition, any number of uniform segments 202, 204, 206 may be determined depending on the shape parameters. The homogeneous segments 202, 204, 206 are generally determined by the first simification algorithm during the process of simulating the curve 208 and creating the shape parameters.

[0066] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при выполнении могут дополнительно инициировать симплификацию процессором 108 каждого однородного сегмента 202, 204, 206 с использованием соответствующего второго алгоритма (не изображен) симплификации, таким образом создавая итоговую симплифицированную кривую 210. Второй алгоритм симплификации выбирается из множества предварительно определенных вторых алгоритмов симплификации, причем второй алгоритм симплификации выбирается независимо для каждого однородного сегмента 202, 204 и 206 на основе параметров формы соответствующего однородного сегмента 202, 204, 206. Другими словами, второй алгоритм симплификации для каждого однородного сегмента 202, 204, 206 может быть таким же или другим, в зависимости от параметров формы. Кроме того, первый и второй алгоритмы симплификации могут быть одинаковыми или неодинаковыми в зависимости от параметров формы однородных сегментов 202, 204, 206.[0066] Machine-readable instructions stored on the information carrier 104 may, upon execution, further trigger simulations by the processor 108 of each homogeneous segment 202, 204, 206 using the corresponding second simplicity algorithm (not shown), thereby creating a final simplicated curve 210. The second simplicity algorithm is selected from a plurality of predefined second simulation algorithms, the second simulation algorithm being independently selected for each homogeneous segment and 202, 204, and 206 based on the shape parameters of the corresponding homogeneous segment 202, 204, 206. In other words, the second simplification algorithm for each homogeneous segment 202, 204, 206 may be the same or different, depending on the shape parameters. In addition, the first and second simplification algorithms can be the same or different depending on the shape parameters of the homogeneous segments 202, 204, 206.

[0067] Как упоминалось выше, используемые параметры формы могут различаться в зависимости от использованного первого алгоритма симплификации для создания первой симплифицированной кривой 200. В некоторых вариантах осуществления настоящего технического решения параметры формы включают одно или несколько из: длина и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки, комплексность, монотонность, длина между точками и плотность точек.[0067] As mentioned above, the shape parameters used may vary depending on the first simplication algorithm used to create the first simplicated curve 200. In some embodiments of the present technical solution, the shape parameters include one or more of: length and angle, bend, height distance , elevation difference, useful area for a point, complexity, monotony, length between points and density of points.

[0068] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при исполнении могут дополнительно инициировать дополнительную симплификацию процессором 108 итоговой симплифицированной кривой 210. Процессор 108 повторяет этапы определения множества однородных сегментов в рамках симплифицированных однородных сегментов на итоговой симплифицированной кривой 210 и симплифицирует снова определенные однородные сегменты (не изображены) с использованием третьего алгоритма симплификации. Третий алгоритм симплификации выбирается независимо для каждого из снова определенных однородных сегментов в рамках итоговой симплифицированной кривой 210. Третий алгоритм симплификации выбирается независимо от использованного ранее второго алгоритма симплификации. Таким образом создается вторая итоговая симплифицированная кривая (не изображена). Машиночитаемые инструкции, сохраненные на носителе 104 информации, могут инициировать повторение процессором 108 этих этапов итерационно, пока не будет получен желаемый конечный пункт (например, желаемый порог масштаба, желаемое разрешение, использование выделенной памяти, выделенного времени и так далее). Следует иметь в виду, что n-ная итоговая симплифицированная кривая будет создана на каждой n-ной итерации.[0068] Machine-readable instructions stored on the storage medium 104 may, upon execution, additionally initiate additional simplications by the processor 108 of the resulting simplicated curve 210. The processor 108 repeats the steps of determining a plurality of homogeneous segments within simplicated homogeneous segments on the resulting simplicated curve 210 and simulates again defined homogeneous segments (not shown) using the third algorithm of simplification. The third simplification algorithm is selected independently for each of the newly defined homogeneous segments within the final simplicated curve 210. The third simplication algorithm is selected independently of the second simplicity algorithm used previously. Thus, a second final simplicated curve is created (not shown). Machine-readable instructions stored on the storage medium 104 may initiate the processor 108 repeating these steps iteratively until the desired endpoint is obtained (e.g., the desired scale threshold, desired resolution, use of allocated memory, allocated time, and so on). It should be borne in mind that the n-th final simplicized curve will be created at each n-th iteration.

[0069] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при выполнении могут дополнительно инициировать отправку процессором 108 на клиентское устройство 112 инструкции на отображение итоговой симплифицированной кривой 210 (или второй итоговой симплифицированной кривой, или n-ной итоговой симплифицированной кривой (не изображена), в зависимости от того, сколько итераций было завершено) на экране 118. Инструкция может быть отправлена по сети 110 передачи данных. В некоторых вариантах осуществления настоящего технического решения инструкция на отображение итоговой симплифицированной кривой 210 (или n-ной итоговой симплифицированной кривой) на экране 118 может включать в себя инструкцию на масштабирование визуального представления кривой 208, таким образом, чтобы итоговая симплифицированная кривая 210 выглядела больше или меньше.[0069] The machine-readable instructions stored on the storage medium 104 may, upon execution, further trigger the sending by the processor 108 to the client device 112 of an instruction to display the resulting simplicated curve 210 (or the second summary simplicated curve, or the nth summary simplicated curve (not shown), depending on how many iterations have been completed) on screen 118. The instruction can be sent over the data network 110. In some embodiments of the present technical solution, the instruction for displaying the resulting simplicated curve 210 (or the nth resulting simplicated curve) on the screen 118 may include instructions for scaling the visual representation of the curve 208 so that the resulting simplicated curve 210 looks larger or smaller .

[0070] В некоторых вариантах осуществления настоящего технического решения процессор 108 отправляет инструкции движку отрисовки (не изображен), на отображение итоговой симплифицированной кривой 210 (или n-ной итоговой симплифицированной кривой (не изображена)) на экране 118. Движок отрисовки - это программное обеспечение, которое отображает отформатированное содержимое на экране, сочетая информацию содержимого и форматирования для отрисовки в области содержимого в окне, которое отображается на экране. Движок отрисовки может быть браузерным движком отрисовки, т.е. он может быть встроен в веб-браузер или другое приложение, которое требует отображения графического содержимого. Альтернативно, движок отрисовки может быть общим движком отрисовки, т.е. частью операционной системы (не изображена) сервера 102 или клиентского устройства 112.[0070] In some embodiments of the present technical solution, the processor 108 sends instructions to the rendering engine (not shown) to display the resulting simplicated curve 210 (or the nth resulting simplicated curve (not shown)) on screen 118. The rendering engine is software that displays formatted content on the screen, combining content and formatting information to draw in the content area of the window that is displayed on the screen. The rendering engine can be a browser rendering engine, i.e. it can be embedded in a web browser or other application that requires display of graphic content. Alternatively, the rendering engine may be a general rendering engine, i.e. part of the operating system (not shown) of the server 102 or client device 112.

[0071] Система 100 также включает в себя компьютерное устройство 112, являющееся клиентским устройством 112. Клиентское устройство 112 обычно связано с пользователем 121. Следует отметить, что тот факт, что клиентское устройство 112 связано с пользователем 121, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.[0071] The system 100 also includes a computer device 112, which is the client device 112. The client device 112 is usually associated with the user 121. It should be noted that the fact that the client device 112 is associated with the user 121 does not imply any particular mode work, as well as the need to enter the system, register, or something like that.

[0072] Варианты реализации клиентского устройства 112 конкретно не ограничены, но в качестве примера клиентского устройства 112 могут использоваться персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) или беспроводные устройства передачи данных (смартфоны, планшеты и т.п.).[0072] The implementation options for the client device 112 are not particularly limited, but personal computers (desktop computers, laptops, netbooks, etc.) or wireless data communication devices (smartphones, tablets, etc.) can be used as an example of the client device 112. )

[0073] Клиентское устройство 112 включает в себя устройство 113 пользовательского ввода. Реализация устройства 113 пользовательского ввода не ограничена и будет зависеть от того, какое клиентское устройство 112 используется. Устройство 113 пользовательского ввода может включать в себя любой механизм предоставления пользовательского ввода процессору 116 клиентского устройства 112. Устройство 113 пользовательского ввода может являться клавиатурой и/или мышью и так далее. Устройство 113 ввода не ограничивается любым конкретным способом ввода, но может быть исполнено, например, как виртуальная кнопка на сенсорном экране или как физическая кнопка на корпусе электронного устройства.[0073] The client device 112 includes a user input device 113. The implementation of user input device 113 is not limited and will depend on which client device 112 is being used. The user input device 113 may include any mechanism for providing user input to the processor 116 of the client device 112. The user input device 113 may be a keyboard and / or mouse and so on. The input device 113 is not limited to any particular input method, but can be executed, for example, as a virtual button on a touch screen or as a physical button on the housing of an electronic device.

[0074] Исключительно как пример и без введения ограничений, в тех вариантах осуществления настоящего технического решения, в которых клиентское устройство 112 реализовано как беспроводное устройство передачи данных (например, смартфон), устройство 113 пользовательского ввода может быть выполнено как устройство пользовательского ввода на основе интерференции света. Устройство 113 пользовательского ввода в одном примере является устройством восприятия движения пальца/объекта, которым пользователь осуществляет жест и/или на которое нажимает пальцем. Устройство 113 пользовательского ввода может идентифицировать/отслеживать жест и/или определять положение пальца пользователя на устройстве 113 пользовательского ввода. В примерах, в которых устройство 113 пользовательского ввода выполнено как устройство на основе интерференции света, например, сенсорный экран или мультисенсорный экран, устройство 113 пользовательского ввода может дополнительно выполнять функции устройства экрана 118.[0074] By way of example only and without limitation, in those embodiments of the present technical solution in which the client device 112 is implemented as a wireless data transmission device (eg, a smartphone), the user input device 113 may be configured as a user input device based on interference Sveta. The user input device 113 in one example is a finger / object movement sensing device with which the user makes a gesture and / or clicks with a finger. The user input device 113 may identify / track the gesture and / or determine the position of the user's finger on the user input device 113. In examples in which the user input device 113 is configured as a device based on light interference, for example, a touch screen or multi-touch screen, the user input device 113 may further perform the functions of the screen device 118.

[0075] Устройство 113 пользовательского ввода функционально подключено к процессору 116 и передает сигналы ввода (и сигналы вывода, когда оно функционирует и как экран 118) на основе различных форм пользовательского ввода для обработки и анализа процессором 116.[0075] The user input device 113 is operatively connected to the processor 116 and transmits input signals (and output signals when it functions as a screen 118) based on various forms of user input for processing and analysis by the processor 116.

[0076] Клиентское устройство 112 дополнительно включает в себя используемый компьютером носитель 114 информации, также упоминаемый как локальная память 114. Локальная память 114 может включать в себя любой тип медиа, включая (но не ограничиваясь) ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), твердотельные накопители, накопители на магнитной ленте и т.д. В общем случае задачей локальной памяти 114 является хранение машиночитаемых команд, а также других данных.[0076] The client device 112 further includes a computer storage medium 114, also referred to as local memory 114. Local memory 114 may include any type of media, including (but not limited to) RAM, ROM, disks (CDs, DVDs) disks, floppy disks, hard drives, etc.), solid state drives, tape drives, etc. In general, the task of local memory 114 is to store machine-readable instructions, as well as other data.

[0077] Клиентское устройство 112 включает в себя экран 118. Экран 118 может быть жидкокристаллическим дисплеем (LCD), светодиодным дисплеем (LED), дисплеем на основе интерферометрической модуляции (IMOD) или дисплеем на основе любой другой подходящей технологии. Экран 118 в общем случае выполнен с возможностью отображать графический интерфейс пользователя (GUI), который предоставляет простой в использовании графический интерфейс между пользователем 121 клиентского устройства 112 и операционной системой или приложением(ями), установленными на клиентском устройстве 112. В общем случае графический интерфейс пользователя (GUI) представляет программы, файлы и операционные опции с помощью графических изображений. Экран 118 также в общем случае выполнен с возможностью отображать другую информацию, например, пользовательские данные и веб-ресурсы. Экран 118 может быть реализован как устройство на основе сенсорной модели, например, сенсорный экран. Сенсорный экран является экраном, который определяет наличие и местоположение касаний пользователя. Экран 118 может быть экраном мультисенсорной или дуальной сенсорной модели, которые могут определять наличие, местоположение и движение ввода прикосновениями. В примерах, в которых экран 118 выполнен как устройство на основе сенсорной модели, например, сенсорный экран, или мультисенсорный экран, экран 118 может выполнять функции устройства 113 пользовательского ввода.[0077] The client device 112 includes a screen 118. The screen 118 may be a liquid crystal display (LCD), an LED display (LED), an interferometric modulation (IMOD) display, or a display based on any other suitable technology. The screen 118 is generally configured to display a graphical user interface (GUI) that provides an easy-to-use graphical interface between the user 121 of the client device 112 and the operating system or application (s) installed on the client device 112. In general, the graphical user interface (GUI) represents programs, files, and operating options using graphical images. The screen 118 is also generally configured to display other information, for example, user data and web resources. Screen 118 may be implemented as a device based on a touch model, for example, a touch screen. A touch screen is a screen that determines the presence and location of user touches. The screen 118 may be a multi-touch or dual touch screen model, which can determine the presence, location and movement of input by touch. In examples in which the screen 118 is configured as a device based on a touch model, for example, a touch screen or a multi-touch screen, the screen 118 may act as a user input device 113.

[0078] Экран 118 функционально соединен с процессором 116 и получает от него сигналы. В примерах, в которых экран 118 выполнен как устройство на основе сенсорной модели, например, сенсорный экран, или мультисенсорный экран, экран 118 может также передавать сигналы ввода на основе различных форм пользовательского ввода для обработки и анализа процессором 116.[0078] The screen 118 is operatively connected to the processor 116 and receives signals from it. In examples in which the screen 118 is configured as a device based on a touch model, for example, a touch screen, or a multi-touch screen, the screen 118 can also transmit input signals based on various forms of user input for processing and analysis by the processor 116.

[0079] Клиентское устройство 112 также включает в себя вышеупомянутый процессор 116. Процессор 116 выполнен с возможностью реализовать различные операции в соответствии с машиночитаемым программным кодом. Процессор 116 функционально связан с устройством 113 пользовательского ввода, локальной памятью 114 и экраном 118. Процессор 116 выполнен с возможностью сохранять или иметь доступ к машиночитаемым командам, выполнение которых инициирует реализацию процессором 116 различных процедур. В качестве неограничивающих примеров, процессор 116, описанный здесь, может получить доступ к машиночитаемым инструкциям, которые при выполнении могут инициировать реализацию процессором 116: отображения информации на экране 118; получения от пользователя 121 клиентского устройства 112 с помощью устройства 113 пользовательского ввода выборки по меньшей мере некоторой отображенной информации; отправку клиентским устройством 112 на сервер 102 по сети 110 передачи данных выбранной пользователем информации; получения клиентским устройством 112 от сервера 102 веб-содержимого и других данных, включая карты, представления графических объектов (например, видео) и других данных для отображения на экране 118 клиентского устройства 112; отображения на экране 118 одного или нескольких графических объектов, включая графические объекты с симплифицированными кривыми.[0079] The client device 112 also includes the aforementioned processor 116. The processor 116 is configured to implement various operations in accordance with computer readable program code. The processor 116 is operatively coupled to the user input device 113, the local memory 114, and the screen 118. The processor 116 is configured to store or access machine-readable instructions, the execution of which initiates the implementation of various procedures by the processor 116. By way of non-limiting examples, a processor 116 described herein may access machine-readable instructions that, when executed, may trigger an implementation by the processor 116: displaying information on a screen 118; receiving from the user 121 of the client device 112 using the user input device 113 at least some displayed information; sending by the client device 112 to the server 102 via the data transmission network 110 the user-selected information; receiving client device 112 from the server 102 web content and other data, including maps, representations of graphical objects (eg, video) and other data for display on the screen 118 of the client device 112; display on the screen 118 of one or more graphic objects, including graphic objects with simplicized curves.

[0080] Локальная память 114 выполнена с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов (например, картографические данные и т.д.). В некоторых вариантах осуществления настоящего технического решения локальная память 114 может хранить по меньшей мере часть данных в базе данных (не изображена). В других вариантах осуществления настоящего технического решения локальная память 114 может хранить по меньшей мере часть данных в любом наборе данных (не изображен), который отличается от базы данных.[0080] The local memory 114 is configured to store data, including computer-readable instructions and other data, including data from graphic objects (eg, map data, etc.). In some embodiments of the present technical solution, local memory 114 may store at least a portion of the data in a database (not shown). In other embodiments of the present technical solution, local memory 114 may store at least a portion of the data in any data set (not shown) that is different from the database.

[0081] Данные, сохраненные в локальной памяти 114 (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных) могут включать в себя графические объекты любого типа.[0081] Data stored in local memory 114 (and, more specifically, at least in part, in some embodiments of the present technical solution, in a database) may include graphic objects of any type.

[0082] Локальная память 114 может хранить машиночитаемые инструкции, которые управляют обновлениями, заполнением и модификациям базы данных (не изображена) и/или другими наборами данных (не изображены). Более конкретно, машиночитаемые инструкции, хранящиеся в локальной памяти 114, могут позволить клиентскому устройству 112 получить (или например, обновить) информацию относительно графических объектов по сети 110 передачи данных и сохранить информацию о графических объектах, включая информацию об их симплифицированных кривых в базе данных и/или других наборов данных.[0082] The local memory 114 may store machine-readable instructions that control updates, populations, and database modifications (not shown) and / or other data sets (not shown). More specifically, machine-readable instructions stored in local memory 114 may allow client device 112 to obtain (or, for example, update) information about graphic objects on data network 110 and store information about graphic objects, including information about their simplicated curves in a database and / or other data sets.

[0083] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при исполнении могут инициировать получение процессором 116 инструкций на симплификацию кривой (не изображена). Инструкции на симплификацию кривой могут быть получены при выполнении инструкций пользователя 121, полученных клиентским устройством 112, с помощью устройства 113 пользовательского ввода. Например, в ответ на запрос пользователя 121 уменьшить изображение карты, клиентское устройство 112 может отправить на сервер 102 соответствующий запрос на симплификацию кривой на карте.[0083] Machine-readable instructions stored in local memory 114 may, upon execution, trigger processor 116 to receive curve simulations (not shown). Instructions for simulating the curve can be obtained by executing user instructions 121 received by the client device 112 using the user input device 113. For example, in response to a request from user 121 to reduce the map image, client device 112 may send to server 102 a corresponding request to simulate a curve on the map.

[0084] В некоторых вариантах осуществления настоящего технического решения инструкция на симплификацию кривой может быть выполнена на сервере 102, и клиентское устройство 112 передает инструкции на сервер 102. Кроме того, машиночитаемые инструкции, сохраненные в локальной памяти 114, при исполнении могут инициировать получение процессором 116 от сервера 102, в результате обработки сервером 102, инструкции на отображение итоговой симплифицированной кривой на экране 118. Инструкции на отображение итоговой симплифицированной кривой на экране 118 могут быть получены от сервера 102 по сети 110 передачи данных. В некоторых вариантах осуществления настоящего технического решения инструкция на отображение итоговой симплифицированной кривой на экране 118 клиентского устройства 112 может включать в себя инструкцию на масштабирование визуального представления итоговой симплифицированной кривой.[0084] In some embodiments of the present technical solution, an instruction to simulate a curve can be executed on the server 102, and the client device 112 sends instructions to the server 102. In addition, machine-readable instructions stored in the local memory 114 may, upon execution, trigger processor 116 from the server 102, as a result of processing by the server 102, instructions for displaying the resulting simplicated curve on the screen 118. Instructions for displaying the resulting simplicated curve on the screen 118 may yt are obtained from the data server 102 over network 110. In some embodiments of the present technical solution, the instruction for displaying the resulting simplicated curve on the screen 118 of the client device 112 may include instructions for scaling the visual representation of the resulting simplicated curve.

[0085] В альтернативных вариантах осуществления настоящего технического решения инструкция на симплификацию кривой может быть выполнена локально на клиентском устройстве 112 без соединения с сервером 102.[0085] In alternative embodiments of the present technical solution, an instruction to simulate a curve can be executed locally on the client device 112 without connecting to the server 102.

[0086] Более конкретно, машиночитаемые инструкции, сохраненные в локальной памяти 114, при исполнении могут инициировать получение процессором 116 инструкций на симплификацию кривой. В некоторых вариантах осуществления настоящего технического решения инструкция на симплификацию кривой может быть инструкциями пользователя 121, введенными с помощью устройства 113 пользовательского ввода. Например, в ответ на запрос пользователя 121 уменьшить изображение карты, клиентское устройство 112 может получать инструкцию на симплификацию кривой на карте.[0086] More specifically, machine-readable instructions stored in local memory 114, when executed, can trigger processor 116 to receive curve simulations. In some embodiments of the present technical solution, the instruction for simulating a curve may be user instructions 121 inputted by the user input device 113. For example, in response to a request from user 121 to reduce the image of the map, client device 112 may receive instructions to simulate a curve on the map.

[0087] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при выполнении могут дополнительно инициировать реализацию процессором 116 первого алгоритма симплификации (не изображен) для симплификации кривой 208, 500, таким образом создавая и первую симплифицированную кривую 200, 502, и параметры формы первой симплифицированной кривой 200, 502. Как описано выше, первый алгоритм симплификации предварительно определен.[0087] The machine-readable instructions stored in the local memory 114 may, upon execution, further trigger the implementation by the processor 116 of the first simification algorithm (not shown) to simulate the curve 208, 500, thereby creating both the first simulated curve 200, 502 and the shape parameters of the first simulated curve 200, 502. As described above, the first simplification algorithm is predefined.

[0088] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при выполнении могут дополнительно инициировать определение процессором 116 множества однородных сегментов 202, 204, 206 первой симплифицированной кривой 200 (или однородных сегментов 504, 506, 508, 510, 512 первой симплифицированной кривой 502) на основе параметров формы, как было описано выше.[0088] Machine-readable instructions stored in local memory 114 may, upon execution, further trigger the processor 116 to determine the set of homogeneous segments 202, 204, 206 of the first simulated curve 200 (or homogeneous segments 504, 506, 508, 510, 512 of the first simulated curve 502) based on the shape parameters as described above.

[0089] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при выполнении могут дополнительно инициировать симплификацию процессором 116 каждого однородного сегмента 202, 204, 206 с использованием соответствующего второго алгоритма (не изображен) симплификации, таким образом создавая итоговую симплифицированную кривую 210. Как упоминалось выше, настоящее техническое решение описывается здесь с учетом Фиг. 2 исключительно с иллюстративными целями. Фиг. 2 не должна рассматриваться как ограничение, и описание с равным успехом применимо к другим вариантам осуществления настоящего технического решения, включая тот, что изображен на Фиг. 5.[0089] Machine-readable instructions stored in local memory 114 may, upon execution, further trigger simplication by processor 116 of each homogeneous segment 202, 204, 206 using the corresponding second simplicity algorithm (not shown), thereby creating a final simplicated curve 210. As mentioned above , the present technical solution is described here with reference to FIG. 2 for illustrative purposes only. FIG. 2 should not be construed as limiting, and the description equally applies to other embodiments of the present technical solution, including the one depicted in FIG. 5.

[0090] Соответствующий второй алгоритм симплификации выбирается из множества предварительно определенных вторых алгоритмов симплификации, причем второй алгоритм симплификации выбирается независимо для каждого однородного сегмента 202, 204 и 206 на основе параметров формы соответствующего однородного сегмента 202, 204, 206. Другими словами, второй алгоритм симплификации для каждого однородного сегмента 202, 204, 206 может быть таким же или другим, в зависимости от параметров формы. Кроме того, первый и второй алгоритмы симплификации могут быть одинаковыми или неодинаковыми в зависимости от параметров формы.[0090] The corresponding second simplification algorithm is selected from a plurality of predetermined second simplification algorithms, the second simplification algorithm being independently selected for each homogeneous segment 202, 204 and 206 based on the shape parameters of the corresponding homogeneous segment 202, 204, 206. In other words, the second simplification algorithm for each homogeneous segment 202, 204, 206 may be the same or different, depending on the shape parameters. In addition, the first and second simplification algorithms can be the same or different depending on the shape parameters.

[0091] Машиночитаемые инструкции, сохраненные в локальной памяти 114, при исполнении могут дополнительно инициировать дополнительную симплификацию процессором 116 итоговой симплифицированной кривой 210. Процессор 116 повторяет этапы определения множества однородных сегментов в рамках симплифицированных однородных сегментов на итоговой симплифицированной кривой 210 и симплифицирует снова определенные однородные сегменты (не изображены) с использованием третьего алгоритма симплификации. Третий алгоритм симплификации выбирается независимо для каждого из снова определенных однородных сегментов в рамках итоговой симплифицированной кривой 210. Этот третий алгоритм симплификации выбирается независимо от использованного ранее второго алгоритма симплификации. Таким образом создается вторая итоговая симплифицированная кривая (не изображена). Машиночитаемые инструкции, сохраненные в локальной памяти 114, могут инициировать повторение процессором 116 этих этапов итерационно, симплифицируя далее вторую итоговую симплифицированную кривую и создавая третью итоговую симплифицированную кривую (не изображена) и т.д., пока не будет получен желаемый конечный пункт (например, желаемый порог масштаба, желаемое разрешение, использование выделенной памяти, выделенного времени и так далее). N-ная итоговая симплифицированная кривая будет создана на каждой n-ной итерации.[0091] The machine-readable instructions stored in the local memory 114 may, upon execution, additionally initiate additional simulations by the processor 116 of the resulting simplicated curve 210. The processor 116 repeats the steps of determining a plurality of homogeneous segments within the simplicated homogeneous segments on the resulting simplicated curve 210 and simulates again the defined homogeneous segments (not shown) using the third algorithm of simplification. A third simplicity algorithm is selected independently for each of the newly defined homogeneous segments within the resulting simplicated curve 210. This third simplication algorithm is selected independently of the second simplicity algorithm used previously. Thus, a second final simplicated curve is created (not shown). Machine-readable instructions stored in local memory 114 can initiate the processor 116 repeating these steps iteratively, further simplicating the second final simplicated curve and creating a third final simplicated curve (not shown), etc., until the desired end point is obtained (e.g., desired scale threshold, desired resolution, use of allocated memory, allocated time, and so on). The n-th final simplicated curve will be created at each n-th iteration.

[0092] Машиночитаемые инструкции, сохраненные в локальной памяти 114 информации, при выполнении могут дополнительно инициировать отрисовку процессором 116 итоговой симплифицированной кривой 210 (или второй итоговой симплифицированной кривой, или n-ной итоговой симплифицированной кривой и т.д., в зависимости от того, сколько итераций требовалось для достижения конечного пункта) на экране 118. В некоторых вариантах осуществления настоящего технического решения отрисовка итоговой симплифицированной кривой 210 (или n-ной итоговой симплифицированной кривой (не изображена)) на экране 118 является отрисовкой масштабированного визуального представления итоговой симплифицированной кривой 210. В некоторых вариантах осуществления настоящего технического решения инструкция на отображение итоговой симплифицированной кривой 210 (или n-ной итоговой симплифицированной кривой) на экране 118 может включать в себя инструкцию на масштабирование визуального представления кривой 208, таким образом, чтобы итоговая симплифицированная кривая 210 выглядела больше или меньше.[0092] The machine-readable instructions stored in the local information memory 114, when executed, can further trigger the processor 116 to draw the final simplicated curve 210 (or the second final simplicated curve, or the nth final simplicated curve, etc., depending on how many iterations were required to reach the final point) on screen 118. In some embodiments of the present technical solution, rendering the final simplicated curve 210 (or the nth final simplicated of the nth curve (not shown)) on the screen 118 is a drawing of a scaled visual representation of the resulting simplicated curve 210. In some embodiments of the present technical solution, the instruction to display the resulting simplicated curve 210 (or the nth summary simplicated curve) on the screen 118 may include instructions for scaling the visual representation of curve 208 so that the resulting simplicated curve 210 looks larger or smaller.

[0093] В некоторых вариантах осуществления настоящего технического решения процессор 116 отправляет инструкции движку отрисовки (не изображен), на отображение итоговой симплифицированной кривой 210 (или n-ной итоговой симплифицированной кривой) на экране 118. Движок отрисовки может быть браузерным движком отрисовки или общим движком отрисовки, т.е. частью операционной системы (не изображена) или клиентского устройства 112.[0093] In some embodiments of the present technical solution, the processor 116 sends instructions to the rendering engine (not shown) to display the resulting simplicated curve 210 (or the nth resulting simplicated curve) on screen 118. The rendering engine may be a browser rendering engine or a common engine renderings i.e. part of an operating system (not shown) or client device 112.

[0094] Следует отметить, что клиентское устройство 112 соединено с сетью 110 передачи данных через линию 124 передачи данных. В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п. Клиентское устройство 112 может устанавливать соединения по сети 110 передачи данных с другими устройствами, например, с серверами. Более конкретно, клиентское устройство 112 может устанавливать соединения и взаимодействовать с сервером 102.[0094] It should be noted that the client device 112 is connected to the data network 110 through the data line 124. In some non-limiting embodiments of the present technical solution, the data network 110 may be the Internet. In other embodiments of the present technical solution, the data network 110 may be implemented differently - in the form of a global data network, a local data network, a private data network, or the like. Client device 112 may establish connections over data network 110 with other devices, such as servers. More specifically, client device 112 can establish connections and communicate with server 102.

[0095] Реализация линии 124 передачи данных не ограничена и будет зависеть от того, какое клиентское устройство 112 используется. В качестве примера, но не ограничения, в данных вариантах осуществления настоящего технического решения в случаях, когда клиентское устройство 112 представляет собой беспроводное устройство связи (например, смартфон), линия 124 передачи данных представляет собой беспроводную сеть передачи данных (например, среди прочего, линия передачи данных 3G, линия передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где клиентское устройство 112 представляет собой портативный компьютер, линия 124 передачи данных может быть как беспроводной (беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п) так и проводной (соединение на основе сети Ethernet).[0095] The implementation of the data link 124 is not limited and will depend on which client device 112 is being used. By way of example, but not limitation, in these embodiments of the present technical solution, in cases where the client device 112 is a wireless communication device (eg, a smartphone), the data link 124 is a wireless data network (for example, inter alia, the line 3G data transfer, 4G data line, Wireless Fidelity or WiFi®, Bluetooth®, etc.). In those examples where the client device 112 is a laptop computer, the data link 124 can be either wireless (Wireless Internet Wireless Fidelity or WiFi®, Bluetooth®, etc.) or wired (Ethernet-based connection).

[0096] Важно иметь в виду, что варианты реализации клиентского устройства 112, линии 124 передачи данных и сети 110 передачи данных приведены исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других конкретных вариантов осуществления клиентского устройства 112, линии 124 передачи данных и сети 110 передачи данных. То есть, представленные здесь примеры не ограничивают объем настоящего технического решения.[0096] It is important to keep in mind that embodiments of client device 112, data lines 124, and data networks 110 are provided for illustrative purposes only. Thus, those skilled in the art will be able to understand the details of other specific embodiments of client device 112, data link 124, and data network 110. That is, the examples presented here do not limit the scope of this technical solution.

[0097] На Фиг. 3 представлен компьютерный способ 300 симплификации кривой, способ выполняется на компьютерном устройстве 102, 112 системы 100 с Фиг. 1.[0097] In FIG. 3 shows a computer method 300 for curve simplicity, the method is performed on a computer device 102, 112 of the system 100 of FIG. one.

[0098] Этап 302 - получение инструкции на симплификацию кривой[0098] Step 302 — Obtaining an instruction to simulate a curve

[0099] Способ 300 начинается на этапе 302, на котором компьютерное устройство, в этом варианте осуществления настоящего технического решения являющееся сервером 102, получает инструкцию на симплификацию кривой 208, 500.[0099] The method 300 begins at block 302, in which the computer device, in this embodiment of the present technical solution, which is the server 102, receives instructions to simulate a curve 208, 500.

[00100] Следует иметь в виду, что, хотя способ 300 описан здесь с учетом варианта осуществления настоящего технического решения, в котором компьютерное устройство является сервером 102, это описание представлено здесь исключительно для примера, и способ 300 может быть выполнен с соответствующими изменениями в других вариантах осуществления настоящего технического решения, в которых компьютерное устройство является клиентским устройством 112.[00100] It should be borne in mind that, although the method 300 is described here taking into account an embodiment of the present technical solution, in which the computer device is a server 102, this description is presented here by way of example only, and the method 300 may be performed with corresponding changes in other embodiments of the present technical solution, in which the computer device is a client device 112.

[00101] Кривая 208, 500 в общем случае определяется множеством координат вершин. Кривая 208, 500 может быть частью графического объекта (не изображен) любой формы, например (без введения ограничений), карты, фотографии, изображения, видео, видеоигры, многоугольного объекта и так далее. Кривая 208, 500 может быть частью двумерного (2D) или трехмерного (3D) графического объекта. Графический объект может быть отрисован в веб-браузере (например, в области содержимого окна), в клиенте электронной почты, в электронной книге или в другом приложении, отображающем графическое содержимое (например, в картографическом приложении). Альтернативно, графический объект может быть отрисован общим движком отрисовки операционной системы компьютерного устройства (например, сервера 102 или клиентского устройства 112).[00101] Curve 208, 500 is generally defined by the plurality of vertex coordinates. Curve 208, 500 may be part of a graphic object (not shown) of any shape, for example (without imposing restrictions), maps, photographs, images, videos, video games, polygonal objects, and so on. Curve 208, 500 may be part of a two-dimensional (2D) or three-dimensional (3D) graphical object. A graphic can be rendered in a web browser (for example, in the window's content area), in an email client, in an e-book, or in another application displaying graphic content (for example, in a map application). Alternatively, a graphical object may be rendered by a common rendering engine of a computer device's operating system (e.g., server 102 or client device 112).

[00102] В некоторых вариантах осуществления настоящего технического решения кривая 208, 500 является частью пограничной линии или границы (например, граница страны, граница моря, граница земельного владения), нарисованной на карте (не изображена).[00102] In some embodiments of the present technical solution, curve 208, 500 is part of a border line or border (for example, a country border, a sea border, a land ownership border) drawn on a map (not shown).

[00103] Существует множество ситуаций, в которой может быть получена инструкция на симплификацию кривой 208, 500. Например, симплификация кривых является ключевым этапом генерализации карт; линии - наиболее распространенный элемент в картографии. Инструкция на симплификацию кривой 208, 500 может, следовательно, быть получена как часть инструкции на масштабирование части карты. В других вариантах осуществления настоящего технического решения инструкция на симплификацию кривой 208, 500 может быть получена как часть инструкции на отображение объекта (например, замка, лодки, дракона и т.д.) в видеоигре или в иллюстрации. В других вариантах осуществления настоящего технического решения инструкция на симплификацию кривой 208, 500 может быть получена как часть инструкции на уменьшение размера изображения для загрузки на электронное устройство или с электронного устройства или для сохранения, или для уменьшения плотности данных графических объектов компьютерной мультипликации. В других вариантах осуществления настоящего технического решения инструкция на симплификацию кривой 208, 500 может быть получена как часть инструкции на редактуру изображения или видео, или для 3D-редактирования. В других вариантах осуществления настоящего технического решения инструкция на симплификацию кривой 208, 500 может быть получена как часть инструкции на преобразование исходных данных, чтобы уменьшить объем данных, или для более компактного хранения данных, или для слияния разномасштабных баз данных. Возможно множество других вариантов осуществления настоящего технического решения. Следует понимать, что контекст, в котором происходит получение инструкций на симплификацию кривой 208, 500 никак конкретно не ограничен.[00103] There are many situations in which instructions for simulating a curve 208, 500 can be obtained. For example, curve simplicity is a key step in map generalization; lines are the most common element in cartography. An instruction to simulate a curve 208, 500 can therefore be obtained as part of an instruction to scale a part of the map. In other embodiments of the present technical solution, instructions for simulating a curve 208, 500 can be obtained as part of instructions for displaying an object (e.g., castle, boat, dragon, etc.) in a video game or illustration. In other embodiments of the present technical solution, instructions for simulating a curve 208, 500 can be obtained as part of instructions for reducing the size of an image to be downloaded to an electronic device or from an electronic device or to save or to reduce the data density of computer-generated graphic objects. In other embodiments of the present technical solution, instructions for simulating a curve 208, 500 can be obtained as part of instructions for editing an image or video, or for 3D editing. In other embodiments of the present technical solution, an instruction to simulate a curve 208, 500 can be obtained as part of an instruction to transform the original data in order to reduce the amount of data, or to store data more compactly, or to merge databases of different sizes. Many other embodiments of the present technical solution are possible. It should be understood that the context in which instructions for simulating the curve 208, 500 are received is not specifically limited.

[00104] Кроме того, графические объекты могут иметь различные источники. Например, графические объекты могут быть сканированными изображениями, изображениями, загруженными с удаленного сервера и так далее. В некоторых вариантах осуществления настоящего технического решения данные отрисовки, представляющие графический объект и/или кривую 208, 500, сохраняются на носителе 104 информации, например, в базе данных 106. В альтернативных вариантах осуществления настоящего технического решения данные отрисовки, представляющие графический объект и/или кривую 208, 500 получены (например, загружены) сервером 102 с клиентского устройства 112 по сети 110 передачи данных. В других вариантах осуществления настоящего технического решения данные отрисовки, представляющие графический объект и/или кривую 208, 500 извлечены (например, загружены) с внешнего источника по сети 110 передачи данных.[00104] In addition, graphic objects may have various sources. For example, graphic objects may be scanned images, images downloaded from a remote server, and so on. In some embodiments of the present technical solution, rendering data representing a graphic object and / or curve 208, 500 is stored on a storage medium 104, for example, in a database 106. In alternative embodiments of the present technical solution, rendering data representing a graphic object and / or a curve 208, 500 is received (for example, downloaded) by the server 102 from the client device 112 over the data network 110. In other embodiments of the present technical solution, rendering data representing a graphical object and / or curve 208, 500 is extracted (for example, downloaded) from an external source via data network 110.

[00105] В таком варианте осуществления настоящего технического решения сервер 102 запрашивает кривую 208, 500 с внешнего источника (не изображен), который может являться, например, поставщиком картографических данных. В других вариантах осуществления настоящего технического решения источником кривой 208, 500 может являться любой подходящий источник, например, любое устройство, которое оптически сканирует изображения и преобразует их в цифровые изображения. Кроме того, сервер 102 может преобразовать графический объект из растрового формата изображения в векторный формат изображения и наоборот.[00105] In such an embodiment of the present technical solution, the server 102 requests a curve 208, 500 from an external source (not shown), which may be, for example, a map data provider. In other embodiments of the present technical solution, the source of the curve 208, 500 may be any suitable source, for example, any device that optically scans images and converts them into digital images. In addition, server 102 can convert a graphic from a raster image format to a vector image format and vice versa.

[00106] Затем способ 300 переходит к этапу 304.[00106] Then, the method 300 proceeds to step 304.

[00107] Этап 304 - выполнение первого алгоритма симплификации, который предварительно определен, выполнение симплификации кривой и, таким образом, создание первой симплифицированной кривой и параметров формы первой симплифицированной кривой[00107] Step 304 is the execution of a first simplification algorithm that is predefined, performing a curve simplicity, and thus creating a first simulated curve and shape parameters of a first simulated curve

[00108] Далее, на этапе 304 сервер 102 выполняет первый алгоритм симплификации (не изображен).[00108] Next, at step 304, the server 102 executes the first simplicity algorithm (not shown).

[00109] Первый алгоритм симплификации предварительно определен. Следует иметь в виду, что первый алгоритм симплификации никак конкретно не ограничен. Может быть использован любой подходящий алгоритм для симплификации кривых и создания параметров формы симплифицированных кривых. В некоторых неограничивающих вариантах осуществления настоящего технического решения первый алгоритм симплификации линий выбирается из алгоритмов Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (sleeve-fitting (SF)), функции представления (turning function (TF)), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния. Известны и другие алгоритмы симплификации; они также могут быть использованы как первый алгоритм симплификации. Первый алгоритм симплификации может быть предварительно выбран на основе нескольких критериев, например, типа графического объекта, включающего в себя кривую для симплификации, источника графического объекта, источника, из которого получена инструкция, пригодности конкретного алгоритма для конкретного типа кривой/параметров формы и так далее. Например, алгоритм RDP часто хорошо подходит для работы с кривыми на картах, и может быть выбран для приложения, включающего в себя генерализацию карт. В примерах, показанных на Фиг. 2 и Фиг. 5, алгоритм RDP выбирается как первый алгоритм симплификации, однако, следует понимать, что эти примеры показаны исключительно с иллюстративными целями и не должны рассматриваться как ограничивающие.[00109] The first simplification algorithm is predefined. It should be borne in mind that the first simplification algorithm is not specifically limited. Any suitable algorithm can be used to simulate the curves and create the shape parameters of the simplicated curves. In some non-limiting embodiments of the implementation of the present technical solution, the first line simplicity algorithm is selected from the Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao-Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP version, “sleeve fitting” algorithms (sleeve-fitting (SF)), presentation functions (turning function (TF)), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm. Other simulation algorithms are also known; they can also be used as the first simplicity algorithm. The first simplification algorithm can be pre-selected based on several criteria, for example, the type of graphic object, which includes a curve for simplication, the source of the graphic object, the source from which the instruction is received, the suitability of a particular algorithm for a particular type of curve / shape parameters, and so on. For example, the RDP algorithm is often well suited for working with curves on maps, and can be selected for an application that includes map generalization. In the examples shown in FIG. 2 and FIG. 5, the RDP algorithm is selected as the first simplification algorithm, however, it should be understood that these examples are shown for illustrative purposes only and should not be construed as limiting.

[00110] На этапе 304 первый алгоритм симплификации симплифицирует кривую 208, 500, таким образом создавая первую симплифицированную кривую 200, 502, и в то же время создавая параметры формы первой симплифицированной кривой 200, 502. В вариантах осуществления настоящего технического решения, показанных на Фиг. 2 и Фиг. 5, первым алгоритмом симплификации является алгоритм RDP, который выполняется для создания первой симплифицированной кривой 200, 502, а также параметров ее формы. Как будет понятно специалисту в данной области техники создание параметров формы первой симплифицированной кривой 200, 502 является частью способа симплификации, осуществляемого первым алгоритмом симплификации.[00110] In step 304, the first simplicity algorithm simulates the curve 208, 500, thereby creating the first simplicated curve 200, 502, and at the same time, creating the shape parameters of the first simplicated curve 200, 502. In the embodiments of the present technical solution shown in FIG. . 2 and FIG. 5, the first simplification algorithm is the RDP algorithm, which is performed to create the first simulated curve 200, 502, as well as its shape parameters. As will be appreciated by a person skilled in the art, creating the shape parameters of a first simplicated curve 200, 502 is part of the simplication method implemented by the first simpification algorithm.

[00111] В алгоритме RDP конкретно указано расстояние максимального отклонения dmax (например, 5 км). Первая и последняя точки линии помечаются как «сохранить». Определяется прямой сегмент линии от первой точки P1 до последней точки Pn исходной линии, и происходит проверка точек исходной линии на то, не превосходят ли они максимальное расстояние dmax от сегмента линии. Если какие-то из них превосходят, точка Pi, самая удаленная от сегмента линии, помечается как «сохранить», и такая же операция проводится с частями линии от начала P1 до самой удаленной точки Pi и от самой удаленной точки Pi до конечной точки Pn. Этот процесс проверки, отметки и подразделения применяется рекурсивно, пока исходная линия не делится на части таким образом, что сегменты линии с начала и до конца каждой части находятся не дальше, чем расстояние максимального отклонения dmax, из любой промежуточной точки.[00111] The RDP algorithm specifically indicates the maximum deviation distance d max (eg, 5 km). The first and last points of the line are marked as “save”. A straight line segment is determined from the first point P 1 to the last point P n of the original line, and the points of the initial line are checked to see if they exceed the maximum distance d max from the line segment. If any of them are superior, the point P i farthest from the line segment is marked as “save”, and the same operation is performed with parts of the line from the beginning of P 1 to the farthest point P i and from the farthest point P i to endpoint P n. This process of checking, marking and subdivision is applied recursively until the original line is divided into parts so that the line segments from the beginning to the end of each part are no further than the maximum deviation d max from any intermediate point.

[00112] Другие алгоритмы используют другие способы и могут создавать другие параметры формы. Конкретные созданные параметры формы будут зависеть от того, какой алгоритм симплификации используется как первый алгоритм симплификации. Неограничивающие примеры параметров формы включают в себя длину и угол наклона, изогнутость, расстояние высот, перепад высот, полезную площадь для точки (например, определенную по алгоритму Висвалингема-Уайятта), комплексность, монотонность, длину между точками, среднюю длину сегмента, плотность точек и сочетание перечисленного.[00112] Other algorithms use different methods and may create other form parameters. The specific form parameters created will depend on what kind of simulation algorithm is used as the first simulation algorithm. Non-limiting examples of shape parameters include length and angle, bend, height, height difference, useful area for a point (e.g., determined by the Wiswalingem-Wyatt algorithm), complexity, monotonicity, length between points, average segment length, point density and a combination of the above.

[00113] Затем способ 300 переходит к этапу 306.[00113] Then, the method 300 proceeds to step 306.

[00114] Этап 306 - определение множества однородных сегментов первой симплифицированной кривой на основе параметров формы[00114] Step 306 - determining a plurality of homogeneous segments of the first simplicated curve based on shape parameters

[00115] Далее, на этапе 306 определяется множество однородных сегментов 202, 204, 206 первой симплифицированной кривой 200 (или же, если брать в расчет Фиг. 5, однородных сегментов 504, 506, 508, 510, 512 первой симплифицированной кривой 502). Однородные сегменты 202, 204, 206, 504, 506, 508, 510, 512 определяются на основе параметров формы первой симплифицированной кривой 200, 502, причем параметры формы созданы во время симплификации кривой 200, 502, как описано выше. В вариантах осуществления настоящего технического решения, показанных на Фиг. 2 и Фиг. 5, однородные сегменты 202, 204, 206, 504, 506, 508, 510, 512 были определены анализом характеристик вершин (например, расстояние высот, перепад высот, монотонность) первой симплифицированной кривой 200, 502. На основе таких характеристик первая симплифицированная кривая 200 подразделяется на три однородных сегмента 202, 204, 206, причем каждый однородный сегмент 202, 204, 206 представляет часть первой симплифицированной кривой 200, в которой поведение вершин одинаково или очень близко. В примере на Фиг. 2 первый однородный сегмент 202 является сегментом, в котором длина каждого сегмента соответствует высоте линии (в соответствии с параметрами формы, созданными первым алгоритмом симплификации, который в этом примере является алгоритмом RDP). Второй однородный сегмент 204 является другим сегментом первой симплифицированной кривой 200 с плотно расположенными сегментами почти одинаковой высоты. Третий однородный сегмент 206 является немонотонным сегментом первой симплифицированной кривой 200. Аналогично, в примере, показанном на Фиг. 5, было определено пять однородный сегментов 504, 506, 508, 510, 512 на основе характеристик формы.[00115] Next, at step 306, a plurality of homogeneous segments 202, 204, 206 of the first simplicated curve 200 is determined (or, if you take into account Fig. 5, homogeneous segments 504, 506, 508, 510, 512 of the first simplicated curve 502). Homogeneous segments 202, 204, 206, 504, 506, 508, 510, 512 are determined based on the shape parameters of the first simplicated curve 200, 502, the shape parameters being created during the simplicity of curve 200, 502, as described above. In the embodiments of the present technical solution shown in FIG. 2 and FIG. 5, the homogeneous segments 202, 204, 206, 504, 506, 508, 510, 512 were determined by analyzing the characteristics of the vertices (for example, height distance, elevation difference, monotony) of the first simulated curve 200, 502. Based on these characteristics, the first simulated curve 200 is divided into three homogeneous segments 202, 204, 206, each homogeneous segment 202, 204, 206 representing part of the first simplicated curve 200, in which the behavior of the vertices is the same or very close. In the example of FIG. 2, the first homogeneous segment 202 is a segment in which the length of each segment corresponds to the line height (in accordance with the shape parameters created by the first simulation algorithm, which in this example is the RDP algorithm). The second homogeneous segment 204 is another segment of the first simplicated curve 200 with densely spaced segments of almost equal height. The third homogeneous segment 206 is a nonmonotonic segment of the first simplicated curve 200. Similarly, in the example shown in FIG. 5, five uniform segments 504, 506, 508, 510, 512 were determined based on shape characteristics.

[00116] Как показано на Фиг. 2 и Фиг. 5, однородные сегменты 202, 204, 206, 504, 506, 508, 510, 512 могут включать в себя множество сегментов первой симплифицированной кривой 200, 502, причем каждый из множества сегментов имеет одинаковые или по меньшей мере крайне близкие параметры формы. Два сегмента в общем случае считаются одинаковыми, если у них один или несколько параметров формы одинаковы или по меньшей мере, очень близки. Как будет понятно специалистам в данной области техники параметры формы, используемые для определения однородности, будут отличаться в зависимости от алгоритма симплификации, используемого для создания параметров формы для данной кривой. Соответственно, множество определенных однородных сегментов также будет различаться в зависимости от использованного алгоритма симплификации.[00116] As shown in FIG. 2 and FIG. 5, homogeneous segments 202, 204, 206, 504, 506, 508, 510, 512 may include multiple segments of the first simplicated curve 200, 502, each of the multiple segments having the same or at least extremely close shape parameters. Two segments are generally considered identical if they have one or more shape parameters that are the same or at least very close. As will be appreciated by those skilled in the art, the shape parameters used to determine uniformity will differ depending on the simulation algorithm used to create the shape parameters for a given curve. Accordingly, a plurality of defined homogeneous segments will also vary depending on the simulation algorithm used.

[00117] В некоторых вариантах осуществления настоящего технического решения множество однородных сегментов определяется первым алгоритмом симплификации, после создания параметров формы первой симплифицированной кривой 200, 502. В альтернативных неограничивающих вариантах осуществления настоящего технического решения множество однородных сегментов определяется другим алгоритмом, например, алгоритмом симплификации, отличающимся от первого алгоритма симплификации, на основе параметров формы первой симплифицированной кривой 200, 502, которые были созданы первым алгоритмом симплификации. Способ, по которому определяется множество однородных сегментов, никак конкретно не ограничен. Известно и может быть использовано на этапе 306 множество таких способов. Например, множество однородных сегментов может быть определено с использованием (без введения ограничений) одного или нескольких: способа удаления точек, способа на основе измерений, способа критических точек, способа геометрического анализа, способа на основе частоты и способа на основе базы знаний (для обзора этих способов см., например, Lopez, F.J.A. and Balboa, J.L.G., Pattern Recognition, vol. 41, pp. 1593-1609, 2008, содержание этой работы включено здесь в полном объеме посредством ссылки).[00117] In some embodiments of the present technical solution, a plurality of homogeneous segments is determined by the first simplicization algorithm, after creating the shape parameters of the first simplicated curve 200, 502. In alternative non-limiting embodiments of the present technical solution, the plurality of homogeneous segments is determined by another algorithm, for example, a simplicity algorithm from the first simplification algorithm, based on the shape parameters of the first simulated curve 200, 502, which e were created first simplification algorithm. The method by which a plurality of homogeneous segments is determined is not particularly limited. At 306, many such methods are known and may be used. For example, many homogeneous segments can be determined using one or more (without imposing restrictions): a method of removing points, a method based on measurements, a method of critical points, a method of geometric analysis, a method based on frequency and a method based on a knowledge base (to review these for methods, see, for example, Lopez, FJA and Balboa, JLG, Pattern Recognition, vol. 41, pp. 1593-1609, 2008, the contents of this work are hereby incorporated by reference in their entirety).

[00118] Следует отметить, что в некоторых (маловероятных) случаях, если первая симплифицированная кривая 200, 502 является однородной по всей своей длине, тогда определяется только один однородный сегмент (а не множество однородных сегментов). В этом случае способ, тем не менее, переходит к этапу 308, как будто множество однородных точек все же было определено.[00118] It should be noted that in some (unlikely) cases, if the first simplicated curve 200, 502 is uniform along its entire length, then only one homogeneous segment is determined (and not a plurality of homogeneous segments). In this case, the method, however, proceeds to step 308, as if a plurality of uniform points were still determined.

[00119] Затем способ 300 переходит к этапу 308.[00119] Then, the method 300 proceeds to step 308.

[00120] Этап 308 - симплификация каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, который был выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; такая симплификация создает итоговую симплифицированную кривую.[00120] Step 308 - simplicity of each homogeneous segment using the corresponding second simplicity algorithm, which was selected from the set of predefined second simplicity algorithms, independently for each homogeneous segment based on the shape parameters of the corresponding homogeneous segment; this simification creates a final simplicized curve.

[00121] Далее, на этапе 308 сервер 102 переходит ко второму этапу симплификации, на котором каждый симплифицированный однородный сегмент 202, 204, 206, 504, 506, 508, 510, 512 в первой симплифицированной кривой 200, 502 снова симплифицируется с использованием второго алгоритма симплификации (не изображен). Второй алгоритм симплификации выбирается независимо для каждого однородного сегмента 202, 204, 206, 504, 506, 508, 510, 512 на основе параметров формы соответствующего однородного сегмента 202, 204, 206, 504, 506, 508, 510, 512. Как будет понятно специалистам в данной области техники различные алгоритмы симплификации лучше всего подходят для симплификации различных типов кривых, в зависимости от параметров формы конкретной кривой и способа, используемого конкретным алгоритмом для симплификации линий. Вторые алгоритмы симплификации предварительно определены в соответствии с критериями для выбора алгоритма симплификации, подходящего для конкретных параметров формы сегмента линии. Такие критерии для выбора алгоритма симплификации, подходящего для конкретных параметров формы сегмента линии, известны в данной области техники (см., например, Park, W. and Yu, K., Pattern Recognition Letters 32 (2011), pp. 1267-73, содержание этой работы включено здесь в полном объеме посредством ссылки). На этапе 308 второй алгоритм симплификации выбирается из множества предварительно определенных вторых алгоритмов симплификации на основе параметров формы каждого соответствующего однородного сегмента 202, 204, 206, 504, 506, 508, 510, 512, который должен быть симплифицирован. В каждом случае выбирается второй алгоритм симплификации, лучше всего подходящий для конкретных параметров формы конкретного однородного сегмента.[00121] Next, at step 308, the server 102 proceeds to the second step of simplicity, in which each simplicated homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512 in the first simplicated curve 200, 502 is again simplicated using the second algorithm simplifications (not shown). The second simplification algorithm is selected independently for each homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512 based on the shape parameters of the corresponding homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512. As will be understood Different simulations are best suited to those skilled in the art for simulating different types of curves, depending on the shape parameters of the particular curve and the method used by the particular algorithm to simulate the lines. The second simulation algorithms are predefined in accordance with the criteria for selecting a simulation algorithm suitable for specific parameters of the line segment shape. Such criteria for selecting a simulation algorithm suitable for particular line segment shape parameters are known in the art (see, for example, Park, W. and Yu, K., Pattern Recognition Letters 32 (2011), pp. 1267-73, the contents of this work are hereby incorporated by reference in their entirety). At step 308, the second simplification algorithm is selected from the plurality of predefined second simplification algorithms based on the shape parameters of each corresponding homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512, which should be simulated. In each case, a second simplification algorithm is selected that is best suited for specific shape parameters of a particular homogeneous segment.

[00122] Множество предварительно определенных вторых алгоритмов симплификации никак конкретно не ограничено. В некоторых неограничивающих вариантах осуществления настоящего технического решения множество предварительно определенных вторых алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния. Известны и другие алгоритмы; они также могут быть использованы.[00122] The plurality of predefined second simulation algorithms is not particularly limited. In some non-limiting embodiments of the present technical solution, a plurality of predetermined second simplification algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan , RDP option, sleeve-fitting (SF) algorithm, turning function (TF), point numbering algorithm (N-th point), radial distance, perpendicular distance algorithm. Other algorithms are known; they can also be used.

[00123] Второй алгоритм симплификации может быть, а может и не быть таким же, что и первый алгоритм симплификации, в зависимости от параметров формы соответствующего однородного сегмента 202, 204, 206, 504, 506, 508, 510, 512.[00123] The second simulation algorithm may or may not be the same as the first simulation algorithm, depending on the shape parameters of the corresponding homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512.

[00124] Например, в иллюстрации, приведенной на Фиг. 2, первый однородный сегмент 202 лучше всего подходит для симплификации с помощью алгоритма RDP. Соответственно, в этом примере первый однородный сегмент 202 симплифицируется на этапе 308 с помощью алгоритма RDP. Напротив, второй однородный сегмент 204 лучше всего подходит для алгоритма Рейманна-Уиткема. Соответственно, в этом примере второй однородный сегмент 204 симплифицируется на этапе 308 с помощью алгоритма Рейманна-Уиткема. Третий однородный сегмент 206 лучше всего подходит для симплификации с помощью алгоритма Опхайма, и соответственно, в этом примере, третий однородный сегмент 206 симплифицируется на этапе 308 с помощью алгоритма Опхайма. Следует иметь в виду, что возможно множество других вариантов этого способа, в зависимости от параметров формы однородных сегментов и характеристик доступных алгоритмов симплификации.[00124] For example, in the illustration of FIG. 2, the first homogeneous segment 202 is best suited for simplicity using the RDP algorithm. Accordingly, in this example, the first homogeneous segment 202 is simplicated in step 308 using the RDP algorithm. In contrast, the second homogeneous segment 204 is best suited for the Reimann-Witkem algorithm. Accordingly, in this example, the second homogeneous segment 204 is simplicated in step 308 using the Reimann-Witkem algorithm. The third homogeneous segment 206 is best suited for simplicity using the Opheim algorithm, and accordingly, in this example, the third homogeneous segment 206 is simplicated in step 308 using the Opheim algorithm. It should be borne in mind that many other variants of this method are possible, depending on the shape parameters of the homogeneous segments and the characteristics of the available simulation algorithms.

[00125] Аналогично, в иллюстрации, приведенной на Фиг. 5, однородные сегменты 504 и 512 лучше всего подходит для симплификации с помощью алгоритма RDP. Соответственно, в этом примере однородные сегменты 504 и 512 симплифицируются на этапе 308 с помощью алгоритма RDP. Напротив, однородные сегменты 506 и 510 лучше всего подходят для симплификации с помощью алгоритма Висвалингема-Уайятта. Соответственно, в этом примере однородные сегменты 506 и 510 симплифицируются на этапе 308 с помощью алгоритма Висвалингема-Уайятта. Оставшийся однородный сегмент 508 лучше всего подходит для симплификации с помощью алгоритма Опхайма, и соответственно, в этом примере, однородный сегмент 508 симплифицируется на этапе 308 с помощью алгоритма Опхайма. Следует иметь в виду, что возможно множество других вариантов этого способа, в зависимости от параметров формы однородных сегментов и характеристик доступных алгоритмов симплификации.[00125] Similarly, in the illustration of FIG. 5, homogeneous segments 504 and 512 are best suited for simplicity using the RDP algorithm. Accordingly, in this example, the homogeneous segments 504 and 512 are simplicated in step 308 using the RDP algorithm. In contrast, homogeneous segments 506 and 510 are best suited for simplicity using the Wiswalingem-Wyatt algorithm. Accordingly, in this example, the homogeneous segments 506 and 510 are simplicated at step 308 using the Wiswalingem-Wyatt algorithm. The remaining homogeneous segment 508 is best suited for simplicity using the Opheim algorithm, and accordingly, in this example, the homogeneous segment 508 is simplicated in step 308 using the Opheim algorithm. It should be borne in mind that many other variants of this method are possible, depending on the shape parameters of the homogeneous segments and the characteristics of the available simulation algorithms.

[00126] В некоторых вариантах осуществления настоящего технического решения, когда компьютерное устройство является сервером 102 (как в варианте осуществления настоящего технического решения, изображенном здесь), способ 300 может дополнительно включать в себя этап (не изображен) отправки на клиентское устройство 112 инструкции на отображение итоговой симплифицированной кривой 210, 514 на экране 118 клиентского устройства 112. В некоторых вариантах осуществления настоящего технического решения инструкция на отображение итоговой симплифицированной кривой 210, 514 на экране 118 клиентского устройства 112 включает в себя инструкцию на масштабирование визуального представления кривой 208, 500. Например, инструкция отобразить итоговую симплифицированную кривую 210, 514 на экране 118 клиентского устройства 112 может быть частью инструкции на масштабирование части карты. В таком случае инструкции, полученные на этапе 302, могут также быть частью инструкции на масштабирование части карты. В альтернативном варианте осуществления настоящего технического решения инструкция на отображение итоговой симплифицированной кривой 210, 514 на клиентском устройстве 112 может быть частью инструкции на отображение фотографии, причем файл, включающий в себя фотографию, был уменьшен в размере, чтобы уменьшить пространство памяти, занимаемое фотографией. В таком случае инструкции, полученные на этапе 302, могут также быть частью инструкции на уменьшение размера файла с фотографией.[00126] In some embodiments of the present technical solution, when the computer device is a server 102 (as in the embodiment of the present technical solution shown here), the method 300 may further include the step (not shown) of sending display instructions to the client device 112 the resulting simplicated curve 210, 514 on the screen 118 of the client device 112. In some embodiments of the present technical solution, the instruction for displaying the resulting simplicized The second curve 210, 514 on the screen 118 of the client device 112 includes instructions for scaling the visual representation of the curve 208, 500. For example, the instruction to display the final simulated curve 210, 514 on the screen 118 of the client device 112 may be part of the instruction for scaling part of the map. In this case, the instructions obtained in step 302 may also be part of the instructions for scaling part of the map. In an alternative embodiment of the present technical solution, the instruction for displaying the resulting simplicated curve 210, 514 on the client device 112 may be part of the instruction for displaying a photograph, the file including the photograph being reduced in size to reduce the memory space occupied by the photograph. In this case, the instructions obtained in step 302 may also be part of the instructions for reducing the size of the photo file.

[00127] В альтернативных вариантах осуществления настоящего технического решения, когда компьютерное устройство является клиентским устройством 112, способ 300 может дополнительно включать в себя этап (не изображен) отрисовки итоговой симплифицированной кривой 210, 514 на экране 118 клиентского устройства 112. В некоторых вариантах осуществления настоящего технического решения отрисовка итоговой симплифицированной кривой 210, 514 на экране 118 клиентского устройства 112 включает в себя масштабирование визуального представления кривой 208, 500. В некоторых вариантах осуществления настоящего технического решения итоговая симплифицированная кривая 210, 514 отрисована на экране 118 с помощью движка отрисовки (не изображен), например, браузерного движка отрисовки или общего движка отрисовки, который является частью операционной системы (не изображена) сервера 102 или клиентского устройства 112.[00127] In alternative embodiments of the present technical solution, when the computer device is a client device 112, the method 300 may further include the step (not shown) of rendering the final simulated curve 210, 514 on the screen 118 of the client device 112. In some embodiments, the implementation of the present of a technical solution, rendering the final simplicated curve 210, 514 on the screen 118 of the client device 112 includes scaling the visual representation of the curve 208, 500. In some In other embodiments of the present technical solution, the final simulated curve 210, 514 is drawn on the screen 118 using a rendering engine (not shown), for example, a browser rendering engine or a general rendering engine, which is part of the operating system (not shown) of the server 102 or client device 112 .

[00128] В некоторых вариантах осуществления настоящего технического решения способ 300 завершается после этапа 308. Например, если желаемый конечный пункт был достигнут, то способ 300 завершается после этапа 308. Желаемый конечный пункт может являться (не вводя ограничений) одним или несколькими пунктами из: желаемый порог масштабирования, желаемое разрешение, использование выделенной памяти, использование выделенного времени. Например, когда получена инструкция на масштабирование части карты, а кривая 208, 500 является пограничной линией на части карты, то, если был достигнут желаемый порог масштабирования после этапа 308, способ 300 завершается. В некоторых вариантах осуществления настоящего технического решения способ 300 завершается в этом случае после отрисовки итоговой симплифицированной кривой 210, 514 (как части масштабированной области карты) на экране 118 клиентского устройства 112.[00128] In some embodiments of the present technical solution, method 300 ends after step 308. For example, if the desired endpoint has been reached, then method 300 ends after step 308. The desired endpoint may (without imposing restrictions) be one or more of: desired scaling threshold, desired resolution, use of allocated memory, use of allocated time. For example, when an instruction to scale a part of the map is received, and curve 208, 500 is the boundary line on the part of the map, then if the desired scaling threshold is reached after step 308, the method 300 ends. In some embodiments of the present technical solution, the method 300 ends in this case after drawing the final simplicated curve 210, 514 (as part of the scaled area of the map) on the screen 118 of the client device 112.

[00129] Однако в альтернативных вариантах осуществления настоящего технического решения желаемый конечный пункт может не быть достигнут после этапа 308. В этом случае требуется дальнейшая симплификация итоговой симплифицированной кривой 210, 514, и способ 300 продолжается на этапах 402, 404 способа 400, на котором каждый симплифицированный однородный сегмент (не изображен) в составе итоговой симплифицированной кривой 210, 514 подвергается дальнейшей симплификации.[00129] However, in alternative embodiments of the present technical solution, the desired end point may not be reached after step 308. In this case, further simplification of the final simplicated curve 210, 514 is required, and method 300 continues to steps 402, 404 of method 400, in which the simplicated homogeneous segment (not shown) in the composition of the resulting simplicated curve 210, 514 undergoes further simplicity.

[00130] На Фиг. 4 представлен компьютерный способ 400, который выполняется на компьютерном устройстве 102, 112 системы 100 с Фиг. 1. Способ 400 является опциональным расширением способа 300, в котором практически повторяются этапы 306 и 308 для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой 210, 514.[00130] In FIG. 4 shows a computer method 400 that runs on a computer device 102, 112 of system 100 of FIG. 1. Method 400 is an optional extension of method 300, in which steps 306 and 308 are practically repeated for each simplicized homogeneous segment of the resulting simplicated curve 210, 514.

[00131] Способ 400 начинается на этапе 402.[00131] The method 400 begins at step 402.

[00132] Этап 402 - для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой определение второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем параметры формы симплифицированного однородного сегмента были созданы соответствующим вторым алгоритмом симплификации[00132] Step 402 - for each simplicized homogeneous segment of the resulting simplicized curve, determining a second set of second homogeneous segments of the simplicated homogeneous segment based on the shape parameters of the simplicated homogeneous segment, and the shape parameters of the simplicated homogeneous segment were created by the corresponding second simification algorithm

[00133] На этапе 402 определяется второе множество вторых однородных сегментов для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой 210, 514 на основе соответствующих параметров его формы. Следует понимать, что, как было описано выше относительно первого алгоритма симплификации и этапа 304, на этапе 308 второй алгоритм симплификации симплифицировал каждый однородный сегмент 202, 204, 206, 504, 506, 508, 510, 512 и, в то же время, создал параметры формы симплифицированных однородных сегментов (не изображены). Как будет понятно специалисту в данной области техники, создание параметров формы симплифицированных однородных сегментов является частью способа симплификации, осуществляемого вторым алгоритмом симплификации на этапе 308 во время создания итоговой симплифицированной кривой 210, 514. В некоторых вариантах осуществления настоящего технического решения определение второго множества вторых однородных сегментов (не изображены) также является частью способа симплификации, осуществленного вторым алгоритмом симплификации на этапе 308 во время создания итоговой симплифицированной кривой 210, 514.[00133] At step 402, a second set of second homogeneous segments for each simplicated homogeneous segment of the resulting simplicated curve 210, 514 is determined based on the corresponding shape parameters. It should be understood that, as described above with respect to the first simplification algorithm and step 304, at step 308, the second simification algorithm simulated each homogeneous segment 202, 204, 206, 504, 506, 508, 510, 512 and, at the same time, created shape parameters of simplicized homogeneous segments (not shown). As will be understood by a person skilled in the art, creating the shape parameters of simplicated homogeneous segments is part of the simplicity method performed by the second simplicity algorithm at step 308 when creating the final simplicated curve 210, 514. In some embodiments of the present technical solution, the second set of second second homogeneous segments is determined (not shown) is also part of the simplicity method implemented by the second simplicity algorithm in step 308 during I am creating the resulting simplified curve 210, 514.

[00134] На этапе 402, как на этапе 306, описанном выше, определяется второе множество вторых однородных сегментов каждого симплифицированного однородного сегмента на основе параметров формы. Соответствующее описание, сделанное для этапа 306, применимо для этапа 402 и не будет здесь приводиться, чтобы избежать повторения.[00134] In step 402, as in step 306 described above, a second plurality of second homogeneous segments of each simplicated homogeneous segment is determined based on the shape parameters. The corresponding description made for step 306 is applicable to step 402 and will not be provided here to avoid repetition.

[00135] Способ 400 далее переходит к выполнению этапа 404.[00135] The method 400 then proceeds to step 404.

[00136] Этап 404 - симплификация каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который был выбран из множества предварительно определенных третьих алгоритмов симплификации, независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; такая симплификация создает вторую итоговую симплифицированную кривую[00136] Step 404 is the simplification of each second homogeneous segment using the corresponding third simification algorithm, which has been selected from a plurality of predefined third simplification algorithms, independently for each second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; this simification creates a second final simplicated curve

[00137] На этапе 404 каждый второй однородный сегмент итоговой симплифицированной кривой 210, 514 симплифицирован с использованием соответствующего третьего алгоритма (не изображен) симплификации, выбранном независимо для каждого второго однородного сегмента (не изображен) на основе соответствующих параметров его формы. Соответствующее описание этапа 308 и второго алгоритма симплификации, приведенное выше, применимо к этапу 404, и не будет здесь приводиться, чтобы избежать повторения.[00137] In step 404, every second homogeneous segment of the resulting simplicated curve 210, 514 is simplicated using the corresponding third simplicity algorithm (not shown), selected independently for each second homogeneous segment (not shown) based on the corresponding shape parameters. The corresponding description of step 308 and the second simplification algorithm above, applies to step 404, and will not be given here to avoid repetition.

[00138] Способ 400 может повторяться по мере необходимости или желания, пока не будет достигнут желаемый конечный пункт. Например, если желаемый конечный пункт достигнут, способ 400 завершается после этапа 404, на котором произошло создание второй итоговой кривой (не изображена). Например, когда получена инструкция на масштабирование части карты, а кривая 208, 500 является пограничной линией на части карты, то, если был достигнут желаемый порог масштабирования после этапа 404, способ 400 завершается. В некоторых вариантах осуществления настоящего технического решения способ 400 завершается в этом случае после отрисовки второй итоговой симплифицированной кривой (как части масштабированной области карты) (не изображена) на экране 118 клиентского устройства 112.[00138] Method 400 may be repeated as necessary or desired until the desired end point is reached. For example, if the desired end point is reached, method 400 ends after step 404, at which a second resulting curve (not shown) was generated. For example, when an instruction to scale a part of a map is received, and curve 208, 500 is a boundary line on a part of the map, then if the desired scaling threshold is reached after step 404, method 400 ends. In some embodiments of the present technical solution, method 400 ends in this case after drawing the second final simplicated curve (as part of the scaled area of the map) (not shown) on screen 118 of client device 112.

[00139] Однако, если желаемый конечный пункт не был достигнут, способ 400 может повторяться, пока не будет достигнут желаемый конечный пункт. В таких вариантах осуществления настоящего технического решения способ, следовательно, является рекурсивным, с постоянно повторяемым определением и симплификацией однородных сегментов n-ной итоговой симплифицированной кривой до достижения желаемого конечного пункта. На каждой итерации алгоритм симплификации независимо выбирается для каждого соответствующего однородного сегмента на основе параметров его формы. Следует понимать, что на каждой итерации алгоритм симплификации также выбирается независимо от алгоритма симплификации, используемого на предыдущих итерациях. Таким образом, алгоритм симплификации, используемый на каждой последующей итерации, может быть таким же алгоритмом симплификации, используемым на предыдущих итерациях для сегмента, а может и не быть таким же; в любом случае алгоритм симплификации выбирается на основе параметров формы сегмента, с использованием предварительно определенных критериев, как было описано выше.[00139] However, if the desired endpoint has not been reached, method 400 may be repeated until the desired endpoint is reached. In such embodiments of the present technical solution, the method is therefore recursive, with constantly repeating the definition and simplication of homogeneous segments of the nth final simplicated curve until the desired end point is reached. At each iteration, the simplification algorithm is independently selected for each corresponding homogeneous segment based on its shape parameters. It should be understood that, at each iteration, the simplicization algorithm is also selected independently of the simplication algorithm used in previous iterations. Thus, the simplicization algorithm used at each subsequent iteration may be the same simplicization algorithm used at previous iterations for the segment, or it may not be the same; in any case, the simplification algorithm is selected based on the shape parameters of the segment, using predefined criteria, as described above.

[00140] Кроме того, в каждом случае, когда желаемый конечный пункт был достигнут, способ может также включать в себя этап отображения n-ной итоговой симплифицированной кривой на экране 118 клиентского устройства 112.[00140] Furthermore, in each case when the desired endpoint has been reached, the method may also include the step of displaying the nth final simplicated curve on the screen 118 of the client device 112.

[00141] Некоторые из описанных выше этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы/получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).[00141] Some of the steps described above, as well as signal transmission-reception, are well known in the art and therefore have been omitted in specific parts of this description for simplicity. Signals can be transmitted / received using optical means (for example, fiber optic connection), electronic means (for example, wired or wireless connection) and mechanical means (for example, based on pressure, temperature or other suitable parameter).

[00142] Некоторые технические эффекты неограничивающих вариантов осуществления настоящего технического решения могут включать предоставление пользователю быстроисполнимого, эффективного и/или рекурсивного способа симплификации кривой. В некоторых вариантах осуществления настоящего технического решения, настоящее техническое решение позволяет выбирать лучше всего подходящий алгоритм симплификации сегмента линии после выполнения выбранного по умолчанию алгоритма симплификации. Сегменты, определенные первым алгоритмом симплификации анализируются для определения того, какой из предварительно определенного множества вторых алгоритмов симплификации лучше всего подходит для конкретного сегмента, после чего происходит симплификация этого сегмента с помощью выбранного второго алгоритма симплификации. В некоторых вариантах осуществления настоящего технического решения способ является рекурсивным, и на каждой итерации для симплификации сегмента может быть использован другой алгоритм симплификации, в зависимости от параметров его формы и того, какой алгоритм лучше всего подходит для этих параметров формы. В некоторых вариантах осуществления настоящего технического решения не требуется дополнительная сегментация или аналитические этапы, которые предваряют симплификацию.[00142] Some of the technical effects of non-limiting embodiments of the present technical solution may include providing the user with a quick, efficient and / or recursive way to simulate a curve. In some embodiments of the present technical solution, the present technical solution allows you to choose the best suitable algorithm for the simplication of the line segment after executing the default simplicity algorithm. The segments defined by the first simplicization algorithm are analyzed to determine which of the predefined set of second simplicity algorithms is best suited for a particular segment, after which the segment is simulated using the selected second simplicity algorithm. In some embodiments of the present technical solution, the method is recursive, and at each iteration, a different simplicization algorithm can be used to simplify the segment, depending on the parameters of its shape and which algorithm is best suited for these shape parameters. In some embodiments, the implementation of the present technical solution does not require additional segmentation or analytical steps that precede the simplification.

[00143] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.[00143] Modifications and improvements to the above-described embodiments of the present technical solution will be apparent to those skilled in the art. The preceding description is provided as an example only and is not subject to any restrictions. Thus, the scope of the present technical solution is limited only by the scope of the attached claims.

[00144] Таким образом, с некоторой точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, структурированно, пронумерованными пунктами:[00144] Thus, from a certain point of view, embodiments of the present technical solution can be stated as follows, in a structured, numbered paragraphs:

[00145] ПУНКТ 1. Способ симплификации кривой (208, 500), выполняемый на компьютерном устройстве (102, 112) и включающий в себя этапы:[00145] ITEM 1. A method of simplification of a curve (208, 500), performed on a computer device (102, 112) and including the steps:

[00146] а) получения инструкций на симплификацию кривой (208, 500);[00146] a) receiving instructions for curve simplicity (208, 500);

[00147] б) выполнения первого алгоритма симплификации, который был предварительно определен, причем выполнение первого алгоритма симплификации симплифицирует кривую (208, 500) и, таким образом, создает первую симплифицированную кривую (200, 502) и параметры формы первой симплифицированной кривой (200, 502);[00147] b) the execution of the first simplification algorithm, which has been predefined, and the execution of the first simification algorithm simulates the curve (208, 500) and, thus, creates the first simulated curve (200, 502) and the shape parameters of the first simulated curve (200, 502);

[00148] в) определения множества однородных сегментов (202, 204, 206, 504, 506, 508, 510, 512) первой симплифицированной кривой (200, 502) на основе параметров формы; и[00148] c) determining a plurality of homogeneous segments (202, 204, 206, 504, 506, 508, 510, 512) of the first simplicated curve (200, 502) based on the shape parameters; and

[00149] г) симплификации каждого однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) с использованием соответствующего второго алгоритма симплификации, который был выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) на основе параметров формы соответствующего однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512); такая симплификация создает итоговую симплифицированную кривую.[00149] d) the simplications of each homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512) using the corresponding second simplicity algorithm, which was selected from the set of predefined second simplicity algorithms, independently for each homogeneous segment ( 202, 204, 206, 504, 506, 508, 510, 512) based on the shape parameters of the corresponding homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512); this simification creates a final simplicized curve.

[00150] ПУНКТ 2. Способ по п. 1, в котором первый алгоритм симплификации выбирается из алгоритмов Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (sleeve-fitting (SF)), функции представления (turning function (TF)), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния.[00150] ITEM 2. The method of claim 1, wherein the first simplicity algorithm is selected from the Ramer-Douglas-Peker (RDP), Wiswalingem-Wyatt, Zhao-Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayan, RDP options, the sleeve fitting (SF) algorithm, the turning function (TF), the point numbering algorithm (Nth point), the radial distance, the perpendicular distance algorithm.

[00151] ПУНКТ 3. Способ по п. 1 или 2, в котором множество предварительно определенных вторых алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.[00151] ITEM 3. The method of claim 1 or 2, wherein the plurality of predefined second simulation algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wisalingem-Wyatt, Zhao Saalfeld, Lang , Reimann-Witkem, Opheim, Rangayyan, RDP option, sleeve-fitting algorithm (SF), presentation function (turning function (TF)), point numbering algorithm (Nth point), radial distance, algorithm perpendicular distance.

[00152] ПУНКТ 4. Способ по любому из пп. 1-3, дополнительно включающий в себя:[00152] ITEM 4. The method according to any one of paragraphs. 1-3, further including:

[00153] д) определение для каждого однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) итоговой симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) на основе параметров формы симплифицированного однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512), причем эти параметры были созданы соответствующим вторым алгоритмом симплификации на этапе г); и[00153] e) determination for each homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512) of the final simplicated curve of the second set of second homogeneous segments of the simplicized homogeneous segment (202, 204, 206, 504, 506, 508 510, 512) based on the shape parameters of a simplicized homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512), and these parameters were created by the corresponding second simulation algorithm in step d); and

[00154] е) симплификация каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов симплификации независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом происходит создание второй итоговой симплифицированной кривой.[00154] e) the simplification of each second homogeneous segment using the corresponding third simplification algorithm, which is selected from a plurality of predefined third simplification algorithms independently for each second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; thus, the creation of the second final simplicated curve occurs.

[00155] ПУНКТ 5. Способ по п. 4, в котором множество предварительно определенных третьих алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.[00155] ITEM 5. The method of claim 4, wherein the plurality of predetermined third simulation algorithms includes one or more of the following: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann -Witkema, Opheim, Rangayyan, RDP option, “sleeve-fitting” (SF) algorithm, presentation function (turning function (TF)), point numbering algorithm (N-th point), radial distance, perpendicular distance algorithm .

[00156] ПУНКТ 6. Способ по любому из пп. 1-5, в котором параметры формы включают в себя одно или несколько из: длина и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки, комплексность, монотонность, длина между точками и плотность точек.[00156] ITEM 6. The method according to any one of paragraphs. 1-5, in which the shape parameters include one or more of: length and angle of inclination, curvature, distance of heights, elevation difference, usable area for a point, complexity, monotony, length between points and density of points.

[00157] ПУНКТ 7. Способ по любому из пп. 1-6, в котором множество однородных сегментов (202, 204, 206, 504, 506, 508, 510, 512) определяется с использованием одного или нескольких: способа удаления точек, способа на основе измерений, способа критических точек, способа геометрического анализа, способа на основе частоты и способа на основе базы знаний.[00157] ITEM 7. The method according to any one of paragraphs. 1-6, in which many homogeneous segments (202, 204, 206, 504, 506, 508, 510, 512) are determined using one or more: the method of removing points, the method based on measurements, the method of critical points, the method of geometric analysis, a method based on frequency and a method based on a knowledge base.

[00158] ПУНКТ 8. Способ по любому из пп. 1-7, в котором, когда компьютерное устройство является сервером (102), способ дополнительно включает в себя этап отправки на клиентское устройство (112) инструкции на отображение итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112).[00158] ITEM 8. The method according to any one of paragraphs. 1-7, in which, when the computer device is a server (102), the method further includes the step of sending instructions to the client device (112) to display the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) client device (112).

[00159] ПУНКТ 9. Способ по п. 8, в котором инструкция на отображение итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112) включает в себя инструкцию на масштабирование визуального представления кривой (208, 500).[00159] ITEM 9. The method according to claim 8, wherein the instruction for displaying the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) of the client device (112) includes instructions for scaling the visual representation of the curve ( 208, 500).

[00160] ПУНКТ 10. Способ по любому из пп. 1-7, в котором компьютерное устройство является клиентским устройством (112), способ дополнительно включает в себя этап отрисовки итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112).[00160] ITEM 10. The method according to any one of paragraphs. 1-7, in which the computer device is a client device (112), the method further includes the step of rendering the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) of the client device (112).

[00161] ПУНКТ 11. Способ по п. 10, в котором отображение итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112) включает в себя масштабирование визуального представления кривой (208, 500).[00161] ITEM 11. The method of claim 10, wherein displaying the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) of the client device (112) includes scaling the visual representation of the curve (208, 500) .

[00162] ПУНКТ 12. Способ по любому из пунктов пп. 1-11, в котором кривая (208, 500), итоговая симплифицированная кривая (210, 514), и/или вторая итоговая симплифицированная кривая являются частью карты, фотографии, изображения, видео, или видеоигры.[00162] ITEM 12. The method according to any one of paragraphs. 1-11, in which a curve (208, 500), a final simplicated curve (210, 514), and / or a second final simplicated curve are part of a map, photograph, image, video, or video game.

[00163] ПУНКТ 13. Способ по п. 12, в котором кривая (208, 500), итоговая симплифицированная кривая (210, 514), и/или вторая итоговая симплифицированная кривая являются частью 2D графического объекта или 3D графического объекта.[00163] ITEM 13. The method of claim 12, wherein the curve (208, 500), the resulting simplicated curve (210, 514), and / or the second resulting simplicated curve are part of a 2D graphic or 3D graphic.

[00164] ПУНКТ 14. Способ по п. 12, в котором кривая (208, 500), итоговая симплифицированная кривая (210, 514), и/или вторая итоговая симплифицированная кривая отрисовываются браузерным движком отрисовки или общим движком отрисовки.[00164] ITEM 14. The method of claim 12, wherein the curve (208, 500), the resulting simplicated curve (210, 514), and / or the second resulting simplicated curve are drawn by the browser rendering engine or the general rendering engine.

[00165] ПУНКТ 15. Способ по любому из пп. 4-14, в котором этапы д) и е) повторяются, пока не будут достигнуты один или несколько конечных пунктов: желаемый порог масштабирования, желаемое разрешение, использование выделенной памяти или выделенного времени.[00165] ITEM 15. The method according to any one of paragraphs. 4-14, in which steps d) and e) are repeated until one or more end points are reached: the desired scaling threshold, the desired resolution, the use of allocated memory or allocated time.

[00166] ПУНКТ 16. Сервер (102), включающий в себя:[00166] ITEM 16. Server (102), including:

[00167] носитель (104) информации;[00167] a storage medium (104);

[00168] процессор (108), функционально соединенный с носителем (104) информации, причем процессор (108) выполнен с возможностью сохранять объекты на носителе (104) информации; процессор (108) также выполнен с возможностью осуществлять:[00168] a processor (108) operatively coupled to the information medium (104), the processor (108) being configured to store objects on the information medium (104); processor (108) is also configured to:

[00169] а) получение инструкции на симплификацию кривой (208, 500);[00169] a) receiving instructions for curve simplicity (208, 500);

[00170] б) выполнение первого алгоритма симплификации, который был предварительно определен, причем выполнение первого алгоритма симплификации симплифицирует кривую (208, 500) и, таким образом, создает первую симплифицированную кривую (200, 502) и параметры формы первой симплифицированной кривой (200, 502);[00170] b) the execution of the first simplification algorithm, which has been predefined, and the execution of the first simification algorithm simulates the curve (208, 500) and, thus, creates the first simulated curve (200, 502) and the shape parameters of the first simulated curve (200, 502);

[00171] в) определение множества однородных сегментов (202, 204, 206, 504, 506, 508, 510, 512) первой симплифицированной кривой (200, 502) на основе параметров формы; и[00171] c) determining a plurality of homogeneous segments (202, 204, 206, 504, 506, 508, 510, 512) of the first simplicated curve (200, 502) based on the shape parameters; and

[00172] г) симплификацию каждого однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) с использованием соответствующего второго алгоритма симплификации, причем соответствующий второй алгоритм симплификации выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) на основе параметров формы соответствующего однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512); таким образом происходит создание итоговой симплифицированной кривой (210, 514).[00172] d) the simification of each homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512) using the corresponding second simulation algorithm, and the corresponding second simulation algorithm is selected from the set of predefined second simulation algorithms, independently for each a homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512) based on the shape parameters of the corresponding homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512); in this way, the final simplicized curve is created (210, 514).

[00173] ПУНКТ 17. Сервер (102) по п. 16, в котором первый алгоритм симплификации выбирается из алгоритмов Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (sleeve-fitting (SF)), функции представления (turning function (TF)), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния.[00173] ITEM 17. The server (102) according to claim 16, wherein the first simplicity algorithm is selected from the Ramer-Douglas-Pecker (RDP), Viswalingham-Wyatt, Zhao-Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP options, the “sleeve fitting” (SF) algorithm, the presentation function (turning function (TF)), the point numbering algorithm (N-th point), the radial distance, the perpendicular distance algorithm.

[00174] ПУНКТ 18. Сервер (102) по п. 16 или 17, в котором множество предварительно определенных вторых алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.[00174] ITEM 18. The server (102) according to claim 16 or 17, wherein the plurality of predetermined second simulation algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP variant, sleeve-fitting (SF) algorithm, presentation function (turning function (TF)), point numbering algorithm (N-th point), radial distance, perpendicular distance algorithm.

[00175] ПУНКТ 19. Сервер (102) по любому из пп. 16-18, в котором процессор (108) дополнительно выполнен с возможностью осуществлять:[00175] ITEM 19. The server (102) according to any one of paragraphs. 16-18, in which the processor (108) is further configured to:

[00176] д) определение для каждого однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) итоговой симплифицированной кривой (210, 514) второго множества вторых однородных сегментов симплифицированного однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512) на основе параметров формы симплифицированного однородного сегмента (202, 204, 206, 504, 506, 508, 510, 512), причем эти параметры были созданы соответствующим вторым алгоритмом симплификации на этапе г); и[00176] e) determination for each homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512) of the final simplicated curve (210, 514) of the second set of second homogeneous segments of the simplicized homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512) based on the shape parameters of a simplicized homogeneous segment (202, 204, 206, 504, 506, 508, 510, 512), and these parameters were created by the corresponding second simulation algorithm in step d); and

[00177] е) симплификацию каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов симплификации независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом создание второй итоговой симплифицированной кривой.[00177] e) the simplicity of each second homogeneous segment using the corresponding third simplification algorithm, which is selected from the set of predefined third simplification algorithms independently for each second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; thus creating a second resulting simplicated curve.

[00178] ПУНКТ 20. Сервер (102) по п. 19, в котором множество предварительно определенных третьих алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.[00178] ITEM 20. The server (102) according to claim 19, wherein the plurality of predefined third simulation algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP variant, “sleeve-fitting” (SF) algorithm, presentation function (turning function (TF)), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm.

[00179] ПУНКТ 21. Сервер (102) по любому из пп. 16-20, в котором параметры формы включают в себя одно или несколько из: длина и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки, комплексность, монотонность, длина между точками и плотность точек.[00179] ITEM 21. The server (102) according to any one of paragraphs. 16-20, in which the shape parameters include one or more of: length and angle, curvature, distance, height difference, useful area for the point, complexity, monotony, the length between the points and the density of points.

[00180] ПУНКТ 22. Сервер (102) по любому из пп. 16-21, в котором множество однородных сегментов (202, 204, 206, 504, 506, 508, 510, 512) определяется с использованием одного или нескольких: способа удаления точек, способа на основе измерений, способа критических точек, способа геометрического анализа, способа на основе частоты и способа на основе базы знаний.[00180] ITEM 22. The server (102) according to any one of paragraphs. 16-21, in which many homogeneous segments (202, 204, 206, 504, 506, 508, 510, 512) are determined using one or more of the following: method for removing points, method based on measurements, method for critical points, method for geometric analysis, a method based on frequency and a method based on a knowledge base.

[00181] ПУНКТ 23. Сервер (102) по любому из пп. 16-22, в котором компьютерное устройство является сервером (102), процессор (106) выполнен с дополнительной возможностью отправлять на клиентское устройство (112) инструкцию на отображение итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112).[00181] ITEM 23. The server (102) according to any one of paragraphs. 16-22, in which the computer device is a server (102), the processor (106) is configured to send to the client device (112) an instruction to display the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) client device (112).

[00182] ПУНКТ 24. Сервер (102) по п. 23, в котором инструкция на отображение итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112) включает в себя инструкцию на масштабирование визуального представления кривой (208, 500).[00182] ITEM 24. The server (102) according to claim 23, wherein the instruction for displaying the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) of the client device (112) includes an instruction for scaling the visual representations of the curve (208, 500).

[00183] ПУНКТ 25. Сервер (102) по любому из пп. 16-22, в котором компьютерное устройство является клиентским устройством (112), процессор (116) выполнен с дополнительной возможностью отображать итоговую симплифицированную кривую (210, 514) или вторую итоговую симплифицированную кривую на экране (118) клиентского устройства (112).[00183] ITEM 25. The server (102) according to any one of paragraphs. 16-22, in which the computer device is a client device (112), the processor (116) is configured to display a final simplicated curve (210, 514) or a second final simplicated curve on the screen (118) of the client device (112).

[00184] ПУНКТ 26. Сервер (102) по п. 25, в котором отображение итоговой симплифицированной кривой (210, 514) или второй итоговой симплифицированной кривой на экране (118) клиентского устройства (112) включает в себя масштабирование визуального представления кривой (208, 500).[00184] ITEM 26. The server (102) according to claim 25, wherein displaying the final simplicated curve (210, 514) or the second final simplicated curve on the screen (118) of the client device (112) includes scaling the visual representation of the curve (208 , 500).

[00185] ПУНКТ 27. Сервер (102) по любому из пунктов пп. 1-26, в котором кривая (208, 500), итоговая симплифицированная кривая (210, 514), и/или вторая итоговая симплифицированная кривая являются частью карты, фотографии, изображения, видео, или видеоигры.[00185] ITEM 27. The server (102) according to any one of paragraphs. 1-26, in which a curve (208, 500), a final simplicated curve (210, 514), and / or a second final simplicated curve are part of a map, photograph, image, video, or video game.

[00186] ПУНКТ 28. Сервер (102) по п. 27, в котором кривая (208, 500), итоговая симплифицированная кривая (210, 514), и/или вторая итоговая симплифицированная кривая являются частью 2D графического объекта или 3D графического объекта.[00186] ITEM 28. The server (102) according to claim 27, wherein the curve (208, 500), the resulting simplicated curve (210, 514), and / or the second resulting simplicated curve are part of a 2D graphic or 3D graphic.

[00187] ПУНКТ 29. Сервер (102) по п. 27, в котором кривая (208, 500), итоговая симплифицированная кривая (210, 514), и/или вторая итоговая симплифицированная кривая отрисовываются браузерным движком отрисовки или общим движком отрисовки.[00187] ITEM 29. The server (102) according to claim 27, wherein the curve (208, 500), the final simplicated curve (210, 514), and / or the second final simplicated curve are drawn by the browser rendering engine or the general rendering engine.

[00188] ПУНКТ 30. Сервер (102) по любому из пп. 19-29, в котором процессор (106, 116) выполнен с дополнительной возможностью повторять этапы д) и е), пока не будут достигнуты один или несколько конечных пунктов: желаемый порог масштабирования, желаемое разрешение, использование доступной памяти или выделенного времени.[00188] ITEM 30. The server (102) according to any one of paragraphs. 19-29, in which the processor (106, 116) is configured to repeat steps e) and e) until one or more end points are reached: the desired scaling threshold, the desired resolution, the use of available memory or allocated time.

Claims (42)

1. Способ симплификации кривой, выполняемый на компьютерном устройстве и включающий в себя этапы:1. The method of curve simplicity, performed on a computer device and comprising the steps of: получения инструкций на симплификацию кривой;receiving instructions for curve simplicity; выполнения первого алгоритма симплификации, который был предварительно определен, причем выполнение первого алгоритма симплификации симплифицирует кривую и таким образом создает первую симплифицированную кривую и параметры формы первой симплифицированной кривой;executing a first simification algorithm that has been previously determined, wherein executing a first simification algorithm simplicates a curve and thus creates a first simplicated curve and shape parameters of a first simplicized curve; определения множества однородных сегментов первой симплифицированной кривой на основе параметров формы; иdetermining a plurality of homogeneous segments of the first simplicated curve based on shape parameters; and симплификации каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, который был выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; такая симплификация создает итоговую симплифицированную кривую.simplification of each homogeneous segment using the corresponding second simplification algorithm, which was selected from the set of predefined second simplicity algorithms, independently for each homogeneous segment based on the shape parameters of the corresponding homogeneous segment; this simification creates a final simplicized curve. 2. Способ по п. 1, в котором первый алгоритм симплификации выбирают из алгоритмов Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (SF), функции представления (TF), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния.2. The method according to p. 1, in which the first simplicity algorithm is selected from the Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao-Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP variant, sleeve fitting algorithm »(SF), presentation functions (TF), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm. 3. Способ по любому из пп. 1-2, в котором множество предварительно определенных вторых алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (SF), функция представления (TF), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.3. The method according to any one of paragraphs. 1-2, in which the set of predefined second simulation algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, option RDP, “sleeve fitting” (SF) algorithm, presentation function (TF), point numbering (Nth point) algorithm, radial distance, perpendicular distance algorithm. 4. Способ по п. 1, в котором дополнительно выполняют этапы:4. The method of claim 1, further comprising the steps of: определения для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем эти параметры были созданы соответствующим вторым алгоритмом симплификации на этапе симплификации каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации; иdetermining, for each simplicized homogeneous segment, the final simplicated curve of the second set of second homogeneous segments of the simplicated homogeneous segment based on the shape parameters of the simplicated homogeneous segment, and these parameters were created by the corresponding second simplicity algorithm at the stage of simplication of each homogeneous segment using the corresponding second simification algorithm; and симплификации каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов симплификации независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом выполняют создание второй итоговой симплифицированной кривой.simplicating each second homogeneous segment using the corresponding third simplicity algorithm, which is selected from a plurality of predefined third simplicity algorithms independently for every second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; in this way, a second final simplicated curve is created. 5. Способ по п. 4, в котором множество предварительно определенных третьих алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (SF), функция представления (TF), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.5. The method of claim 4, wherein the plurality of predetermined third simplification algorithms includes one or more of the following algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim , Rangayyan, RDP variant, “sleeve fitting” algorithm (SF), presentation function (TF), point numbering algorithm (Nth point), radial distance, perpendicular distance algorithm. 6. Способ по п. 4, в котором этап определения для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой и этап симплификации каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации повторяют, пока не будут достигнуты один или несколько конечных пунктов: желаемый порог масштабирования, желаемое разрешение, использование выделенной памяти или выделенного времени.6. The method of claim 4, wherein the step of determining for each simplicized homogeneous segment the final simplicated curve and the step of simplicating every second homogeneous segment using the corresponding third simplicity algorithm is repeated until one or more end points are reached: the desired scaling threshold, the desired permission, use of allocated memory or allocated time. 7. Способ по п. 1, в котором параметры формы включают в себя одно или несколько из: длина и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки, комплексность, монотонность, длина между точками и плотность точек.7. The method according to p. 1, in which the shape parameters include one or more of: length and angle, curvature, distance, height difference, useful area for the point, complexity, monotony, the length between the points and the density of points. 8. Способ по п. 1, в котором множество однородных сегментов определяют с использованием одного или нескольких пунктов из списка: способа удаления точек, способа на основе измерений, способа критических точек, способа геометрического анализа, способа на основе частоты и способа на основе базы знаний.8. The method according to p. 1, in which many homogeneous segments are determined using one or more items from the list: the method of removing points, the method based on measurements, the method of critical points, the method of geometric analysis, the method based on frequency and the method based on the knowledge base . 9. Способ по п. 1, в котором компьютерное устройство является сервером, и в котором дополнительно выполняют этап отправки на клиентское устройство инструкции на отображение итоговой симплифицированной кривой на экране клиентского устройства.9. The method according to p. 1, in which the computer device is a server, and which additionally perform the step of sending to the client device instructions to display the final simplicated curve on the screen of the client device. 10. Способ по п. 9, в котором инструкция на отображение итоговой симплифицированной кривой на экране клиентского устройства включает в себя инструкцию на масштабирование визуального представления кривой.10. The method according to claim 9, in which the instruction for displaying the final simplicated curve on the screen of the client device includes instructions for scaling the visual representation of the curve. 11. Способ по п. 1, в котором компьютерное устройство является клиентским устройством и в котором дополнительно выполняют этап отрисовки итоговой симплифицированной кривой на экране клиентского устройства.11. The method according to claim 1, in which the computer device is a client device and in which additionally perform the step of drawing the final simplicated curve on the screen of the client device. 12. Способ по п. 11, в котором отрисовка итоговой симплифицированной кривой на экране клиентского устройства включает в себя масштабирование визуального представления кривой.12. The method according to claim 11, in which the drawing of the final simplicated curve on the screen of the client device includes scaling the visual representation of the curve. 13. Способ по п. 1, в котором кривая является частью: карты, или фотографии, или изображения, или видео, или видеоигры.13. The method according to p. 1, in which the curve is part: maps, or photographs, or images, or video, or video games. 14. Способ по п. 13, в котором кривая является частью 2D графического объекта или 3D графического объекта.14. The method of claim 13, wherein the curve is part of a 2D graphic or 3D graphic. 15. Способ по п. 13, в котором кривую и/или итоговую симплифицированную кривую отрисовывают браузерным движком отрисовки или графическим движком отрисовки.15. The method according to p. 13, in which the curve and / or the resulting simplicated curve is rendered by the browser rendering engine or graphic rendering engine. 16. Сервер для симплификации кривой, включающий в себя:16. A server for curve simplicity, including: носитель информации;information carrier; процессор, функционально соединенный с носителем информации, причем процессор выполнен с возможностью сохранять объекты на носителе информации; процессор также выполнен с возможностью осуществлять:a processor operably connected to the storage medium, the processor being configured to store objects on the storage medium; the processor is also configured to: получение инструкции на симплификацию кривой;receiving instructions for curve simplification; выполнение первого алгоритма симплификации, который был предварительно определен, причем выполнение первого алгоритма симплификации симплифицирует кривую и таким образом создает первую симплифицированную кривую и параметры формы первой симплифицированной кривой;the execution of the first simplification algorithm, which was previously determined, and the execution of the first simification algorithm simplicates the curve and thus creates the first simplicated curve and the shape parameters of the first simplicated curve; определение множества однородных сегментов первой симплифицированной кривой на основе параметров формы; иdetermining a plurality of homogeneous segments of a first simplicated curve based on shape parameters; and симплификацию каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, который был выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; такая симплификация создает итоговую симплифицированную кривую.simplification of each homogeneous segment using the corresponding second simplification algorithm, which was selected from the set of predetermined second simplification algorithms, independently for each homogeneous segment based on the shape parameters of the corresponding homogeneous segment; this simification creates a final simplicized curve. 17. Сервер по п. 16, в котором процессор дополнительно выполнен с возможностью осуществлять алгоритмы: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, «подгонки рукавов» (SF), функции представления (TF), нумерации точек (N-ной точки), радиального расстояния, перпендикулярного расстояния.17. The server of claim 16, wherein the processor is further configured to implement algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP option, “fit of sleeves ”(SF), presentation functions (TF), numbering of points (Nth point), radial distance, perpendicular distance. 18. Сервер по п. 16, в котором процессор дополнительно выполнен с возможностью осуществлять:18. The server of claim 16, wherein the processor is further configured to: определение для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем эти параметры были созданы соответствующим вторым алгоритмом симплификации; иdetermination for each simplicized homogeneous segment of the final simplicated curve of the second set of second homogeneous segments of the simplicated homogeneous segment based on the shape parameters of the simplicated homogeneous segment, and these parameters were created by the corresponding second simplification algorithm; and симплификацию каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов симплификации независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; и таким образом создание второй итоговой симплифицированной кривой.simplification of each second homogeneous segment using the corresponding third simplification algorithm, which is selected from a plurality of predefined third simplification algorithms independently for each second homogeneous segment based on the shape parameters of the corresponding second homogeneous segment; and thus creating a second final simplicated curve. 19. Сервер по п. 16, в котором параметры формы включают в себя одно или несколько из: длины и угла наклона, изогнутости, расстояния высот, перепада высот, полезной площади для точки, комплексности, монотонности, длины между точками и плотности точек.19. The server according to claim 16, in which the shape parameters include one or more of: length and angle, inclination, bending, distance, height difference, usable area for a point, complexity, monotony, length between points and density of points. 20. Сервер по п. 16, в котором процессор выполнен с дополнительной возможностью осуществлять определение множества однородных сегментов с использованием одного или нескольких пунктов из списка: способ удаления точек, способ на основе измерений, способ критических точек, способ геометрического анализа, способ на основе частоты и способ на основе базы знаний.20. The server of claim 16, wherein the processor is further configured to determine a plurality of homogeneous segments using one or more items from a list: a method for deleting points, a method based on measurements, a method for critical points, a method for geometric analysis, a method based on frequency and a knowledge base method. 21. Сервер по п. 16, в котором компьютерное устройство является сервером и процессор выполнен с дополнительной возможностью отправлять на клиентское устройство инструкцию на отображение итоговой симплифицированной кривой на экране клиентского устройства.21. The server according to claim 16, in which the computer device is a server and the processor is configured to send to the client device instructions to display the final simplicated curve on the screen of the client device. 22. Сервер по п. 23, в котором инструкция на отображение итоговой симплифицированной кривой на экране клиентского устройства включает в себя инструкцию на масштабирование визуального представления кривой.22. The server according to claim 23, wherein the instruction for displaying the final simplicated curve on the screen of the client device includes instructions for scaling the visual representation of the curve. 23. Сервер по п. 16, в котором компьютерное устройство является клиентским устройством и процессор выполнен с дополнительной возможностью отрисовывать итоговую симплифицированную кривую на экране клиентского устройства.23. The server according to claim 16, in which the computer device is a client device and the processor is configured to draw a final simulated curve on the screen of the client device. 24. Сервер по п. 18, в котором процессор дополнительно выполнен с возможностью осуществлять алгоритмы: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, «подгонки рукавов» (SF), функции представления (TF), нумерации точек (N-ной точки), радиального расстояния, перпендикулярного расстояния.24. The server of claim 18, wherein the processor is further configured to implement algorithms: Ramer-Douglas-Pecker (RDP), Wiswalingem-Wyatt, Zhao Saalfeld, Lang, Reimann-Witkem, Opheim, Rangayyan, RDP variant, “fit of sleeves ”(SF), presentation functions (TF), numbering of points (N-th point), radial distance, perpendicular distance. 25. Сервер по п. 16, в котором процессор выполнен с дополнительной возможностью получать инструкции для кривой или итоговой симплифицированной кривой, где кривая или итоговая симплифицированная кривая являются частью карты, фотографии, изображения, видео или видеоигры.25. The server of claim 16, wherein the processor is further configured to receive instructions for a curve or final simulated curve, where the curve or final simulated curve is part of a map, photograph, image, video or video game. 26. Сервер по п. 25, в котором процессор выполнен с дополнительной возможностью получать инструкции для кривой или итоговой симплифицированной кривой, где кривая или итоговая симплифицированная кривая являются частью графического объекта 2D или графического объекта 3D.26. The server according to claim 25, in which the processor is configured to receive instructions for a curve or a resulting simplicated curve, where the curve or the resulting simplicated curve is part of a 2D graphic or 3D graphic. 27. Сервер по п. 25, в котором процессор выполнен с дополнительной возможностью получать инструкции для кривой или итоговой симплифицированной кривой, где кривая или итоговая симплифицированная кривая отрисовываются браузерным движком отрисовки или общим движком отрисовки.27. The server according to claim 25, wherein the processor is configured to receive instructions for a curve or a resulting simplicated curve, where the curve or the resulting simplicated curve is drawn by the browser rendering engine or the general rendering engine. 28. Сервер по п. 18, в котором процессор выполнен с дополнительной возможностью повторять этап определения для каждого симплифицированного однородного сегмента итоговой симплифицированной кривой и этап симплификации каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, пока не будут достигнуты один или несколько конечных пунктов: желаемый порог масштабирования, желаемое разрешение, использование доступной памяти или выделенного времени.28. The server according to claim 18, wherein the processor is configured to repeat the determination step for each simplicized homogeneous segment of the resulting simplicized curve and the simplicity step of each second homogeneous segment using the corresponding third simplicity algorithm until one or more end points are reached: desired scaling threshold, desired resolution, use of available memory or allocated time.
RU2015137418A 2015-09-02 2015-09-02 Method and server of curve simplification RU2643431C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
RU2015137418A RU2643431C2 (en) 2015-09-02 2015-09-02 Method and server of curve simplification
PCT/IB2016/050566 WO2017037547A1 (en) 2015-09-02 2016-02-04 Method and system for simplifying a curve

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2015137418A RU2643431C2 (en) 2015-09-02 2015-09-02 Method and server of curve simplification

Publications (2)

Publication Number Publication Date
RU2015137418A RU2015137418A (en) 2017-03-09
RU2643431C2 true RU2643431C2 (en) 2018-02-01

Family

ID=58186913

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015137418A RU2643431C2 (en) 2015-09-02 2015-09-02 Method and server of curve simplification

Country Status (2)

Country Link
RU (1) RU2643431C2 (en)
WO (1) WO2017037547A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3381257B1 (en) * 2017-03-28 2020-12-02 Honda Research Institute Europe GmbH Method for generating a representation of a working area of an autonomous lawn mower and autonomous lawn mower system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5731820A (en) * 1995-03-24 1998-03-24 Novell, Inc. Curve-length approximation apparatus and method
US20030231190A1 (en) * 2002-03-15 2003-12-18 Bjorn Jawerth Methods and systems for downloading and viewing maps
US20050074171A1 (en) * 2003-10-01 2005-04-07 Hitachi, Ltd. Image coding apparatus, digest image preparing apparatus and method
US20060082571A1 (en) * 2004-10-20 2006-04-20 Siemens Technology-To-Business Center, Llc Systems and methods for three-dimensional sketching
US20090144030A1 (en) * 2007-12-04 2009-06-04 Tele Atlas North America, Inc. Computer readable storage medium storing instructions for applying clothoid curve values to roadways in a geographic data information system
RU2469400C1 (en) * 2011-11-17 2012-12-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Method to convert bitmapped image into metafile

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2874720B1 (en) * 2004-09-02 2007-02-23 Commedia Edition Sarl EDITING VECTORIAL GRAPHICS, IN PARTICULAR GEOGRAPHIC MAPS

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5731820A (en) * 1995-03-24 1998-03-24 Novell, Inc. Curve-length approximation apparatus and method
US20030231190A1 (en) * 2002-03-15 2003-12-18 Bjorn Jawerth Methods and systems for downloading and viewing maps
US20050074171A1 (en) * 2003-10-01 2005-04-07 Hitachi, Ltd. Image coding apparatus, digest image preparing apparatus and method
US20060082571A1 (en) * 2004-10-20 2006-04-20 Siemens Technology-To-Business Center, Llc Systems and methods for three-dimensional sketching
US20090144030A1 (en) * 2007-12-04 2009-06-04 Tele Atlas North America, Inc. Computer readable storage medium storing instructions for applying clothoid curve values to roadways in a geographic data information system
RU2469400C1 (en) * 2011-11-17 2012-12-10 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Method to convert bitmapped image into metafile

Also Published As

Publication number Publication date
RU2015137418A (en) 2017-03-09
WO2017037547A1 (en) 2017-03-09

Similar Documents

Publication Publication Date Title
US10416866B2 (en) Representation of digital map styling properties across zoom levels
US10403035B2 (en) Rendering images using ray tracing with multiple light sources
JP6043732B2 (en) System method and system for browsing heterogeneous map data
US11450078B2 (en) Generating height maps from normal maps based on virtual boundaries
van Oosterom et al. Vario-scale data structures supporting smooth zoom and progressive transfer of 2D and 3D data
US20170213394A1 (en) Environmentally mapped virtualization mechanism
CN110741229A (en) Dynamically changing visual attributes of indicators on a digital map
Ellul et al. Investigating approaches to improving rendering performance of 3D city models on mobile devices
Eggert et al. Augmented reality visualization of archeological data
Eriksson et al. An in-depth analysis of dynamically rendered vector-based maps with WebGL using Mapbox GL JS
US9141380B2 (en) Method and system for visualization of large codebases
CN113495933A (en) Vector tile display method and system
US9891791B1 (en) Generating an interactive graph from a building information model
Minto et al. Online access and sharing of reality-based 3D models
Yue et al. A function-based linear map symbol building and rendering method using shader language
RU2643431C2 (en) Method and server of curve simplification
US11257290B2 (en) Decimating a three-dimensional mesh via successive self-parameterization
JPWO2009104218A1 (en) Map display device
KR102403256B1 (en) Freehand sketch image generating method and system for machine learning
RU2637903C2 (en) Method and computer device for creating simplified borders of graphic objects
CN114781029A (en) Method, system and storage medium for converting three-dimensional information model into two-dimensional graph
RU2638014C2 (en) Method and computer device for creating simplified borders of graphic objects
CN114020390A (en) BIM model display method and device, computer equipment and storage medium
KR20220147183A (en) Electronic Map Service Method of Garden and Related Forest Culture Facility
KR101630257B1 (en) 3D image providing system and providing method thereof

Legal Events

Date Code Title Description
FA92 Acknowledgement of application withdrawn (lack of supplementary materials submitted)

Effective date: 20170718

FZ9A Application not withdrawn (correction of the notice of withdrawal)

Effective date: 20171023