Способ и сервер симплификации кривой
Иллюстрации
Показать всеИзобретение относится к способам и системам симплификации кривой. Технический результат заключается в повышении скорости симплификации кривой. В способе симплификации кривой после получения инструкции на симплификацию кривой выполняется первый, предварительно определенный, алгоритм симплификации для создания первой симплифицированной кривой и параметров формы первой симплифицированной кривой. Определяется множество однородных сегментов первой симплифицированной кривой на основе параметров формы. Каждый однородный сегмент симплифицируется с использованием соответствующего второго алгоритма симплификации для создания итоговой симплифицированной кривой. Второй алгоритм симплификации выбирается из множества предварительно определенных вторых алгоритмов симплификации независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента. 2 н. и 26 з.п. ф-лы, 5 ил.
Реферат
Область техники, к которой относится изобретение
[0001] Настоящее техническое решение относится к способам и системам симплификации кривой.
Уровень техники
[0002] Симплификация кривых включает в себя выборочное удаление вершин на протяжении кривой для удаления ненужной информации. Задачей алгоритмов симплификации кривых (также известных как алгоритмы симплификации линий) обычно является сохранение внешнего вида или формы кривой, хотя число ее точек и уменьшается, при этом сводя к минимуму погрешность в определении местоположения.
[0003] В компьютерных технологиях существует растущая потребность в способах симплификации кривых. Например, симплификация кривых (также известная как симплификация линий) является важной функцией в картографии и географических информационных системах (GIS), и широко используется в коммерческих пакетах программного обеспечения GIS. Множество мобильных устройств (например, смартфонов) имеют картографическое приложение, которое позволяет пользователю просматривать различные географические области для конкретных целей, например, чтобы проложить путь в конкретную область, оценить уровень загруженности конкретных дорог или найти расположение конкретных магазинов. Пользователь рассматривает различные области в картографическом приложении и приближает или удаляет изображение, чтобы видеть карту в разных масштабах. Такие функции требуют от систем картографической генерализации упрощения карт, чтобы отрисовать географические характеристики в высоком разрешении и с хорошим разрешением на выходе.
[0004] На цифровых картах одно- или двумерные объекты обычно представлены как ломаные линии (полилинии) или как многоугольники (полигоны). Ломаная линия - это соединенная последовательность сегментов в виде прямых линий. Многоугольник - частный случай ломаной линии, которая начинается и заканчивается в одной и той же точке. Таким образом, если объект в реальном мире искривлен, это передается последовательностью точек и сегментов в виде прямых линий, соединяющих эти точки.
Во внутреннем представлении карты одномерный объект, или одномерная граница двумерного объекта обычно представлены списком своих точек.
[0005] Часто при использовании данных цифровых карт производитель или пользователь данных обнаруживает, что данные слишком точны, а число точек гораздо больше, чем необходимо для конкретной цели. Например, это может произойти, когда данные, изначально собранные для использования при больших (приближенных) масштабах, используются при небольших (удаленных) масштабах. Если карта изображена с использованием более точных данных, присутствует гораздо больше точек, чем необходимо, что делает файл данных гораздо больше, а время обработки - гораздо дольше, чем необходимо. В такой ситуации преимуществом будет генерализовать ломаные линии на карте таким образом, что они станут не более точными, чем это необходимо для конкретной цели.
[0006] Алгоритмы симплификации линий являются важным компонентом таких систем генерализаций карт. Алгоритмы симплификации линий также используются в широком спектре областей, относящихся к графике, например, в видеоиграх (например, чтобы показать такой объект, как замок, пользователю), фоторедакторах, видеоредакторах, для уменьшения размера изображения, для загрузки на электронное устройство или с него, для хранения и так далее. Графы, насыщенные данными, часто встречаются в областях инженерии, включая стереографическое 3D и компьютерную мультипликацию, где перенасыщение данными может вызвать трудности при управлении в интерактивном режиме. Симплификация линий может также быть использована, например, при преобразовании исходных данных, чтобы уменьшить их объем для более компактного хранения, и для объединения разномасштабных баз данных.
[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). Однако у всех общеизвестных способов симплификации линий имеются значительные недостатки. Настоящие способы и системы для эффективной обработки и отрисовки симплифицированных линий неудовлетворительны.
[0008] Бальбоа и Лопез (Balboa, J.L.G. and Lopez, F.J.A., Pattern Recognition 42 (2009), pp. 2150-59) описывают автоматический способ деления линий на сегменты на основе распознавания изогнутого шаблона. Изогнутый шаблон измеряется с помощью полезной площади, как описано в алгоритме Висвалингема-Уайетта. Сегменты определяются с помощью применения алгоритма Дугласа-Пекера к форме профиля линии. Описанный способ деления на сегменты включает в себя три основных этапа: а) определение, с помощью алгоритма Висвалингема-Уайетта, полезной площади в каждой точке кривой; б) получение формы профиля кривой как суммы полезных площадей по всей линии; и в) выбор критических точек с помощью применения алгоритма Дугласа-Пекера к форме профиля линии. Автоматическое решение для деления на сегменты прилагается.
[0009] Парк и Ю (Park, W. and Yu, K., Pattern Recognition Letters 32 (2011), pp. 1267-73) описывают сегментацию и симплификацию линейного объекта на основе количественного анализа характеристик формы данного сегмента линии с использованием множества алгоритмов симплификации для определения того, какой из них дает наиболее высокую производительность для данного сегмента линии. Их способ включает в себя две главные части: 1) анализ описаний параметров сегментов линии, которые дают особенно высокую производительность для каждого проверенного алгоритма симплификации; и 2) сегментацию данных линии на однородные сегменты с использованием способов геометрического анализа, и симплификация сегментов с использованием алгоритма, определенного в процессе сегментации, т.е. алгоритма, который показал наиболее высокую производительность.
Раскрытие изобретения
[0010] Задачей предлагаемого технического решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
[0011] Первым объектом настоящего технического решения является способ симплификации кривой. Способ выполняется на компьютерном устройстве, например, на сервере или на клиентском устройстве. Способ включает в себя этапы: получения инструкций на симплификацию кривой; выполнения первого алгоритма симплификации, причем первый алгоритм симплификации был предварительно определен, а его выполнение симплифицирует кривую, таким образом создавая первую симплифицированную кривую и параметры формы первой симплифицированной кривой; определения множества однородных сегментов первой симплифицированной кривой на основе параметров формы; и симплификации каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, причем соответствующий второй алгоритм симплификации выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; таким образом выполняют создание итоговой симплифицированной кривой.
[0012] В некоторых вариантах осуществления настоящего технического решения первый алгоритм симплификации выбирается из алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, варианта RDP, алгоритма «подгонки рукавов» (sleeve-fitting (SF)), функции представления (turning function (TF)), алгоритма нумерации точек (N-ной точки), радиального расстояния, алгоритма перпендикулярного расстояния. Аналогично, в некоторых вариантах осуществления настоящего технического решения множество предварительно определенных вторых алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точка), радиальное расстояние, алгоритм перпендикулярного расстояния.
[0013] В некоторых вариантах осуществления настоящего технического решения способ дополнительно включает в себя следующие этапы: определение для каждого однородного сегмента симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем эти параметры были созданы соответствующим вторым алгоритмом симплификации; и симплификацию каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов симплификации независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом выполняют создание второй итоговой симплифицированной кривой.
[0014] В некоторых вариантах осуществления настоящего технического решения множество предварительно определенных третьих алгоритмов симплификации включает в себя один или несколько из следующих алгоритмов: Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функция представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния.
[0015] Параметры формы различаются в зависимости от использованных алгоритмов симплификации. В некоторых вариантах осуществления настоящего технического решения параметры формы включают одно или несколько из: длина и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки, комплексность, монотонность, длина между точками, средняя длина сегмента и плотность точек. Множество однородных сегментов также различаются в зависимости от использованных алгоритмов симплификации и параметров формы. В некоторых вариантах осуществления настоящего технического решения однородные сегменты определяются с использованием одного или нескольких пунктов из списка: способ удаления точек, способ на основе измерений, способ критических точек, способ геометрического анализа, способ на основе частоты и способ на основе базы знаний.
[0016] В некоторых вариантах осуществления настоящего технического решения, когда компьютерное устройство является сервером, способ дополнительно включает в себя этап отправки на клиентское устройство инструкции на отображение итоговой симплифицированной кривой (или второй итоговой симплифицированной кривой) на экране клиентского устройства. Инструкция на отображение итоговой симплифицированной кривой на экране клиентского устройства может включать в себя, например, инструкцию на масштабирование визуального представления кривой.
[0017] В альтернативных вариантах осуществления настоящего технического решения, когда компьютерное устройство является клиентским устройством, способ дополнительно включает в себя этап отрисовки итоговой симплифицированной кривой на экране клиентского устройства. Отрисовка итоговой симплифицированной кривой на экране клиентского устройства может включать в себя, например, масштабирование визуального представления кривой.
[0018] В некоторых вариантах осуществления настоящего технического решения кривая, итоговая симплифицированная кривая и/или вторая итоговая симплифицированная кривая являются частью карты, фотографии, изображения, видео или видеоигры. Кривая, итоговая симплифицированная кривая и/или вторая итоговая симплифицированная кривая могут быть частью графического 2D-объекта или графического 3D-объекта. Кривые и симплифицированные кривые могут быть отрисованы браузерным движком отрисовки (рендеринга) или общим движком отрисовки (рендеринга).
[0019] В некоторых вариантах осуществления настоящего технического решения этапы способа (этапы определения однородных сегментов и их симплификация) повторяются до тех пор, пока не будут достигнуты один или несколько конечных пунктов, например, желаемый порог масштабирования, желаемое разрешение, использование выделенной памяти или выделенного времени. Технический результат заключается в повышении скорости симплификации кривой.
[0020] Другим объектом настоящего технического решения является сервер. Сервер включает в себя носитель информации; процессор, функционально соединенный с носителем информации и выполненный с возможностью сохранять объекты на носителе информации. Процессор реализован с дополнительной возможностью осуществлять: выполнение первого алгоритма симплификации, причем первый алгоритм симплификации был предварительно определен, а его выполнение симплифицирует кривую, таким образом создавая первую симплифицированную кривую и параметры формы первой симплифицированной кривой; определение множества однородных сегментов первой симплифицированной кривой на основе параметров формы; и симплификацию каждого однородного сегмента с использованием соответствующего второго алгоритма симплификации, причем соответствующий второй алгоритм симплификации выбран из множества предварительно определенных вторых алгоритмов симплификации, независимо для каждого однородного сегмента на основе параметров формы соответствующего однородного сегмента; таким образом выполняют создание итоговой симплифицированной кривой.
[0021] В некоторых вариантах осуществления настоящего технического решения сервер выполнен с дополнительной возможностью осуществлять: определение для каждого однородного сегмента симплифицированной кривой второго множества вторых однородных сегментов симплифицированного однородного сегмента на основе параметров формы симплифицированного однородного сегмента, причем эти параметры были созданы соответствующим вторым алгоритмом симплификации; и симплификацию каждого второго однородного сегмента с использованием соответствующего третьего алгоритма симплификации, который выбран из множества предварительно определенных третьих алгоритмов независимо для каждого второго однородного сегмента на основе параметров формы соответствующего второго однородного сегмента; таким образом выполняют создание второй итоговой симплифицированной кривой.
[0022] В некоторых вариантах осуществления сервера, когда компьютерное устройство является сервером, процессор выполнен с дополнительной возможностью осуществлять отправку на клиентское устройство инструкции на отображение итоговой симплифицированной кривой или второй итоговой симплифицированной кривой на экране клиентского устройства. В некоторых альтернативных вариантах осуществления сервера, когда компьютерное устройство является клиентским устройством, процессор выполнен с дополнительной возможностью осуществлять отрисовку итоговой симплифицированной кривой или второй итоговой симплифицированной кривой на экране клиентского устройства.
[0023] В контексте настоящего описания «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для настоящего технического решения. В контексте настоящего технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0024] В контексте настоящего описания, если конкретно не указано иное, «клиентское устройство» подразумевает под собой электронное устройство, связанное с пользователем и включающее в себя любое аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Таким образом, примерами клиентских устройств (среди прочего) могут служить персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.) смартфоны, планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует иметь в виду, что компьютерное устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.
[0025] В контексте настоящего описания, если конкретно не указано иное, «компьютерное устройство» подразумевает под собой любое электронное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Компьютерное устройство может являться сервером, клиентским устройством и так далее.
[0026] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, выполняющем процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0027] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, включая информацию, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (фотографии, видео, звукозаписи, презентации и т.д.), данные (картографические данные, данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0028] В контексте настоящего описания, если конкретно не указано иное, «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0029] В контексте настоящего описания если конкретно не указано иное, слово «координаты» подразумевает под собой расположение точек, и/или линий, или тому подобного в системах отсчета. Системы отсчета могут являться, например, числами, и/или любыми другими символами, которые используются для определения расположения точки, линиями (включая кривые), или плоскостями в пространстве данного измерения относительно системы линий (осей), или другими неподвижными системами отсчета.
[0030] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0031] В контексте настоящего описания, если конкретно не указано иное, выражение «двумерный объект» (2D-объект) подразумевает под собой плоскую фигуру, отображенную на экране компьютера, причем эта плоская фигура ограничена конечной последовательностью линий, замыкающихся в закрытый контур.
[0032] В контексте настоящего описания, если конкретно не указано иное, выражение «графический объект» подразумевает под собой любую графическую фигуру, которая может быть отображена на экране компьютера. Графические объекты могут быть линейными объектами, двумерными объектами и трехмерными объектами. Графические объекты могут иметь любую форму.
[0033] В контексте настоящего описания, если конкретно не указано иное, выражение «граница графического объекта» подразумевает под собой периметр или часть периметра графического объекта, причем слово «периметр» означает контур, ограничивающий графический объект. Граница графического объекта может включать в себя части границы, которые могут быть сохранены как линии, соединяющие две крайние точки соответствующей части периметра. Границы графических объектов могут быть прямыми или кривыми линиями, или же прямыми или кривыми поверхностями, в зависимости от графического объекта.
[0034] В контексте настоящего описания, если конкретно не указано иное, термин «кривая» подразумевает под собой линию, которая не является прямой, т.е. кривую линию. Выражение «симплификация кривой» и «симплификация линии» используется здесь взаимозаменяемо для обозначения симплификации кривой линии. Кривая может быть представлена ломаной линией, которая соединяет последовательность сегментов в виде прямых линий. Многоугольник - частный случай ломаной линии, которая начинается и заканчивается в одной и той же точке. В контексте настоящего описания, если конкретно не указано иное, выражение «многоугольный (полигональный) объект» подразумевает под собой двумерный объект, отображенный на экране компьютера, причем этот двумерный объект ограничен конечной последовательностью линий, замыкающихся в закрытый контур.
[0035] В контексте настоящего описания, если конкретно не указано иное, выражение «параметр формы» является характеристикой внешней или видимой формы кривой. Неограничивающие параметры формы включают в себя длину и угол наклона, изогнутость, расстояние высот, перепад высот, полезная площадь для точки (например, определенный по алгоритму Висвалингема-Уайятта), комплексность, монотонность, длину между точками, среднюю длину сегмента и плотность точек.
[0036] В контексте настоящего описания, если конкретно не указано иное, «симплификация» является способом, в котором происходит выборочное удаление вершин на протяжении кривой, чтобы избавиться от ненужных деталей, сохранив при этом основную форму кривой.
[0037] В контексте настоящего описания, если конкретно не указано иное, «генерализация» является способом, в котором информация выбирается и представляется на карте таким образом, что она соответствует масштабу или разрешению средств отображения информации карты, без обязательного сохранения всех сложных географических или других картографических деталей. Генерализация обычно требует сохранения четкости, с подходящим содержимым, при данном масштабе, для выбранной цели, связанной с картой, и предполагаемой аудитории.
[0038] В контексте настоящего описания, если конкретно не указано иное, «алгоритм симплификации» является алгоритмом для симплификации кривых, включая ломаные линии, многоугольники и тому подобное. Многие из этих алгоритмов являются известными. Неограничивающие примеры алгоритмов симплификации линий включают в себя алгоритмы Рамера-Дугласа-Пекера (RDP), Висвалингема-Уайетта, Чжао-Заальфельда, Лэнга, Рейманна-Уиткема, Опхайма, Рангайяна, вариант RDP, алгоритм «подгонки рукавов» (sleeve-fitting (SF)), функцию представления (turning function (TF)), алгоритм нумерации точек (N-ной точки), радиальное расстояние, алгоритм перпендикулярного расстояния. Также известны и могут быть использованы в способах и системах, представленных здесь и другие способы симплификации линий и алгоритмы.
[0039] В контексте настоящего описания, если конкретно не указано иное, термин «сегмент» подразумевает под собой прямую часть линии кривой, которая соединяет точки кривой. «Однородный сегмент» является частью кривой, которая имеет одинаковые или, по меньшей мере, очень близкие параметры формы на своем протяжении. Таким образом, как описывается здесь, однородный сегмент может включать в себя множество сегментов кривой, в котором каждый из множества сегментов имеет одинаковые или, по меньшей мере, очень близкие параметры формы, или же параметры формы по всему множеству сегментов в целом одинаковы. В общем случае два сегмента считаются однородными, если у них один или несколько параметров формы одинаковы или по меньшей мере, очень близки. Как будет понятно специалистам в данной области техники параметры формы, используемые для определения однородности в настоящем техническом решении, будут отличаться в зависимости от алгоритма симплификации, используемого для определения и создания параметров формы для данной кривой.
[0040] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными.
Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий «второй сервер» обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[0041] Каждый вариант осуществления настоящего технического решения преследует по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты настоящего технического решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.
[0042] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[0043] Для лучшего понимания настоящего технического решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0044] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с неограничивающим вариантом осуществления настоящего технического решения.
[0045] На Фиг. 2 представлен неограничивающий пример кривой, перед симплификацией и после симплификации, причем первая симплифицированная кривая разделена на три однородных сегмента.
[0046] На Фиг. 3 представлена блок-схема способа, выполняемого в рамках системы, изображенной на Фиг. 1, в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0047] На Фиг. 4 представлена блок-схема способа, выполняемого в рамках системы, изображенной на Фиг. 1, в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0048] На Фиг. 5 представлен неограничивающий пример кривой, перед симплификацией и после симплификации, причем первая симплифицированная кривая разделена на пять однородных сегментов.
Осуществление изобретения
[0049] На Фиг. 1 представлена схема системы 100, выполненная в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание показательных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание показательного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.
[0050] Система 100 включает в себя компьютерное устройство 102, являющееся сервером 102. Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 102 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящего технического решения, не ограничивающем его объем, сервер 102 является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих его объем, функциональность сервера 102 может быть разделена, и может выполняться с помощью нескольких серверов.
[0051] В некоторых вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением поставщика картографических сервисов, такого, например, как Яндекс.Карты (Yandex Maps™). В альтернативных вариантах осуществления настоящего технического решения сервер 102 может получать доступ к картографическому сервису, предоставляемому сторонними поставщиками. В других вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением или может получать доступ к поставщику таких сервисов, как сервисы компьютерных игр, сервисы графического дизайна и к другим сервисам, имеющим отношение к компьютерной графике. В других вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением или может получать доступ к поставщику таких сервисов, как сервисы фоторедакторов, сервисы видеоредакторов, сервисы хранения изображений (например, облачные сервисы) и другие сервисы, имеющие отношение к управлению такими графическими объектами как фотографии, видео и так далее. В дополнительных вариантах осуществления настоящего технического решения сервер 102 может находиться под контролем и/или управлением или может получать доступ к поставщику таких сервисов, как сервисы управления базами данных и сервисы хранения данных.
[0052] Сервер 102 включает в себя носитель 104 информации, который может использоваться сервером 102. В общем случае носитель 104 информации может быть выполнен как носитель любого характера и вида, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д. а также их комбинацию.
[0053] Варианты осуществления сервера 102 хорошо известны. Таким образом, достаточно отметить, что сервер 102 включает в себя, среди прочего, интерфейс 109 сетевой связи (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети 110 передачи данных; и процессор 108, соединенный с интерфейсом 109 сетевой связи и носителем 104 информации, причем процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на носителе 104 информации, выполнение которых инициирует процессор 108 реализовать различные описанные здесь процедуры.
[0054] В некоторых вариантах осуществления настоящего технического решения, не ограничивающих его объем, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения сеть 110 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[0055] Носитель 104 информации выполнен с возможностью хранить данные, включая машиночитаемые инструкции и другие данные, включая данные графических объектов (например, картографические данные, данные видеоигр, изображений и т.д.). В некоторых вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в базе данных 106. В других вариантах осуществления настоящего технического решения носитель 104 информации может хранить по меньшей мере часть данных в любом наборе данных, который отличается от базы данных.
[0056] Носитель 104 информации может хранить машиночитаемые инструкции, которые управляют обновлениями, заполнением и модификациям базы данных 106 и/или другими наборами данных. Более конкретно, машиночитаемые инструкции, хранящиеся на носителе 104 информации, могут позволить серверу 102 получить (например, обновить) информацию относительно графических объектов по сети 110 передачи данных и сохранить информацию относительно графических объектов, включая информацию относительно их симплифицированных кривых в базе данных 106 и/или других наборах данных.
[0057] Данные, сохраненные на носителе 104 информации (и, более конкретно, по меньшей мере частично, в некоторых вариантах осуществления настоящего технического решения, в базе данных 106) могут включать в себя, среди прочего, графические объекты любого типа. Неограничивающие примеры графических объектов включают в себя карты, видеоигры, изображения, фотографии и аудиовизуальные работы.
[0058] Машиночитаемые инструкции, сохраненные на носителе 104 информации, при исполнении могут инициировать получение процессором 108 инструкций на симплификацию кривой 208, 500. Инструкции на симплификацию кривой 208, 500 могут быть инструкциями пользователя 121, полученными сервером 102 от клиентского устройства 112, которое будет описано подробнее ниже. Инструкции на симплификацию кривой 208, 500 могут быть инструкциями пользовательского устройства 112, полученными сервером 102 от клиентского устройства 112. Например, в ответ на запрос пользователем 12