ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Настоящее решение относится к способу и системе хранения двух двухмерных объектов.
УРОВЕНЬ ТЕХНИКИ
[0002] В компьютерных технологиях существует необходимость в хранении двухмерных объектов, которые могут быть далее отображены на экране компьютерного устройства. Эти двухмерные объекты могут представлять собой любые графические объекты, такие как карты или другие изображения. Эти изображения могут приходить из множества источников, например, это могут быть отсканированные изображения, загруженные изображения с удаленного сервера и тому подобное.
[0003] В компьютерной графике традиционно используются две формы представления изображения: растровая и векторная. Естественно, в конкретных обстоятельствах может существовать необходимость перевести изображение из одного формата представления в другой. Например, в патенте US 6639593 В1 (28.10.2003), озаглавленном «Преобразование растровых объектов в полигоны» (англ. “Converting bitmap objects to polygons”), в параграфе «Уровень техники» описано, что «иногда удобно или необходимо получить векторное изображение одной или нескольких областей растрового изображения, например, для изменения формы растровой области, для изменения ее размера, для треппинга объекта или для обрезания векторного объекта по форме растровой маски. Одним из способов получения векторного представления является очерчивание границы растрового объекта попиксельно, чтобы создать замкнутый контур, или полигон, соответствующий растровому объекту».
[0004] Обычно при сохранении нескольких двухмерных объектов, это сохранение происходит независимо, что может потребовать значительных ресурсов памяти от машиночитаемых носителей информации.
[0005] Кроме того, некоторые двухмерные объекты могут обладать иерархией. Например, карта объекта представляет штат Калифорния, который является частью США, а США является частью Северной Америки. Во многих случаях есть необходимость сохранять двухмерные объекты вместе с информацией об их взаимной иерархии.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[0006] Таким образом, задачей предлагаемого решения является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.
[0007] Одним объектом настоящего решения является способ сохранения по меньшей мере двух двухмерных объектов на машиночитаемом носителе, способ выполняется на вычислительном устройстве, которое обладает доступом к информационному носителю, способ включает в себя: (1) получение первого двухмерного объекта, который будет сохранен на информационном (машиночитаемом) носителе, первый периметр первого двухмерного объекта включает в себя первую часть периметра и вторую часть периметра; (2) сохранение первого периметра на информационном устройстве следующим образом: (i) сохранение первой части периметра в виде первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра, (и) сохранение второй части первого периметра как второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, причем конечная крайняя точка первой части периметра является начальной крайней точкой второй части периметра; и (3) получение второго двухмерного объекта, который будет сохранен на информационном носителе, второй периметр второго двухмерного объекта включает в себя вторую часть периметра и третью часть периметра, вторая часть периметра является первой общей частью периметра первого двухмерного объекта и второго двухмерного объекта; (4) проверка логической иерархии второго двухмерного объекта и первого двухмерного объекта, и (i) в ответ на то, что второй двухмерный объект включен в первый двухмерный объект, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и сохранение ссылки на вторую часть периметра первого периметра; (ii) в ответ на то, что второй двухмерный объект и первый двухмерный объект являются соседними двухмерными объектами, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра в виде третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная точка третьей части периметра, и сохранение ссылки на вторую часть первого периметра, ссылка включает в себя инструкции интерпретировать начальную крайнюю точку второй части первого периметра как конечную крайнюю точку второй части второго периметра, и интерпретировать конечную крайнюю точку второй части первого периметра как начальную крайнюю точку второй части второго периметра.
[0008] В некоторых вариантах осуществления, (1) крайние точки соответствующего периметра соединены соответствующими отрезками в первом выбранном направлении вращения, начиная с крайней точки и заканчивая этой же крайней точкой, и (2) первое направление вращение выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
[0009] В некоторых вариантах, по меньшей мере один из (а) первого двухмерного объекта и (b) второго двухмерного объекта является полигональным объектом.
[0010] В некоторых вариантах осуществления, каждый из первого и второго двухмерного объекта является частью множества двухмерных объектов, и множество из двух двухмерных объектов является множеством картографических объектов.
[0011] В некоторых вариантах осуществления, сохранение на информационном носителе по меньшей мере одной выбранной: первой части периметра, второй части периметра и третьей части периметра, является сохранением по меньшей мере в одной базе данных.
[0012] Другим объектом настоящего решения является сервер. Сервер включает в себя: информационный носитель; процессор, функционально соединенный с информационным носителем, и выполненный с возможностью сохранять объекты на информационном носителе, процессор выполнен с возможностью осуществлять: (1) получение первого двухмерного объекта, который будет сохранен на информационном носителе, первый периметр первого двухмерного объекта включает в себя первую часть периметра и вторую часть периметра; (2) сохранение первого периметра на информационном устройстве следующим образом: (i) сохранение первой части периметра в виде первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра, (ii) сохранение второй части первого периметра как второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, причем конечная крайняя точка первой части периметра является начальной крайней точкой второй части периметра; и (3) получение второго двухмерного объекта, который будет сохранен на информационном носителе, второй периметр второго двухмерного объекта включает в себя вторую часть периметра и третью часть периметра, вторая часть периметра является первой общей частью периметра первого двухмерного объекта и второго двухмерного объекта; (4) проверка логической иерархии второго двухмерного объекта и первого двухмерного объекта, и (i) в ответ на то, что второй двухмерный объект включен в первый двухмерный объект, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и сохранение ссылки на вторую часть периметра первого периметра; (ii) в ответ на то, что второй двухмерный объект и первый двухмерный объект являются соседними двухмерными объектами, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра в виде третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная точка третьей части периметра, и сохранение ссылки на вторую часть первого периметра, ссылка включает в себя инструкции интерпретировать начальную крайнюю точку второй части первого периметра как конечную крайнюю точку второй части второго периметра, и интерпретировать конечную крайнюю точку второй части первого периметра как начальную крайнюю точку второй части второго периметра.
[0013] В некоторых вариантах осуществления сервера, (1) крайние точки соответствующего периметра соединены соответствующими отрезками в первом выбранном направлении вращения, начиная с крайней точки и заканчивая этой же крайней точкой, и (2) первое направление вращение выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
[0014] В некоторых вариантах, по меньшей мере один из (а) первого двухмерного объекта и (b) второго двухмерного объекта является полигональным объектом.
[0015] В некоторых вариантах осуществления сервера, каждый из первого и второго двухмерного объекта является частью множества двухмерных объектов, и множество из двух двухмерных объектов является множеством картографических объектов.
[0016] В некоторых вариантах, сохранение на информационном носителе по меньшей мере одной выбранной: первой части периметра, второй части периметра и третьей части периметра, является сохранением по меньшей мере в одной базе данных.
[0017] Другим объектом настоящего решения является способ восстановления логической иерархии по меньшей мере двух двухмерных объектов, первый двухмерный объект обладает первым периметром, второй двухмерный объект обладает вторым периметром, первый и второй периметры включают в себя части периметра, каждая часть периметра является отрезком, соединяющим две крайние точки соответствующей части периметра, крайние точки в первом периметре соединены соответствующими отрезками в первом выбранном направлении вращения, крайние точки второго периметра соединены соответствующими отрезками в первом выбранном направлении вращения, способ выполняется на вычислительном устройстве. Способ включает в себя: (1) получение первого и второго двухмерных объектов; (2) определение того, обладают ли первый и второй двухмерные объекты первой общей частью периметра; (3) в ответ на определение того, что первый двухмерный объект и второй двухмерный объект обладают первой общей частью периметра, определение того, соединены ли оба - первый и второй двухмерный объекты - в одном направлении первой общей частью периметра; (4) в ответ на то, что последовательность двух крайних точек первой общей части периметра в отношении обоих объектов - первого и второго двухмерного объекта - соединена в одном и том же направлении, (i) определение размеров первого двухмерного объекта и второго двухмерного объекта, и (ii) определение того, что меньший двухмерный объект, выбранный из: первого двухмерного объекта и второго двухмерного объекта, включен в больший двухмерный объект, выбранный из другого из: первого двухмерного объекта и второго двухмерного объекта; и (5) в ответ на то, что последовательность двух крайних точек первой общей части периметра, в отношении обоих из первого двухмерного объекта и второго двухмерного объекта, соединены в противоположных направлениях, определение того, что первый и второй двухмерный объекты являются соседними.
[0018] В некоторых вариантах осуществления, в которых второй двухмерный объект включен в первый двухмерный объект, способ дополнительно включает в себя получение третьего двухмерного объекта, причем третий двухмерный объект обладает второй общей частью периметра со вторым двухмерным объектом, третий двухмерный объект не обладает общей частью периметра с первым двухмерным объектом, способ дополнительно включает в себя: (1) определение того, соединены ли оба - третий двухмерный объект и второй двухмерный объект - в одном направлении второй общей частью периметра; и (2) в ответ на то, что последовательность двух крайних точек второй общей части периметра, в отношении обоих из третьего двухмерного объекта и второго двухмерного объекта, соединены в противоположных направлениях: (i) определение того, что третий двухмерный объект и второй двухмерный объект являются соседними, и (ii) определение того, что третий двухмерный объект включен в первый двухмерный объект.
[0019] В некоторых вариантах осуществления, в которых первый и второй двухмерный объекты являются частью множества двухмерных объектов, способ включает определение логической иерархии по меньшей мере двух двухмерных объектов, в которых ранг соответствующего двухмерного объекта обратно пропорционален числу других двухмерных объектов, которые включает в себя соответствующий двухмерный объект.
[0020] В некоторых вариантах осуществления, направление вращения выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
[0021] В некоторых вариантах осуществления, по меньшей мере один из (а) первого двухмерного объекта и (b) второго двухмерного объекта является полигональным объектом.
[0022] В некоторых вариантах осуществления, первый двухмерный объект и второй двухмерный объект являются частью множества двухмерных объектов, и множество из двух двухмерных объектов является множеством картографических объектов.
[0023] В некоторых вариантах осуществления, до получения первого периметра и второго периметра и определения того, обладают ли первый и второй двухмерные объекты первой общей частью периметра, способ дополнительно включает в себя: (1) получение первого двухмерного объекта, который будет сохранен на информационном носителе, первый периметр первого двухмерного объекта включает в себя первую часть периметра и вторую часть периметра; (2) сохранение первого периметра на информационном устройстве следующим образом: (i) сохранение первой части периметра в виде первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра, (ii) сохранение второй части первого периметра как второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, причем конечная крайняя точка первой части периметра является начальной крайней точкой второй части периметра; и (3) получение второго двухмерного объекта, который будет сохранен на информационном носителе, второй периметр второго двухмерного объекта включает в себя вторую часть и третью часть периметра, вторая часть периметра является первой общей частью периметра первого и второго двухмерных объектов; (4) проверка логической иерархии второго и первого двухмерных объектов, и (i) в ответ на то, что второй двухмерный объект включен в первый двухмерный объект, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и сохранение ссылки на вторую часть периметра первого периметра; (ii) в ответ на то, что второй и первый двухмерные объекты являются соседними двухмерными объектами, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра в виде третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная точка третьей части периметра, и сохранение ссылки на вторую часть первого периметра, ссылка включает в себя инструкции интерпретировать начальную крайнюю точку второй части первого периметра как конечную крайнюю точку второй части второго периметра, и интерпретировать конечную крайнюю точку второй части первого периметра как начальную крайнюю точку второй части второго периметра.
[0024] Другим объектом настоящего решения является сервер. Сервер включает в себя: информационный носитель; процессор, функционально соединенный с информационным носителем, и выполненный с возможностью сохранять объекты на информационном носителе, процессор выполнен с возможностью осуществлять: (1) получение первого и второго двухмерных объектов; (2) определение того, обладают ли первый и второй двухмерные объекты первой общей частью периметра; (3) в ответ на определение того, что первый и второй двухмерные объекты обладают первой общей частью периметра, определение того, соединены ли оба - первый и второй двухмерные объекты - в одном направлении первой общей частью периметра; (4) в ответ на то, что последовательность двух крайних точек первой общей части периметра в отношении обоих объектов - первого и второго двухмерного объектов - соединена в одном и том же направлении, (i) определение размеров первого и второго двухмерных объектов, и (ii) определение того, что меньший двухмерный объект, выбранный из: первого и второго двухмерных объектов, включен в больший двухмерный объект, выбранный из другого из: первого и второго двухмерного объекта; и (5) в ответ на то, что последовательность двух крайних точек первой общей части периметра, в отношении обоих из первого и второго двухмерного объекта, соединены в противоположных направлениях, определение того, что первый двухмерный объект и второй двухмерный объект являются соседними.
[0025] В некоторых вариантах осуществления сервера, в которых второй двухмерный объект включен в первый двухмерный объект, процессор выполнен с возможностью осуществлять получение третьего двухмерного объекта, причем третий двухмерный объект обладает второй общей частью периметра со вторым двухмерным объектом, третий двухмерный объект не обладает общей частью периметра с первым двухмерным объектом, процессор выполнен с возможностью осуществлять: (1) определение того, соединены ли оба - третий и второй двухмерные объекты - в одном направлении второй общей частью периметра; и (2) в ответ на то, что последовательность двух крайних точек второй общей части периметра, в отношении обоих из третьего и второго двухмерных объектов, соединены в противоположных направлениях: (i) определение того, что третий и второй двухмерные объекты являются соседними, и (ii) определение того, что третий двухмерный объект включен в первый двухмерный объект.
[0026] В некоторых вариантах осуществления сервера, процессор выполнен с возможностью осуществлять определение логической иерархии по меньшей мере двух двухмерных объектов, являющихся частью множества двухмерных объектов, в котором ранг соответствующего двухмерного объекта обратно пропорционален числу других двухмерных объектов, которые включает этот соответствующий двухмерный объект.
[0027] В некоторых вариантах осуществления сервера, направление вращения выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
[0028] В некоторых вариантах, по меньшей мере один из (а) первого двухмерного объекта и (b) второго двухмерного объекта является полигональным объектом.
[0029] В некоторых вариантах сервера, первый двухмерный объект и второй двухмерный объект являются частью множества двухмерных объектов, и множество из двух двухмерных объектов является множеством картографических объектов.
[0030] В некоторых вариантах осуществления сервера, процессор выполнен с возможностью осуществлять: (1) получение первого двухмерного объекта, который будет сохранен на информационном носителе, первый периметр первого двухмерного объекта включает в себя первую часть периметра и вторую часть периметра; (2) сохранение первого периметра на информационном устройстве следующим образом: (i) сохранение первой части периметра в виде первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра, (ii) сохранение второй части первого периметра как второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, причем конечная крайняя точка первой части периметра является начальной крайней точкой второй части периметра; и (3) получение второго двухмерного объекта, который будет сохранен на информационном носителе, второй периметр второго двухмерного объекта включает вторую часть периметра и третью часть периметра, вторая часть периметра является первой общей частью периметра первого и второго двухмерных объектов; (4) проверка логической иерархии второго и первого двухмерных объектов, и (i) в ответ на то, что второй двухмерный объект включен в первый двухмерный объект, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и сохранение ссылки на вторую часть периметра первого периметра; (ii) в ответ на то, что второй и первый двухмерные объекты являются соседними двухмерными объектами, сохранение на информационном носителе второго периметра следующим образом: сохранение третьей части периметра в виде третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная точка третьей части периметра, и сохранение ссылки на вторую часть первого периметра, ссылка включает в себя инструкции интерпретировать начальную крайнюю точку второй части первого периметра как конечную крайнюю точку второй части второго периметра, и интерпретировать конечную крайнюю точку второй части первого периметра как начальную крайнюю точку второй части второго периметра.
[0031] В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным. В контексте настоящего описания использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0032] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или она может находиться на отдельном оборудовании, например, выделенном сервере или множестве серверов.
[0033] В контексте настоящего описания, если конкретно не указано иное, термин «информация» включает в себя информацию любую информацию, включая информацию, которая может храниться в базе данных. Таким образом, информация включает в себя, среди прочего, аудиовизуальные произведения (фотографии, видео, звукозаписи, презентации и т.д.), данные (картографические данные, данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0034] В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0035] В контексте настоящего описания, если конкретно не указано иное, термин «информационный носитель» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0036] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий «второй сервер» обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» сервер и «второй» сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
[0037] В контексте настоящего описания, если специально не указано иное, выражение «двухмерный объект» подразумевает плоскую фигуру, отображаемую на компьютерном экрана, которая ограничена конечной цепочкой отрезков, образующих замкнутый контур.
[0038] В контексте настоящего описания, если специально не указано иное, выражение «полигональный объект» подразумевает под собой двухмерный объект, отображаемый на компьютерном экране, полигональный объект ограничен конечной цепочкой прямых отрезков, образующих замкнутый контур.
[0039] В контексте настоящего описания, если специально не указано иное, слово «периметр» означает путь, который ограничивает двухмерный объект. Периметр может включать в себя части периметра, которые могут храниться в виде отрезков, соединяющих две крайние точки соответствующей части периметра.
[0040] В контексте настоящего описания, если специально не указано иное, выражение «направление вращения» подразумевает под собой последовательность соединения последовательных крайних точек таким образом, что конечная крайняя точка одной части периметра является начальной крайней точкой следующей части того же самого периметра. Направление вращения может быть по или против часовой стрелки.
[0041] В контексте настоящего описания, если специально не указано иное, выражение «направление вращения» подразумевает направление соединения двух крайних точек той же общей части периметра, которая относится к двум двухмерным объектам, обладающим этой общей частью периметра. Например, отрезок, соединяющий первую крайнюю точку и вторую крайнюю точку той же общей части периметра, может быть соединен в любом из двух противоположных направлений соединения: (1) «первая крайняя точка - вторая крайняя точка», т.е. первая крайняя точка является начальной крайней точкой, а вторая крайняя точка является конечной крайней точкой; и (2) «вторая крайняя точка - первая крайняя точка», т.е. вторая крайняя точка является начальной точкой, а первая крайняя точка является конечная точка.
[0042] Каждый вариант осуществления настоящего решения включает по меньшей мере одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты настоящего решения, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять другим целям, отдельно не указанным здесь.
[0043] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0044] Для лучшего понимания настоящего решения, а также других его аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0045] На Фиг. 1 представлена структурная схема системы, выполненной в соответствии с вариантом осуществления настоящего решения.
[0046] На Фиг. 2 представлен неограничивающий пример первого двухмерного объекта, являющегося полигональным объектом, в котором крайние точки периметра первого двухмерного объекта соединены соответствующими отрезками в первом выбранном направлении вращения.
[0047] На Фиг. 3 представлен неограничивающий пример двух двухмерных объектов, первый двухмерный объект включает в себя второй двухмерный объект, оба двухмерных объекта являются полигональными объектами, где крайние точки соответствующих периметров соединены соответствующими отрезками в первом направлении вращения.
[0048] На Фиг. 4 представлен неограничивающий пример двух двухмерных объектов, первый двухмерный объект и второй двухмерный объект являются соседними объектами, оба двухмерных объекта являются полигональными объектами, где крайние точки соответствующих периметров соединены соответствующими отрезками в первом выбранном направлении вращения.
[0049] На Фиг. 5 представлен неограничивающий пример двух двухмерных объектов, первый двухмерный объект включает в себя второй двухмерный объект, оба двухмерных объекта являются не полигональными объектами.
[0050] На Фиг. 6 представлен неограничивающий пример другого варианта осуществления, в котором крайние точки соответствующих периметров соединены соответствующими отрезками во втором выбранном направлении вращения.
[0051] На Фиг. 7 представлен исполняемый на компьютере способ сохранения по меньшей мере двух двухмерных объектов на информационном носителе, способ реализован в соответствии с вариантами осуществления настоящего решения и выполняется на сервере системы, представленной на Фиг. 1.
[0052] На Фиг. 8 представлена блок-схема выполняемого на компьютере способа 800 восстановления логической иерархии по меньшей мере двух двухмерных объектов, способ реализован в соответствии с неограничивающими вариантами осуществления решения.
[0053] На Фиг. 9 представлен пример трех двухмерных объектов, первый двухмерный объект включает второй и третий двухмерные объекты, оба двухмерных объекта являются полигональными объектами, где крайние точки соответствующих периметров соединены соответствующими отрезками в первом выбранном направлении вращения.
[0054] На Фиг. 10 представлен вариант 1000 исполняемого на компьютере способа 800, вариант 1000 способа 800 реализован соответствии с неограничивающими вариантами осуществления.
[0055] На Фиг. 11 представлен первый двухмерный объект - Северная Америка на карте Северной Америки (материк).
[0056] На Фиг. 12 представлен первый двухмерный объект - Северная Америка и второй двухмерный объект - континентальная часть Канады на карте Северной Америки (материк).
[0057] На Фиг. 13 представлен первый двухмерный объект Северная Америка, второй двухмерный объект - континентальная часть Канады, третий двухмерный объект -провинция Квебек в Канаде, и четвертый двухмерный объект - провинция Онтарио в Канаде, на карте Северной Америки (материк).
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[0058] На Фиг. 1 представлена диаграмма системы, выполненной в соответствии с вариантами осуществления настоящего решения, не ограничивающими объем. Важно иметь в виду, что нижеследующее описание системы представляет собой описание иллюстративных вариантов осуществления. Таким образом, все последующее описание представлено только как описание иллюстративного примера. Это описание не предназначено для определения объема или установления границ решения. Некоторые полезные примеры модификаций системы также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента. Как будет понятно специалисту в данной области техники, это скорее всего не так. Кроме того, следует иметь в виду, что система представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления будут обладать гораздо большей сложностью.
[0059] Система включает в себя сервер 102. Сервер 102 может представлять собой обычный компьютерный сервер. В примере варианта осуществления, сервер 102 может представлять собой сервер Dell PowerEdge, на котором используется операционная система Microsoft Windows Server. Излишне говорить, что сервер 102 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления, не ограничивающем объем решения, сервер 102 является одиночным сервером. В других вариантах осуществления, функциональность сервера 102 может быть разделена, и может выполняться с помощью нескольких серверов.
[0060] В некоторых вариантах осуществления, сервер 102 находится под контролем и/или управлением поставщика картографического сервиса, такого, например, как поставщик сервиса поисковой системы Яндекс. Карты. В альтернативных вариантах осуществления сервер 102 может иметь доступ к картографическому сервису, предоставляемому поставщиком с третьей стороны.
[0061] Сервер 102 включает в себя информационный носитель 104, который может быть использован сервером 102. В общем случае, информационный носитель 104 может быть реализован как носитель любого типа, включая ОЗУ, ПЗУ, диски (CD-ROM, DVD, дискеты, жесткие диски и т.д.), USB ключи, твердотельные накопители, ленточные накопители, а также их комбинации.
[0062] Варианты осуществления сервера 102 хорошо известны в данной области техники. Таким образом, достаточно отметить, что каждый сервер 102 содержит, среди прочего, интерфейс 109 сетевой связи (например, модем, сетевую карту и т.п.) для двусторонней связи по сети 110 передачи данных; и процессор 108, соединенный с интерфейсом 109 сетевой связи и информационный носитель 104, процессор 108 выполнен с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессор 108 может иметь доступ к машиночитаемым инструкциям, хранящимся на информационном носителе 104 выполнение которых инициирует процессор 108 выполнять различные описанные здесь процедуры.
[0063] В некоторых вариантах, не ограничивающих объем решения, сеть 110 передачи данных может представлять собой Интернет. В других вариантах осуществления, сеть 110 передачи данных может быть реализована иначе, например, в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[0064] Информационный носитель 104 выполнен с возможностью сохранять данные, включая машиночитаемые инструкции и другие данные, включая картографические данные. В некоторых вариантах осуществления, информационный носитель 104 может хранить по меньшей мере часть данных в базе 106 данных.
[0065] Информационный носитель 104 может хранить машиночитаемые инструкции, которые обеспечивают контроль, обновление, заполнение и модификации базы 106 данных. Конкретнее, машиночитаемые инструкции (коды), которые хранятся на информационном носителе 104, позволяют серверу 102 получать (обновлять) информацию в отношении двухмерных объектов через сеть 110 передачи данных для хранения информации в отношении двухмерных объектов, включая информацию в отношении их соответствующих периметров в базе 106 данных.
[0066] Картографические данные, хранящиеся на информационном носителе 104 (и, конкретнее, в базе 106 данных), могут включать в себя двухмерные объекты любого типа. В качестве примера, двухмерный объект может представлять объект, который будет отображаться на электронном устройстве, связанном с пользователем (и то и другое не показано). В качестве другого примера, двухмерный объект может представлять собой изображение или любой другой графический объект, который будет отображаться на электронном устройстве, связанном с пользователем (и то и другое не показано).
[0067] В некоторых вариантах осуществления, двухмерные объекты могут быть полигональными объектами, как представлено на Фиг. 2, Фиг. 3 и Фиг. 4. В других вариантах осуществления, двухмерные объекты могут быть не полигональными объектами, как представлено на Фиг. 5. В других альтернативных вариантах, некоторые двухмерные объекты могут быть не полигональными объектами, а другие двухмерные объекты могут быть полигональными объектами (не показано).
[0068] Двухмерные объекты, хранящиеся на информационном носителе 104 могут обладать взаимными иерархическими отношениями. В качестве неограничивающего примера, как показано на Фиг. 11, Фиг. 12 и Фиг. 13, первый двухмерный объект может представлять собой Северную Америку 1101 на карте 1100 Северной Америки (материк), и второй двухмерный объект может представлять собой континентальную часть Канады 1102 на Карте 1100 Северной Америки (материк), которая включена в первый двухмерный объект (Северная Америка 1101). Третий и четвертый двухмерные объекты 1302, 1304 могут быть соответствующими Канадскими провинциями Квебек 1302 и Онтарио 1304, представленными на Фиг. 13, причем обе они включены во второй двухмерный объект 1200 (Канада 1200), и оба - третий и четвертый двухмерный объект 1302, 1304 (Квебек 1302 и Онтарио 1304) являются соседними, расположенными во втором двухмерном объекте 1200 (Канада 1200). Двухмерные объекты могут обладать различными рангами, причем ранг соответствующего двухмерного объекта обратно пропорционален числу двухмерных объектов, которые включены в этот двухмерный объект. Например, и Квебек 1302 и Онтарио 1304, в выше представленном примере включены в два двухмерных объекта (Канада 1200 и Северная Америка 1101). Канада 1200 включена в один двухмерный объект 1101 (Северная Америка 1101). Северная Америка 1101 не включена ни в какой другой объект на карте 1100 Северной Америки (материк). Поэтому и Квебек 1302, и Онтарио 1304 обладают самым низким рангом, Канада 1200 обладает средним рангом, а Северная Америка 1101 обладает самым высоким рангом. Аналогичная логика применима к любым другим двухмерным объектам. Например, на изображении автомобиля (не представлено) автомобиль может включать в себя изображение двери, а изображение двери может включать в себя изображение дверной ручки и бокового стекла. Поэтому, дверная рука и боковое стекло обладают самым низким рангом, дверь обладает средним рангом, а автомобиль целиком обладает самым высоким рангом. Дверная ручка и боковое стекло являются соседними объектами, обладающими одинаковым рангом.
[0069] Границы двухмерных объектов, хранящихся на информационном носителе 104, могут быть определены периметрами соответствующих двухмерных объектов. Периметр двухмерного объекта может включать в себя части периметра. Часть периметра может храниться в виде отрезка, соединяющего две крайние точки соответствующей части периметра, эти крайние точки соответствующей части периметра также могут храниться на информационном носителе 104. Отрезок может быть прямым или изогнутым. В отношении части периметра, одна из двух крайних точек может сохраняться сервером 102 на информационном носителе 104 в виде начальной крайней точки, а другая может сохраняться в виде конечной крайней точки.
[0070] В некоторых вариантах осуществления, машиночитаемые инструкции, хранящиеся на информационном носителе 104, при их выполнении, могут инициировать получение процессором 108 двухмерных объектов от информационного носителя 104 (например, из базы 106 данных) или из внешнего источника (например, от внешнего поставщика картографических данных).
[0071] В некоторых вариантах осуществления, машиночитаемые инструкции, хранящиеся на информационном носителе 104, при их выполнении, могут инициировать преобразование процессором 108 двухмерного объекта из растрового формата представления в векторный формат представления.
[0072] В некоторых вариантах осуществления, машиночитаемые инструкции могут далее инициировать сохранение процессором 108 на информационном носителе 104 первого периметра путем осуществления: (i) сохранения первой части периметра в виде первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра, и (ii) сохранения второй части первого периметра в виде второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, и конечная крайняя точка первой части периметра является начальной крайней точкой второй части периметра. Машиночитаемые инструкции могут инициировать сохранение процессором 108 крайних точек соответствующего периметра как соединенных соответствующими отрезками в одном и том же выбранном направлении вращения, начиная с крайней точки и заканчивая той же крайней точкой. Выбранное направление вращения может быть по часовой стрелке для всех двухмерных объектов или против часовой стрелки.
[0073] В некоторых вариантах осуществления, первый периметр первого двухмерного объекта может включать в себя более двух частей периметра. В этом случае более двух частей периметра может храниться на информационном носителе 104.
[0074] Например, ссылаясь на Фиг. 2, на котором представлен первый периметр первого двухмерного объекта 200, первый периметр содержит семь частей периметра: первую часть 206 первого периметра, которая является отрезком 206; вторую часть 208 первого периметра, которая является отрезком 208; восьмую часть 210 первого периметра, которая является восьмым отрезком 210; четвертую часть 212 первого периметра, которая является четвертым отрезком 212; пятую часть 214 первого периметра, которая является пятым отрезком; шестую часть 202 первого периметра, которая является шестым отрезком 202; седьмую часть 204 первого периметра, которая является седьмым отрезком 204. Следует напомнить, что в контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными.
[0075] Первый отрезок 206 соединяет две крайние точки 2042 и 2062 по часовой стрелке 250, таким образом, крайняя точка 2042 становится начальной крайней точкой первой части 206 периметра, а крайняя точка 2062 становится конечной крайней точкой первой части 206 периметра. Второй отрезок 208 соединяет две крайние точки 2062 и 2082 также по часовой стрелке 250, таким образом, крайняя точка 2062 становится начальной крайней точкой второй части 208 периметра, а крайняя точка 2082 становится конечной крайней точкой второй части 208 периметра. Таким образом, как можно видеть в этом примере, крайняя точка 2062 является в одно и то же время конечной крайней точкой первой части 206 периметра и начальной крайней точкой второй части 208 периметра.
[0076] Крайние точки первого периметра соединены соответствующими отрезами в том же выбранном направлении вращения (т.е. по часовой стрелке 250, в данном примере), начиная с крайней точки 2042 и заканчивая той же самой крайней точкой 2042. Крайняя точка 2042 является начальной точкой первой части 206 первого периметра, и крайняя точка 2042 одновременно является крайней точкой седьмой части 204 первого периметра. Как показано на Фиг. 2, все крайние точки соединены в одном и том же направлении вращения по часовой стрелке 250, таким образом, крайняя точка соответствующей части периметра является крайней точкой другой части периметра.
[0077] В некоторых вариантах осуществления, машиночитаемые инструкции, хранящиеся на информационном носителе 104, при их выполнении, могут инициировать получение процессором 108 второго двухмерного объекта, который будет храниться на информационном носителе 104, второй периметр второго двухмерного объекта включает в себя вторую и третью части периметра, причем вторая часть периметра является первой общей частью периметра для первого и второго двухмерных объектов.
[0078] На Фиг. 3 представлен пример второго двухмерного объекта 300. Второй периметр второго двухмерного объекта 300 включает в себя четыре части периметра: третью часть 302 второго периметра, вторую часть 208 второго периметра, девятую часть 304 второго периметра и десятую часть 306 второго периметра. Крайние точки второго периметра соединены соответствующими отрезками в том же выбранном направлении вращения: как показано на Фиг. 3, все крайние точки соединены в одном и том же направлении вращения по часовой стрелке 350, таким образом, конечная крайняя точка соответствующей части периметра является начальной крайней точкой другой части периметра. Как можно видеть на Фиг. 3, второй двухмерный объект 300 включен в первый двухмерный объект 200.
[0079] На Фиг. 4 представлен другой неограничивающий пример второго двухмерного объекта 400. Второй периметр второго двухмерного объекта 400 включает в себя другие четыре части периметра: третью часть 402 второго периметра, вторую часть 208 второго периметра, девятую часть 404 второго периметра и десятую часть 406 второго периметра. В данном альтернативном варианте, крайние точки второго периметра также соединены соответствующими отрезками в том же выбранном направлении вращения: как показано на Фиг. 4, все крайние точки соединены в одном и том же направлении вращения по часовой стрелке 450, таким образом, конечная крайняя точка соответствующей части периметра является начальной крайней точкой другой части периметра.
[0080] Таким образом, как показано на Фиг. 2, Фиг. 3 и Фиг. 4, крайние точки периметров каждой фигуры могут быть соединены соответствующими отрезками в том же (первом) выбранном направлении вращения, а именно - по часовой стрелке, таким образом, что конечная крайняя точка соответствующей части периметра является начальной крайней точкой другой части периметра.
[0081] В альтернативных вариантах осуществления, крайние точки периметров могут быть соединены соответствующими отрезками в том же (втором) выбранном направлении вращения, а именно - против часовой стрелки 650, как показано для целей иллюстрации на Фиг. 6, таким образом, конечная крайняя точка соответствующей части периметра является начальной крайней точкой другой части периметра.
[0082] В некоторых вариантах осуществления, машиночитаемые инструкции, хранящиеся на информационном носителе 104, при их выполнении, могут дополнительно инициировать процессор 108 проверять логическую иерархию второго двухмерного объекта 300 или 400 и первого двухмерного объекта 200.
[0083] В некоторых вариантах осуществления, машиночитаемые инструкции могут дополнительно инициировать процессор 108 в ответ на то, что второй двухмерный объект 300, представленный на Фиг. 3, включен в первый двухмерный объект 200, сохранять на информационном носителе 104 второй периметр путем осуществления: (1) сохранения третьей части 302 периметра как третьего отрезка 302, соединяющего две крайние точки 3020 и 2062 третьей части периметра, в котором первая крайняя точка 3020 третьей части периметра сохраняется как начальная крайняя точка 2062 третьей части периметра, и в котором вторая крайняя точка 2062 третьей части периметра сохраняется как конечная крайняя точка 2062 третьей части периметра, и (2) сохранения ссылки на вторую часть 208 первого периметра.
[0084] В некоторых вариантах осуществления, машиночитаемые инструкции могут дополнительно инициировать процессор 108 в ответ на то, что первый двухмерный объект 200 и второй двухмерный объект 400, представленные на Фиг. 4, являются соседними двухмерными объектами 200 и 400, сохранять на информационном носителе 104 второй периметр путем осуществления: (1) сохранения третьей части периметра как третьего отрезка 402, соединяющего две крайние точки 2062 и 4022 третьей части периметра, в котором первая крайняя точка 2062 третьей части периметра сохраняется как начальная крайняя точка 2062 третьей части периметра, и в котором вторая крайняя точка 4022 третьей части периметра сохраняется как конечная крайняя точка 4022 третьей части периметра, и (2) сохранения ссылки на вторую часть 208 первого периметра, ссылка включает в себя инструкцию интерпретировать начальную крайнюю точку 2062 второй части 208 первого периметра как конечную крайнюю точку 2062 второй части второго периметра, и интерпретировать конечную крайнюю точку 2082 второй части 208 первого периметра как начальную крайнюю точку 2082 второй части 208 второго периметра.
[0085] Другими словами, результат соединения крайних точек в одном и том же направлении вращения (в направлении по часовой стрелке 250, в данном случае), начальная крайняя точка второй части 208 периметра, по отношению к первому двухмерному объекту 200, является крайней точкой 2062, а конечная точка второй части 208 периметра является крайней точкой 2082. Поэтому когда первый двухмерный объект 200 включает в себя второй двухмерный объект 300, как показано на Фиг. 3, первая общая часть 208 периметра обладает той же начальной крайней точкой 2062 и той же конечной крайней точкой 2082 для обоих - первого двухмерного объекта 200 и второго двухмерного объекта 300. Тем не менее, когда первый двухмерный объект 200 и второй двухмерный объект 400 являются соседними объектами, как показано на Фиг. 4, они обладают первой общей частью 208 периметра, но их соответствующие крайние точки, соединенные первой общей частью 208 периметра необходимо интерпретировать иначе. Как представлено на Фиг. 4, крайние точки обоих двухмерных объектов 200 и 400 соединены в направлении по часовой стрелке (другими словами, в первом направлении вращения), но направление соединения в первой общей части 208 периметра является другим. В отношении первого двухмерного объекта 200, соединение направлено вниз, а для второго двухмерного объекта 400 соединение направлено вверх. Таким образом, в отношении второго двухмерного объекта 200, крайняя точка 2062 будет интерпретирована как конечная крайняя точка 2062, а крайняя точка 2082 будет интерпретирована как начальная крайняя точка 2082. Таким образом, в том случае, когда два двухмерных объекта 200 и 400 являются соседними объектами, первая общая часть 208 периметра первого двухмерного объекта 200 и второго двухмерного объекта соединены в противоположных направлениях.
[0086] В некоторых вариантах осуществления, машиночитаемые инструкции могут инициировать процессор 108 получать двухмерные объекты. В некоторых вариантах осуществления, машиночитаемые инструкции (коды) могут инициировать процессор 108 получать двухмерные объекты от информационного носителя 104 и, в некоторых вариантах осуществления, из базы 106 данных. Например, машиночитаемые инструкции могут инициировать процессор 108 получать первый двухмерный объект 200 и второй двухмерный объект 300, показанные на Фиг. 3, или получать первый двухмерный объект 200 и второй двухмерный объект 400, показанные на Фиг. 4.
[0087] В некоторых вариантах осуществления, машиночитаемые инструкции могут инициировать процессор 108 определять, обладают ли первый и второй двухмерные объекты первой общей частью периметра. Например, обращаясь к Фиг. 3, машиночитаемые инструкции могут инициировать процессор 108 определять, обладают ли первый двухмерный объект 200 и второй двухмерный объект 300, представленные на Фиг. 3, первой общей частью 208 периметра. В качестве другого примера, обращаясь к Фиг. 4, машиночитаемые инструкции могут инициировать процессор 108 определять, обладают ли первый двухмерный объект 200 и второй двухмерный объект 400, представленные на Фиг. 4, первой общей частью 208 периметра. В результате можно определить, что первый двухмерный объект 200 и второй двухмерный объект 300/400 обладают первой общей частью 208 периметра.
[0088] Возможно, что два двухмерных объекта не обладают общей частью периметра. Например, если один двухмерный объект является картой Испании, а другой двухмерный объект является картой Польши, они не обладают общей частью периметра. В качестве другого неограничивающего примера, если один двухмерный объект, представленный на изображении, является передним колесом автомобиля, а другой двухмерный объект является задним колесом, они также не будут обладать общей частью периметра.
[0089] В некоторых вариантах осуществления, машиночитаемые инструкции могут инициировать процессор 108, в ответ на определение того, что первый и второй двухмерные объекты обладают первой общей частью периметра, определять, соединена ли первая общая часть периметра в отношении обоих объектов - первого двухмерного объекта и второго двухмерного объекта - в одном и том же направлении.
[0090] Например, по отношению к двухмерным объектам 200, 300, представленным на Фиг. 3, будет определено, что две крайние точки 2062 и 2082 первой общей части 208 периметра, в отношению к обоим объектам - первому двухмерному объекту 200 и второму двухмерному объекту 300, соединены в том же направлении «2062-2082», таким образом 2062 является начальной крайней точкой для обоих первого двухмерного объекта 200 и второго двухмерного объекта 300, а крайняя точка 2082 является конечной крайней точкой для обоих первого двухмерного объекта 200 и второго двухмерного объекта 300.
[0091] В отношению к двухмерным объектам, представленным на Фиг. 4, будет определено, что две крайние точки 2062 и 2082 первой общей части 208 периметра, в отношении к первому двухмерному объекту 200 соединены в направлении «2062-2082», а в отношении ко второму двухмерному объекту 400 они соединены в противоположном направлении «2082-2062». Следовательно, крайняя точка 2062 будет начальной крайней точкой для двухмерного объекта 200 и конечной крайней точкой для второго двухмерного объекта 400. Аналогично, крайняя точка 2082 будет конечной крайней точкой для двухмерного объекта 200 и начальной крайней точкой для второго объекта 400.
[0092] В некоторых вариантах осуществления, машиночитаемые инструкции могут инициировать процессор 108, в ответ на то, что последовательность двух крайних точек первой общей части периметра, в отношении обоих первого и второго двухмерных объектов, соединена в том же направлении, (i) определить размеры первого и второго двухмерных объектов, и (ii) определять, что меньший двухмерный объект, выбранный из: первого двухмерного объекта 200 и второго двухмерного объекта 300, включен в больший двухмерный объект выбранный из другого из: первого двухмерного объекта 200 и второго двухмерного объекта 300. Например, обращаясь к Фиг. 3, машиночитаемые инструкции могут дополнительно инициировать процессор 108: (i) определить размеры первого двухмерного объекта 200 и второго двухмерного объекта 300, и (ii) на основе определения того, что второй двухмерный объект 300 меньше, чем первый двухмерный объект 200, определить, что второй двухмерный объект 300 включен в первый двухмерный объект 200. Другими словами, одно и то же направление соединения («2062-2082» и снова «2062-2082») используется как знак того, что один из объектов включен в другой. Знание размеров позволяет определять, какой из двухмерных объектов включен в другой.
[0093] В некоторых вариантах осуществления, машиночитаемые инструкции могут дополнительно инициировать процессор 108, в ответ на последовательность двух крайних точек первой общей части периметра, в отношении обоих первого двухмерного объекта и второго двухмерного объекта, которые соединены в противоположных направлениях, определить, что первый двухмерный объект и второй двухмерный объект являются соседними. Подобное определение будет происходить, например, если происходит анализ двух двухмерных объектов 200 и 300, показанных на Фиг. 4. Как было описано выше, направления соединения «2062-2082» и «2082-2062» являются противоположными, что может быть использовано как знак того, что два двухмерных объекта 200 и 400 являются соседними объектами и ни один из них не включен в другой.
[0094] На Фиг. 7 представлен исполняемый на компьютере способ 700 сохранения по меньшей мере двух двухмерных объектов на информационном носителе 104, способ 700 реализован в соответствии с вариантами осуществления и выполняется на сервере 102 системы, представленной на Фиг. 1.
[0095] Этап 702 - получение первого двухмерного объекта 200, который будет сохранен на информационном носителе 104, первый периметр первого двухмерного объекта 200 включает в себя первую часть 206 периметра и вторую часть 208 периметра.
[0096] Способ 700 начинается на этапе 702, где вычислительное устройство, которое в данном варианте является сервером 102, получает первый двухмерный объект 200, который будет сохраняться на информационном носителе 104, первый периметр первого двухмерного объекта 200 включает первую часть 206 и вторую часть 208 периметра.
[0097] В этом варианте осуществления, сервер 102 получает первый двухмерный объект 200 из внешнего ресурса, который может быть поставщиком картографических данных. В других вариантах осуществления, источником первого двухмерного изображения может быть любой другой подходящий источник, например, устройство, которое оптически сканирует изображения и переводит их в цифровой формат. Далее, сервер 102 может конвертировать двухмерный объект из растрового формата представления в векторный формат представления и наоборот.
[0098] В данном варианте, первый двухмерный объект 200 является кадастровым планом земельного участка. Первый двухмерный объект 200 включает полигональный объект.
[0099] В других вариантах осуществления, первый двухмерный объект 200 может быть изображением или любым другим графическим двухмерным объектом.
[00100] В других вариантах осуществления, первый двухмерный объект 200 также может быть полигональным объектом или двухмерным объектом любой другой формы.
[00101] Способ 700 далее переходит к выполнению этапа 704.
[00102] Этап 704 - сохранение на информационном носителе 104 первого периметра первого двухмерного объекта 200.
[00103] Далее, на этапе 704 сервер 102 сохраняет на информационном носителе 104 первый периметр первого двухмерного объекта 200, представленного на Фиг. 2 или Фиг. 3.
[00104] В этом варианте осуществления, сервер 102 сохраняет первый периметр в базе 106 данных, которая хранится на информационном носителе 104 сервера 102.
[00105] Сервер 102 сохраняет первый периметр, сохраняя части первого периметра: первую часть 206 первого периметра, которая является отрезком 206; вторую часть 208 первого периметра, которая является отрезком 208; восьмую часть 210 первого периметра, которая является восьмым отрезком 210; четвертую часть 212 первого периметра, которая является четвертым отрезком 212; пятую часть 214 первого периметра, которая является пятым отрезком; шестую часть 202 первого периметра, которая является шестым отрезком 202; седьмую часть 204 первого периметра, которая является седьмым отрезком 204.
[00106] Сервер 102 сохраняет эти части периметра соответствующим образом как (1) первый отрезок 206, соединяющий две крайние точки 2042 и 2062 в направлении по часовой стрелке 250, таким образом крайняя точка 2042 становится начальной крайней точкой первой части 206 периметра, и крайняя точка 2062 становится конечной крайней точкой первой части 206 периметра; (2) второй отрезок 208, соединяющий две крайние точки 2062 и 2082 в направлении по часовой стрелке 250, крайняя точка 2062 становится начальной крайней точкой второй части 208 периметра, и крайняя точка 2082 становится конечной крайней точкой второй части 206 периметра; (3) восьмой отрезок 210, соединяющий две крайние точки 2082 и 2102 также в направлении по часовой стрелке 250, таким образом крайняя точка 2082 становится начальной крайней точкой восьмой части 210 периметра, и крайняя точка 2102 становится конечной крайней точкой восьмой части 210 периметра; (4) четвертый отрезок 212, соединяющий две крайние точки 2102 и 2122 в направлении по часовой стрелке 250, таким образом крайняя точка 2102 становится начальной крайней точкой четвертой части 212 периметра, и крайняя точка 2122 становится конечной крайней точкой четвертой части 212 периметра; (5) пятый отрезок 214, соединяющий две крайние точки 2122 и 2020 в направлении по часовой стрелке 250, крайняя точка 2122 становится начальной крайней точкой пятой части 214 периметра, и крайняя точка 2020 становится конечной крайней точкой пятой части 214 периметра; (6) шестой отрезок 202, соединяющий две крайние точки 2020 и 2022 в направлении по часовой стрелке 250, крайняя точка 2020 становится начальной крайней точкой шестой части 202 периметра, и крайняя точка 2022 становится конечной крайней точкой шестой части 202 периметра; (7) седьмой отрезок 204, соединяющий две крайние точки 2022 и 2042 в направлении по часовой стрелке 250, крайняя точка 2022 становится начальной крайней точкой седьмой части 204 периметра, и крайняя точка 2042 становится конечной крайней точкой седьмой части 204 периметра. Конечная крайняя точка 2042 седьмой части 204 периметра также является начальной точкой 2042 первого отрезка 206.
[00107] Таким образом, как можно видеть на этом примере, конечная крайняя точка каждой части данного периметра является начальной крайней точкой следующей части этого же самого периметра. Все крайние точки данного периметра соединены соответствующими отрезками в том же само выбранном направлении 250 вращения. Крайняя точка 2042 является начальной точкой первой части 206 первого периметра, и крайняя точка 2042 одновременно является крайней точкой седьмой части 204 первого периметра. После выбора, того же выбранное направление 250 вращения будет использовано на этапе 708 или 712, в зависимости от обстоятельств.
[00108] В альтернативных вариантах осуществления, все крайние точки первого периметра могут быть соединены соответствующими отрезками в том же выбранном направлении 650 вращения, которое является направлением против часовой стрелки 650. После выбора, того же выбранное направление 650 вращения будет использовано на этапе 708 или 712, в зависимости от обстоятельств.
[00109] Способ 700 далее переходит к выполнению этапа 706.
[00110] Этап 706 - получение второго двухмерного объекта 300 или 400, который будет храниться на информационном носителе 104, второй периметр второго двухмерного объекта 300 или 400 включает в себя вторую часть периметра и третью часть периметра, причем вторая часть периметра является первой общей частью периметра для первого двухмерного объекта и второго двухмерного объекта.
[00111] Далее, на этапе 706 сервер 102 получает второй двухмерный объект, который будет сохранен на информационном носителе 104.
[00112] Второй двухмерный объект может быть любым двухмерным объектом, который обладает общей частью периметра с первым двухмерным объектом 200. Второй двухмерный объект может быть вторым двухмерным объектом 400, который является соседним объектом для первого двухмерного объекта 200, или он может быть вторым двухмерным объектом 300, который включен в первый двухмерный объект 200.
[00113] В этом варианте осуществления, сервер 102 получает второй двухмерный объект 300/400 из внешнего ресурса, который является поставщиком картографических данных. В других вариантах осуществления, источником второго двухмерного объекта 300/400 может быть другой подходящий источник, например, устройство, которое оптически сканирует изображения и переводит их в цифровой формат.
[00114] В данном варианте осуществления, второй двухмерный объект 300/400 является полигональным объектом, представляющим собой земельный участок.
[00115] В случае второго двухмерного объекта 300, второй двухмерный объект 300 является земельным участком, который является частью большего земельного участка, а больший земельный участок является первым двухмерным объектом 200. Например, первый двухмерный объект 200 может представлять целый земельный участок 200, а второй двухмерный объект 300 может представлять собой часть земельного участка 200, в котором кадастровым зонированием допускается строительство зданий.
[00116] В случае второго двухмерного объекта 400, второй двухмерный объект 400 и первый двухмерный объект 200 являются соседними земельными участками.
[00117] В других вариантах осуществления, второй двухмерный объект 300/400 может быть изображением или любым другим графическим двухмерным объектом.
[00118] В данном варианте, второй двухмерный объект 300/400 является полигональным объектом. В других вариантах, второй двухмерный объект 300/400 также может быть полигональным объектом или двухмерным объектом любой другой формы.
[00119] В альтернативных вариантах осуществления, сервер 102 может получать больше двух двухмерных объектов. Например, сервер может получать третий двухмерный объект 900, представленный на Фиг. 9.
[00120] Способ 700 далее переходит к выполнению этапа 708.
[00121] Этап 708 - проверка логической иерархии второго двухмерного объекта 300, 400 и первого двухмерного объекта 200.
[00122] Далее, на этапе 708 сервер 102 осуществляет проверку логической иерархии второго двухмерного объекта 300, 400 и первого двухмерного объекта 200.
[00123] Если в отношении второго двухмерного объекта сервер 102 определит, что второй двухмерный объект включен в первый двухмерный объект 200, то способ 700 переходит к этапу 710.
[00124] Если в отношении второго двухмерного объекта сервер 102 определит, что второй двухмерный объект и первый двухмерный объект 200 являются соседними двухмерными объектами, то способ 700 переходит к этапу 712.
[00125] Например, в отношении второго двухмерного объекта 300 сервер 102 определит, что второй двухмерный объект 300 включен в первый двухмерный объект 200, как показано на Фиг. 3, и способ 700 переходит к этапу 710. Тем не менее, в отношении второго двухмерного объекта 400 сервер 102 определит, что второй двухмерный объект 400 и первый двухмерный объект 200 являются соседними, как показано на Фиг. 4, и способ 700 переходит к этапу 712.
[00126] В альтернативных вариантах осуществления, когда сервер 102 получает больше двух двухмерных объектов, сервер 102 может проверять логическую иерархию всех этих двухмерных объектов или, по меньшей части из них. Например, когда сервер 102 получает третий двухмерный объект 900, показанный на Фиг. 9, сервер 102 может проверять логическую иерархию третьего двухмерного объекта 900 по отношению ко всем двухмерным объектам, с которыми оно обладает общими частями периметра. В варианте осуществления, представленном на Фиг. 9, сервер 102 может проверять логическую иерархию третьего двухмерного объекта 900 по отношению ко второму двухмерному объекту 300 (оба - третий двухмерный объект 900 и второй двухмерный объект 300 обладают общей частью 306 периметра). В отношении третьего двухмерного объекта 900 сервер 102 может определить, что третий двухмерный объект 900 и второй двухмерный объект 300 являются соседними объектами. Способ 700 далее переходит к выполнению этапа 712.
[00127] Этап 710 - в ответ на то, что второй двухмерный объект 300 включен в первый двухмерный объект 200, сохранение второго периметра как ссылки на вторую часть 208 первого периметра, и сохранение других частей периметра второго двухмерного объекта 300.
[00128] Как указывалось ранее, способ 700 переходит к этапу 710 только если второй двухмерный объект включен в первый двухмерный объект 200. В варианте на Фиг. 3, второй двухмерный объект 300 включен в первый двухмерный объект 200.
[00129] На этапе 710 сервер 102 в ответ на то, что второй двухмерный объект включен в первый двухмерный объект, сохраняет на информационном носителе 104 в базе 106 данных, ссылку на вторую часть 208 первого периметра, причем вторая часть 208 периметра была ранее сохранена как отрезок, соединяющий начальную крайнюю точку 2062 и конечную крайнюю точку 2082. Сервер 102 не сохраняет саму вторую часть 208 периметра, которая уже была сохранена на этапе сохранения частей первого периметра первого двухмерного объекта 200.
[00130] Далее, сервер 102 сохраняет другие части периметра второго двухмерного объекта 300, которые еще не были сохранены: третью часть 302 второго периметра, девятую часть 304 второго периметра и десятую часть 306 второго периметра. Крайние точки второго периметра соединены соответствующими отрезками в том же выбранном направлении вращения: как показано на Фиг. 3, все крайние точки соединены в одном и том же направлении вращения по часовой стрелке 250, таким образом, крайняя точка соответствующей части периметра является крайней точкой другой части периметра.
[00131] В этом варианте, сервер 102 сохраняет ссылку на вторую часть 208 первого периметра и части 302, 304, 306 второго периметра в базе 106 данных, которая хранится на информационном носителе 104 сервера 102. В других вариантах, второй периметр может храниться на информационном носителе 104 в любом другом удобном виде.
[00132] Сервер 102 сохраняет эти части периметра соответственно как (1) третий отрезок 302, соединяющий две крайние точки 3020 и 2062 в направлении по часовой стрелке 250, таким образом крайняя точка 3020 становится начальной крайней точкой третьей части 302 второго периметра, а крайняя точка 2062 становится конечной крайней точкой третьей части 302 второго периметра; (2) девятый отрезок 304, соединяющий две крайние точки 2082 и 3042 в направлении по часовой стрелке 250, крайняя точка 2082 становится начальной крайней точкой девятой части 304 второго периметра, а крайняя точка 3042 становится конечной крайней точкой девятой части 304 второго периметра; (3) десятый отрезок 306, соединяющий две крайние точки 3042 и 3030 в направлении по часовой стрелке 250, крайняя точка 3042 становится начальной крайней точкой десятой части 306 второго периметра, а крайняя точка 3020 становится конечной крайней точкой десятой части 306 второго периметра.
[00133] Таким образом, как можно видеть в этом примере, конечная крайняя точка каждой части данного периметра является начальной крайней точкой следующей части этого же самого периметра. Все крайние точки данного периметра соединены соответствующими отрезками в том же самом выбранном направлении 250 вращения.
[00134] Далее способ 700 заканчивается.
[00135] Этап 712 - в ответ на то, что второй двухмерный объект 400 и первый двухмерный объект 200 являются соседними двухмерными объектами, сохранение частей периметра второго двухмерного объекта 400, за исключением второй части 208 периметра, и сохранение ссылки на вторую часть 208 первого периметра, ссылка включает в себя инструкции о том, как интерпретировать начальные и конечные точки второй части 208 периметра в отношении второго двухмерного объекта 400.
[00136] Как упоминалось ранее, способ 700 переходит к этапу 712, только если второй двухмерный объект и первый двухмерный объект 200 являются соседними двухмерными объектами. В варианте на Фиг. 4, второй двухмерный объект 400 и первый двухмерный объект 200 являются соседними двухмерными объектами.
[00137] На этапе 712 сервер 102 в ответ на то, что второй двухмерный объект 400 и первый двухмерный объект 200 являются соседними, сохраняет на информационном носителе 104 в базе 106 данных, ссылку на вторую часть 208 первого периметра, причем вторая часть 208 периметра была ранее сохранена как отрезок, соединяющий начальную крайнюю точку 2062 и конечную крайнюю точку 2082. Ссылка на вторую часть 208 первого периметра включает в себя инструкцию интерпретировать начальную крайнюю точку 2062 второй части 208 первого периметра как конечную точку 2062 второй части 208 второго периметра, и интерпретировать конечную крайнюю точку 2082 второй части 208 первого периметра как начальную крайнюю точку 2082 второй части 208 второго периметра. Другими словами, если вторая часть 208 периметра в отношении первого двухмерного объекта 200 интерпретируется как отрезок 208 «2062-2082», то вторая часть 208 периметра в отношении второго двухмерного объекта 400 интерпретируется как отрезок 208 «2082-2062».
[00138] Далее, сервер 102 сохраняет другие части периметра второго двухмерного объекта 400, которые еще не были сохранены: третью часть 402 второго периметра, вторую часть 208 второго периметра, девятую часть 404 второго периметра и десятую часть 406 второго периметра. Крайние точки второго периметра соединены соответствующими отрезками в том же выбранном направлении вращения: как показано на Фиг. 4, все крайние точки соединены в одном и том же направлении вращения по часовой стрелке 250, таким образом, крайняя точка соответствующей части периметра является крайней точкой другой части периметра.
[00139] В этом варианте осуществления, сервер 102 сохраняет ссылку на вторую часть 208 первого периметра и части 402, 404, 406 второго периметра в базе 106 данных, которая хранится на информационном носителе 104 сервера 102.
[00140] Сервер 102 сохраняет эти части периметра соответственно как (1) третий отрезок 402, соединяющий две крайние точки 2062 и 4022 в направлении по часовой стрелке 250, таким образом крайняя точка 2062 становится начальной крайней точкой третьей части 402 второго периметра, а крайняя точка 4022 становится конечной крайней точкой третьей части 402 второго периметра; (2) девятый отрезок 404, соединяющий две крайние точки 4022 и 4042 в направлении по часовой стрелке 250, таким образом крайняя точка 4022 становится начальной крайней точкой девятой части 404 второго периметра, а крайняя точка 4042 становится конечной крайней точкой девятой части 404 второго периметра; (3) десятый отрезок 406, соединяющий две крайние точки 4042 и 3030 в направлении по часовой стрелке 250, таким образом крайняя точка 4042 становится начальной крайней точкой десятой части 406 второго периметра, а крайняя точка 2082 становится конечной крайней точкой десятой части 406 второго периметра.
[00141] Таким образом, как можно видеть в этом примере, конечная крайняя точка каждой части данного периметра является начальной крайней точкой следующей части этого же самого периметра. Все крайние точки данного периметра соединены соответствующими отрезками в том же самом выбранном направлении 250 вращения.
[00142] В альтернативных вариантах, когда сервер 102 получает и проверяет логическую иерархию третьего двухмерного объекта 900, сервер 102 в ответ на то, что третий двухмерный объект 900 и второй двухмерный объект 300 являются соседними двухмерными объектами, сохраняет на информационном носителе 104 в базе 106 данных, ссылку на десятую часть 306 второго периметра, причем десятая часть 306 периметра была ранее сохранена как отрезок, соединяющий начальную крайнюю точку 3042 и конечную крайнюю точку 3020. Ссылка на десятую часть 306 второго периметра содержит инструкцию интерпретировать начальную крайнюю точку 3042 десятой части 306 второго периметра как конечную точку 3042 десятой части 306 третьего периметра, и интерпретировать конечную крайнюю точку 3020 десятой части 306 второго периметра как начальную крайнюю точку 3020 десятой части 306 третьего периметра. Другими словами, если десятая часть 306 периметра в отношении второго двухмерного объекта 300 интерпретируется как отрезок 306 «3042-3020», то десятая часть 306 периметра в отношении третьего двухмерного объекта 900 интерпретируется как отрезок 306 «3020-3042».
[00143] Далее, сервер 102 сохраняет другие части периметра третьего двухмерного объекта 900, которые еще не были сохранены: одиннадцатую часть 902 третьего периметра и двенадцатую часть 904 третьего периметра. Крайние точки третьего периметра соединены соответствующими отрезками в том же выбранном направлении вращения: как показано на Фиг. 9, все крайние точки соединены в одном и том же направлении вращения по часовой стрелке 250, таким образом, крайняя точка соответствующей части периметра является крайней точкой другой части периметра.
[00144] Далее способ 700 заканчивается.
[00145] На Фиг. 8 представлен выполняемый на компьютере способ 800 восстановления логической иерархии по меньшей мере двух двухмерных объектов, первый двухмерный объект 200, представленный на Фиг. 2, обладает первым периметром, второй двухмерный объект 300/400 (представлены соответственно на Фиг. 3 и на Фиг. 4) обладает вторым периметром, первый периметр и второй периметр включают в себя части периметра, каждая часть периметра является отрезком, соединяющим две крайние точки соответствующей части периметра, крайние точки в первом периметре соединены соответствующими отрезками в первом выбранном направлении 250 вращения, крайние точки второго периметра соединены соответствующими отрезками в первом выбранном направлении 250 вращения. Способ 800 выполняется в соответствии с неограничивающими вариантами осуществления и выполняется на вычислительном устройстве, которое в данном варианте осуществления представляет собой сервер 102 системы, представленной на Фиг. 1. При описании способа 800 описание первого двухмерного объекта 200, описание второго двухмерного объекта 300/400, описание соответствующих периметров, частей периметров, крайних точек, соединяющих отрезков и направлений соединения опущено во избежание громоздкости. Соответствующие представленные выше описания могут быть применены для способа 800.
[00146] Этап 802 - получение первого двухмерного объекта 200 и второго двухмерного объекта 300/400.
[00147] Способ 800 начинается на этапе 802, где сервер 102 получает первый двухмерный объект 200 и второй двухмерный объект 300/400 из базы 106 данных.
[00148] В этом варианте осуществления, первый двухмерный объект 200 и второй двухмерный объект 300/400 были сохранены на информационном носителе 104 в базе 106 данных. Первый двухмерный объект 200 и второй двухмерный объект 300/400 были ранее сохранены на информационном носителе 104 в базе 106 данных в соответствии со способом 700.
[00149] В альтернативном варианте осуществления, первый двухмерный объект 200 и второй двухмерный объект 300/400 были сохранены на другом информационном носителе 104, к которому сервер 102 имеет доступ.
[00150] В этом варианте осуществления, первый двухмерный объект 200 и второй двухмерный объект 300/400 являются земельными участками. Первый двухмерный объект 200 и второй двухмерный объект 300/400 являются полигональными объектами.
[00151] В других вариантах осуществления, первый двухмерный объект 200 и второй двухмерный объект 300/400 может быть изображением или любым другим графическим двухмерным объектом.
[00152] В других вариантах, первый двухмерный объект 200 и второй двухмерный объект 300/400 также могут быть полигональными объектами или двухмерными объектами любой другой формы.
[00153] Способ 800 далее переходит к выполнению этапа 804.
[00154] Этап 804 - определение того, обладают ли первый двухмерный объект 200 и второй двухмерный объект 300/400 первой общей частью периметра.
[00155] Далее, на этапе 804 сервер осуществляет определение того, обладают ли первый двухмерный объект 200 и второй двухмерный объект 300/400 первой общей частью периметра.
[00156] На этом этапе сервер 102 определяет, что база 106 данных хранит вторую часть 208 периметра как одну из частей первого периметра первого двухмерного объекта 200. Одновременно база 106 данных хранит второй периметр второго двухмерного объекта 300/400 как ссылку на вторую часть 208 первого периметра и как части 302/402, 304/404, 306/406 второго периметра. Упомянутая ссылка на вторую часть 208 первого периметра может быть использована сервером 102 как индикатор того, что вторая часть 208 периметра является первой общей частью 208 периметра.
[00157] Способ 800 далее переходит к выполнению этапа 806.
[00158] Если общих частей периметра нет, способ 800 заканчивается.
[00159] Этап 806 - в ответ на определение того, что первый двухмерный объект 200 и второй двухмерный объект 300, 400 обладают первой общей частью 208 периметра, определение того, соединена ли первая общая часть 208 периметра в отношении обоих - первого двухмерного объекта 200 и второго двухмерного объекта 300, 400 - в одном и том же направлении и восстановление логической иерархии по меньшей мере двух двухмерных объектов.
[00160] Далее, на этапе 806, в ответ на определение того, что первый и второй двухмерные объекты обладают первой общей частью периметра, определение того, соединена ли первая общая часть периметра в отношении обоих объектов - первого и второго двухмерных объектов - в одном и том же направлении.
[00161] На этом этапе сервер 102 может извлечь информацию о второй части 208 первого периметра из базы 106 данных. Сервер определит, что вторая часть 208 первого периметра была сохранена в базе 106 данных в виде двух крайних точек 2062 и 2082 второй части 208 первого периметра в первом направлении 250 вращения, и две крайние точки 2062 и 2082 соединены в последовательности «2062-2082», таким образом, 2062 является начальной крайней точкой для первого двухмерного объекта 200, а вторая крайняя точка 208 является конечной крайней точкой первого двухмерного объекта 200. [00162] Далее, сервер 102 может извлечь информацию о том, как второй периметр был сохранен в базе 106 данных.
[00163] В отношении ко второму двухмерному объекту 300/400 сервер 102 получает информацию о том, что второй двухмерный объект 300/400 был сохранен в виде ссылки на вторую часть 208 первого периметра и в виде частей 302/402, 304/404, 306/406 второго периметра.
[00164] Ссылка на вторую часть 208 в отношении второго двухмерного объекта 400, включает в себя инструкцию интерпретировать начальную крайнюю точку 2062 второй части 208 первого периметра как конечную точку 2062 второй части 208 второго периметра, и интерпретировать конечную крайнюю точку 2082 второй части 208 первого периметра как начальную крайнюю точку 2082 второй части 208 второго периметра. Другими словами, если вторая часть 208 периметра в отношении первого двухмерного объекта 200 интерпретируется как отрезок 208 «2062-2082», то вторая часть 208 периметра в отношении второго двухмерного объекта 400 интерпретируется как отрезок 208 «2082-2062». В ответ на последовательность двух крайних точек первой общей части 208 периметра, в отношении обоих первого двухмерного объекта 200 и второго двухмерного объекта 400, которые соединены в противоположных направлениях, определение того, что первый двухмерный объект 200 и второй двухмерный объект 400 являются соседними.
[00165] Ссылка на вторую часть 208 периметра в отношении второго двухмерного объекта 300, тем не менее, не включает в себя никаких инструкций о том, как интерпретировать начальную крайнюю точку 2062 второй части 208 первого периметра, и о том, как интерпретировать конечную крайнюю точку 2082 второй части 208 первого периметра. На основе отсутствия инструкции об обратном, сервер 102 определяет, что последовательность двух крайних точек первой общей части 208 периметра в отношении обоих - первого двухмерного объекта 200 и второго двухмерного объекта 300 - соединена в одном и том же направлении «2082-2062». В ответ на последовательность двух крайних точек 2082 и 2062 первой общей части 208 периметра, в отношении обоих первого двухмерного объекта 200 и второго двухмерного объекта 300, которые соединены в одном и том же направлении «2082-2062», сервер 102 определяет размеры первого двухмерного объекта 200 и второго двухмерного объекта 300. Сервер 102 может определить размеры первого двухмерного объекта 200 и второго двухмерного объекта 300 математически. Таким образом, сервер 102 может определить, что первый двухмерный объект 200 больше, чем второй двухмерный объект 300. На основе этой информации сервер 102 определяет, что больший двухмерный объект, в данном случае - первый двухмерный объект 200, включает в себя меньший двухмерный объект, в данном случае - второй двухмерный объект 300.
[00166] Далее, сервер 102 может определять ранг первого двухмерного объекта и второго двухмерного объекта, причем ранг соответствующего двухмерного объекта обратно пропорционален количеству двухмерных объектов, которые включены в один соответствующий: первый двухмерный объект или второй двухмерный объект. Как было описано ранее со ссылкой на Фиг. 3, второй двухмерный объект 300 включен в 1 (один) двухмерный объект (первый двухмерный объект 200). Первый двухмерный объект 200 не включен ни в один из объектов. Следовательно, второй двухмерный объект 300 обладает более низким рангом, чем первый двухмерный объект 200. Как был описано выше со ссылкой на Фиг. 4, ни второй двухмерный объект 400, ни первый двухмерный объект 200 не включены никуда (ноль двухмерных объектов включает в себя второй двухмерный объект 400 и первый двухмерный объект 200). Следовательно, второй двухмерный объект 400 и первый двухмерный объект 200 обладают одним и тем же рангом.
[00167] Далее способ 800 заканчивается.
[00168] На Фиг. 10 представлен вариант 1000 исполняемого на компьютере способа 800, где второй двухмерный объект 300 включен в первый двухмерный объект 200, как это представлено на Фиг. 3, и где способ 800 дополнительно включает в себя извлечение третьего двухмерного объекта 900, третий двухмерный объект 900 обладает второй общей частью 308 периметра со вторым двухмерным объектом 300, причем третий двухмерный объект 900 не обладает общей частью периметра с первым двухмерным объектом 200, как представлено на Фиг. 9.
[00169] Этап 1002 - извлечение третьего двухмерного объекта 900.
[00170] Вариант способа 800 начинается на этапе 1002, где сервер 102 дополнительно извлекает третий двухмерный объект 900 из базы 106 данных.
[00171] В этом варианте осуществления, сервер 102 получает третий двухмерный объект 900 с помощью по существу той же процедуры, что была описана на этапе 802.
[00172] Далее, вариант 1000 способа 800 переходит к этапу 1004.
[00173] Этап 1004 - определение того, соединена ли вторая общая часть 306 периметра в отношении обоих - третьего двухмерного объекта 900 и второго двухмерного объекта 300 - в одном и том же направлении.
[00174] На этапе 1004 сервер 102 осуществляет определение того, соединена ли вторая общая часть 306 периметра в отношении обоих - третьего двухмерного объекта 900 и второго двухмерного объекта 300 - в одном и том же направлении. Этот этап по существу аналогичен этапу 806 способа 800. Сервер 102 определяет по отношению ко второму двухмерному объекту 300 и третьему двухмерному объекту 900, что вторая общая часть 306 периметра, в отношении третьего двухмерного объекта 900 и второго двухмерного объекта 300, соединена в противоположных направлениях («3042-3020» для второго двухмерного объекта 300 и «3020-3042» для третьего двухмерного объекта 900).
[00175] Далее, вариант 1000 способа 800 далее переходит к этапу 1006.
[00176] Этап 1006 - в ответ на последовательность двух крайних точек 3020, 3042 второй общей части 306 периметра, в отношении обоих третьего двухмерного объекта 900 и второго двухмерного объекта 300, которые соединены в противоположных направлениях, определение того, что третий двухмерный объект 900 и второй двухмерный объект 300 являются соседними, и определение того, что третий двухмерный объект 900 включен в первый двухмерный объект 200.
[00177] На этапе 1006 сервер 102 может извлечь информацию о том, как третий периметр был сохранен в базе 106 данных.
[00178] По отношению к третьему двухмерному объекту 900 сервер 102 получает информацию о том, что третий двухмерный объект 900 был сохранен в виде ссылки на десятую часть 306 второго периметра и в виде частей 902, 904 третьего периметра.
[00179] Ссылка на десятую часть 306, в отношении третьего двухмерного объекта 900, включает в себя инструкцию интерпретировать начальную крайнюю точку 3042 десятой части 306 второго периметра как конечную точку 3042 десятой части 306 третьего периметра, и интерпретировать конечную крайнюю точку 3020 десятой части 306 второго периметра как начальную крайнюю точку 3020 десятой части 306 третьего периметра. В ответ на последовательность двух крайних точек второй общей части 306 периметра, в отношении обоих третьего двухмерного объекта 900 и второго двухмерного объекта 300, которые соединены в различных направлениях, сервер 102 осуществляет определение, что третий двухмерный объект 900 и второй двухмерный объект 300 являются соседними.
[00180] На основе установленных фактов о том, что (1) второй двухмерный объект 300 включен в первый двухмерный объект 200, и (2) второй двухмерный объект 300 и третий двухмерный объект 900 являются соседними объектами, сервер 102 определяет, что третий двухмерный объект 900 также включен в первый двухмерный объект 200.
[00181] Далее, вариант 1000 способа 800 далее переходит к этапу 1008.
[00182] Этап 1008 - определение ранга каждого двухмерного объекта.
[00183] На этапе 1010, сервер 102 может определять ранг каждого из первого двухмерного объекта 200, второго двухмерного объекта 300 и третьего двухмерного объекта 900, причем ранг соответствующего двухмерного объекта обратно пропорционален количеству двухмерных объектов, которые включены в соответствующий один из: первого или второго двухмерных объектов. Как было описано ранее со ссылкой на Фиг. 9, каждый из второго двухмерного объекта 300 и третьего двухмерного объекта 300 включен в 1 (один) двухмерный объект (первый двухмерный объект 200). Первый двухмерный объект 200 не включен ни в один из объектов. Следовательно, второй двухмерный объект 300 и третий двухмерный объект 900 обладают одним и тем же рангом, который ниже, чем ранг первого двухмерного объекта 200.
[00184] Далее, вариант 1000 способа 800 оканчивается.
[00185] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
[00186] Модификации и улучшения вышеописанных вариантов осуществления будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего решения ограничен только объемом прилагаемой формулы изобретения.
[00187] С определенной точки зрения варианты осуществления настоящего решения могут быть обобщены следующим образом, описанным в следующих пунктах:
1. Способ (700) сохранения по меньшей мере двух двухмерных объектов на информационном носителе (104), способ (700) выполняет на вычислительном устройстве, которое обладает доступом к информационному носителю (104), способ (700) включает в себя:
получение (702) первого двухмерного объекта (200), который будет сохранен на информационном носителе (104), первый периметр первого двухмерного объекта (200) включает в себя первую часть (206) периметра и вторую часть (208) периметра;
сохранение (704) на информационном носителе (104) первого периметра в виде:
(i) сохранения первой части (206) периметра как первого отрезка (206), соединяющего две крайние точки (2042, 2062) первой части (206) периметра, в котором первая крайняя точка (2042) первой части (206) периметра сохраняется как начальная крайняя точка (2062) первой части (206) периметра, и в котором вторая крайняя точка (2062) первой части (206) периметра сохраняется как конечная крайняя точка (2062) первой части (206) периметра,
(ii) сохранения второй части (208) первого периметра как второго отрезка (208), соединяющего две крайние точки (2062, 2082) второй части (208) периметра, в котором первая крайняя точка (2062) второй части (208) периметра сохраняется как начальная крайняя точка (2062) второй части (208) периметра, и в котором вторая крайняя точка (2082) второй части (208) периметра сохраняется как конечная крайняя точка (2082) второй части (208) периметра, причем конечная крайняя точка (2062) первой части (206) периметра является начальной крайней точкой (2062) второй части (208); и
получения (706) второго двухмерного объекта (300, 400), который будет храниться на информационном носителе (104), второй периметр второго двухмерного объекта (300, 400) включает в себя вторую часть (208) периметра и третью часть (302, 402) периметра, причем вторая часть (208) периметра является первой общей частью (208) периметра для первого двухмерного объекта (200) и второго двухмерного объекта (300, 400);
проверки (708) логической иерархии второго двухмерного объекта (300, 400) и первого двухмерного объекта (200), и
(i) в ответ на то, что второй двухмерный объект (300) включен в первый двухмерный объект (200), сохранения (710) на информационном носителе (104) второго периметра в виде:
(i) сохранения третьей части (302) периметра как третьего отрезка (302), соединяющего две крайние точки (3020, 2062) третьей части (302) периметра, в котором первая крайняя точка (3020) третьей части (302) периметра сохраняется как начальная крайняя точка (3020) третьей части (302) периметра, и в котором вторая крайняя точка (2062) третьей части (302) периметра сохраняется как конечная крайняя точка (2062) третьей части (302) периметра, и
сохранения ссылки на вторую часть (208) первого периметра;
(ii) в ответ на то, что второй двухмерный объект (400) и первый двухмерный объект (200) являются соседними двухмерными объектами, сохранение (712) на информационном носителе (104) второго периметра в виде:
(i) сохранения третьей части (402) периметра как третьего отрезка (402), соединяющего две крайние точки (2062, 4022) третьей части (402) периметра, в котором первая крайняя точка (2062) третьей части (402) периметра сохраняется как начальная крайняя точка (2062) третьей части (402) периметра, и в котором вторая крайняя точка (4022) третьей части (402) периметра сохраняется как конечная крайняя точка (4022) третьей части (402) периметра, и
сохранения ссылки на вторую часть (208) первого периметра, ссылка включает в себя инструкцию интерпретировать начальную крайнюю точку (2062) второй части (208) первого периметра как конечную точку (2062) второй части (208) второго периметра, и интерпретировать конечную крайнюю точку (2082) второй части (208) первого периметра как начальную крайнюю точку (2082) второй части (208) второго периметра.
2. Способ (700) по п. 1, в котором:
крайние точки соответствующего периметра соединены соответствующими отрезками в первом выбранном направлении вращения, начиная с крайней точки и заканчивая этой же крайней точкой, и в котором:
первое направление вращения выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
3. Способ (700) по любому из пп. 1-2, в котором по меньшей мере один из (а) первого двухмерного объекта (200) и (b) второго двухмерного объекта (300, 400) является полигональным объектом.
4. Способ (700) по любому из пп. 1-3, в котором каждый из первого двухмерного объекта (200) и второго двухмерного объекта (300, 400) является частью множества двухмерных объектов, и в котором множество из двух двухмерных объектов является множеством картографических объектов.
5. Способ (700) по любому из пп. 1-4, в котором сохранение на информационном носителе (104) по меньшей мере одной выбранной: первой части (206) периметра, второй части (208) периметра и третьей части (302, 402) периметра, является сохранением по меньшей мере в одной базе (106) данных.
6. Способ (700) по любому из пп. 1-5, в котором получение по меньшей мере одного из: первого двухмерного объекта (200) или второго двухмерного объекта (300, 400) является преобразованием соответствующего по меньшей одного выбранного из: первого двухмерного объекта (200) или второго двухмерного объекта (300, 400) из растрового формата представления в векторный формат представления.
7. Сервер (102) включает в себя:
информационный носитель (104);
процессор (108), функционально соединенный с информационным носителем (104), и выполненный с возможностью сохранять объекты на информационном носителе (104), процессор (108) далее выполнен с возможностью осуществлять:
получение (702) первого двухмерного объекта (200), который будет сохранен на информационном носителе (104), первый периметр первого двухмерного объекта (200) включает в себя первую часть (206) периметра и вторую часть (208) периметра;
сохранение (704) на информационном носителе (104) первого периметра в виде:
(i) сохранения первой части (206) периметра как первого отрезка (206), соединяющего две крайние точки (2042, 2062) первой части (206) периметра, в котором первая крайняя точка (2042) первой части (206) периметра сохраняется как начальная крайняя точка (2062) первой части (206) периметра, и в котором вторая крайняя точка (2062) первой части (206) периметра сохраняется как конечная крайняя точка (2062) первой части (206) периметра,
(ii) сохранения второй части (208) первого периметра как второго отрезка (208), соединяющего две крайние точки (2062, 2082) второй части (208) периметра, в котором первая крайняя точка (2062) второй части (208) периметра сохраняется как начальная крайняя точка (2062) второй части (208) периметра, и в котором вторая крайняя точка (2082) второй части (208) периметра сохраняется как конечная крайняя точка (2082) второй части (208) периметра, причем конечная крайняя точка (2062) первой части (206) периметра является начальной крайней точкой (2062) второй части (208); и
получения второго двухмерного объекта (300, 400), который будет храниться на информационном носителе (104), второй периметр второго двухмерного объекта (300, 400) включает в себя вторую часть (208) периметра и третью часть (302, 402) периметра, причем вторая часть (208) периметра является первой общей частью (208) периметра для первого двухмерного объекта (200) и второго двухмерного объекта (300, 400);
проверки логической иерархии второго двухмерного объекта (300, 400) и первого двухмерного объекта (200), и
(i) в ответ на то, что второй двухмерный объект (300) включен в первый двухмерный объект (200), сохранения на информационном носителе (104) второго периметра в виде:
сохранения третьей части (302) периметра как третьего отрезка (302), соединяющего две крайние точки третьей части (302) периметра, в котором первая крайняя точка третьей части (302) периметра сохраняется как начальная крайняя точка третьей части (302) периметра, и в котором вторая крайняя точка третьей части (302) периметра сохраняется как конечная крайняя точка третьей части (302) периметра, и
сохранения ссылки на вторую часть (208) первого периметра;
(ii) в ответ на то, что второй двухмерный объект (400) и первый двухмерный объект (200) являются соседними двухмерными объектами, сохранения на информационном носителе (104) второго периметра в виде:
сохранения третьей части (402) периметра как третьего отрезка (402), соединяющего две крайние точки (2062, 4022) третьей части (402) периметра, в котором первая крайняя точка (2062) третьей части (402) периметра сохраняется как начальная крайняя точка (2062) третьей части (402) периметра, и в котором вторая крайняя точка (4022) третьей части (402) периметра сохраняется как конечная крайняя точка (4022) третьей части (402) периметра, и
сохранения ссылки на вторую часть (208) первого периметра, ссылка включает в себя инструкцию интерпретировать начальную крайнюю точку (2062) второй части (208) первого периметра как конечную точку (2062) второй части (208) второго периметра, и интерпретировать конечную крайнюю точку (2082) второй части (208) первого периметра как начальную крайнюю точку (2082) второй части (208) второго периметра.
8. Сервер (102) по п. 7, в котором:
крайние точки соответствующего периметра соединены соответствующими отрезками в первом выбранном направлении вращения, начиная с крайней точки и заканчивая этой же крайней точкой, и в котором:
первое направление вращения выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
9. Сервер (102) по любому из пп. 7-8, в котором по меньшей мере один из (а) первого двухмерного объекта (200) и (b) второго двухмерного объекта (300, 400) является полигональным объектом.
10. Сервер (102) по любому из пп. 7-9, в котором каждый из первого двухмерного объекта (200) и второго двухмерного объекта (300, 400) является частью множества двухмерных объектов, и в котором множество из двух двухмерных объектов является множеством картографических объектов.
11. Сервер (102) по любому из пп. 7-10, в котором сохранение на информационном носителе (104) по меньшей мере одной выбранной: первой части (206) периметра, второй части (208) периметра и третьей части (302, 402) периметра, является сохранением по меньшей мере в одной базе (106) данных.
12. Сервер (102) по любому из пп. 7-11, в котором получение по меньшей мере одного из: первого двухмерного объекта (200) или второго двухмерного объекта (300, 400) является преобразованием соответствующего по меньшей одного выбранного из: первого двухмерного объекта (200) или второго двухмерного объекта (300, 400) из растрового формата представления в векторный формат представления.
[00188] С другой определенной точки зрения варианты осуществления настоящего решения могут быть обобщены следующим образом, описанным в следующих пунктах: 1. Способ (800, 1000) восстановления логической иерархии по меньшей мере двух двухмерных объектов (200, 300, 400), первый двухмерный объект (200) обладает первым периметром, второй двухмерный объект (300, 400) обладает вторым периметром, первый периметр и второй периметр включают в себя части периметра, каждая часть периметра является отрезком, соединяющим две крайние точки соответствующей части периметра, крайние точки в первом периметре соединены соответствующими отрезками в первом выбранном направлении вращения, крайние точки второго периметра соединены соответствующими отрезками в первом выбранном направлении вращения, способ (800, 1000) выполняется на вычислительном устройстве, способ (800, 1000) включает в себя:
извлечение первого двухмерного объекта (200) и второго двухмерного объекта (300, 400);
определение того, обладают ли первый двухмерный объект (200) и второй двухмерный объект (300, 400) первой общей частью периметра;
в ответ на определение того, что первый двухмерный объект (200) и второй двухмерный объект (300, 400) обладают первой общей частью (208) периметра, определение того, соединена ли первая общая часть (208) периметра в отношении обоих - первого двухмерного объекта (200) и второго двухмерного объекта (300/400) - в одном и том же направлении;
в ответ на последовательность двух крайних точек (2062, 2082) первой общей части (208) периметра, в отношении обоих первого двухмерного объекта (200) и второго двухмерного объекта (300), которые соединены в одном и том же направлении (2062-2082 и 2062-2082),
(i) определение размеров первого двухмерного объекта (200) и второго двухмерного объекта (300), и
(ii) определение того, что меньший двухмерный объект, выбранный из: первого двухмерного объекта (200) и второго двухмерного объекта (300), включен в больший двухмерный объект, выбранный из другого из: первого двухмерного объекта (200) и второго двухмерного объекта (300); и
в ответ на последовательность двух крайних точек (2062, 2082) первой общей части (208) периметра, в отношении обоих первого двухмерного объекта (200) и второго двухмерного объекта (400), которые соединены в противоположных направлениях (2062-2082 и 2082-2062), определение того, что первый двухмерный объект (200) и второй двухмерный объект (400) являются соседними.
2. Способ (800, 1000) по п. 1, в котором второй двухмерный объект (300) включен в первый двухмерный объект (200), способ (800, 1000) дополнительно включает в себя получение третьего двухмерного объекта (900), причем третий двухмерный объект (900) обладает второй общей частью (306) периметра со вторым двухмерным объектом (300), третий двухмерный объект (900) не обладает общей частью периметра с первым двухмерным объектом (200), способ (800, 1000) дополнительно включает в себя:
определение того, соединена ли вторая общая часть (306) периметра в отношении обоих - третьего двухмерного объекта (900) и второго двухмерного объекта (300) - в одном и том же направлении, и
в ответ на последовательность двух крайних точек (3020, 3042) второй общей части (306) периметра, в отношении обоих третьего двухмерного объекта (900) и второго двухмерного объекта (300), которые соединены в противоположных направлениях (3020-3042 и 3042-3020):
определение того, что третий двухмерный объект (900) и второй двухмерный объект (300) являются соседними, и
определение того, что второй двухмерный объект (900) включен в первый двухмерный объект (200).
3. Способ (800, 1000) по любому из пп. 1-2, в котором первый двухмерный объект (200) и второй двухмерный объект (300, 400) являются частью множества двухмерных объектов, способ (800, 1000) дополнительно включает в себя определение логической иерархии по меньшей мере двух двухмерных объектов, в которых ранг соответствующего двухмерного объекта обратно пропорционален числу других двухмерных объектов, которые включает в себя соответствующий двухмерный объект.
4. Способ (800, 1000) по любому из пп. 1-3, в котором направление вращения выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
5. Способ (800, 1000) по любому из пп. 1-4, в котором по меньшей мере один из (а) первого двухмерного объекта (200) и (b) второго двухмерного объекта (300, 400) является полигональным объектом.
6. Способ (1000) по любому из пп. 1-5, в котором первый двухмерный объект (200) и второй двухмерный объекта (300, 400) являются частью множества двухмерных объектов, и в котором множество из двух двухмерных объектов является множеством картографических объектов.
7. Способ (800, 1000) по любому из пп. 1-6, до извлечения первого периметра и второго периметра и определения того, обладают ли первый двухмерный объект (200) и второй двухмерный объект (300, 400) первой общей частью (208) периметра, способ (800, 1000) дополнительно включает в себя:
получение (702) первого двухмерного объекта (200), который будет сохранен на информационном носителе (104), первый периметр первого двухмерного объекта (200) включает в себя первую часть (206) периметра и вторую часть (208) периметра;
сохранение (704) на информационном носителе (104) первого периметра в виде:
(i) сохранения первой части (206) периметра как первого отрезка (206), соединяющего две крайние точки (2042, 2062) первой части (206) периметра, в котором первая крайняя точка (2042) первой части (206) периметра сохраняется как начальная крайняя точка (2062) первой части (206) периметра, и в котором вторая крайняя точка (2062) первой части (206) периметра сохраняется как конечная крайняя точка (2062) первой части (206) периметра,
(ii) сохранения второй части (208) первого периметра как второго отрезка (208), соединяющего две крайние точки (2062, 2082) второй части (208) периметра, в котором первая крайняя точка (2062) второй части (208) периметра сохраняется как начальная крайняя точка (2062) второй части (208) периметра, и в котором вторая крайняя точка (2082) второй части (208) периметра сохраняется как конечная крайняя точка (2082) второй части (208) периметра, причем конечная крайняя точка (2062) первой части (206) периметра является начальной крайней точкой (2062) второй части (208); и
получения (706) второго двухмерного объекта (300, 400), который будет храниться на информационном носителе (104), второй периметр второго двухмерного объекта (300, 400) включает в себя вторую часть (208) периметра и третью часть (302, 402) периметра, причем вторая часть (208) периметра является первой общей частью (208) периметра для первого двухмерного объекта (200) и второго двухмерного объекта (300, 400);
проверки (708) логической иерархии второго двухмерного объекта (300, 400) и первого двухмерного объекта (200), и
(i) в ответ на то, что второй двухмерный объект (300) включен в первый двухмерный объект (200), сохранения (710) на информационном носителе (104) второго периметра в виде:
(i) сохранения третьей части (302) периметра как третьего отрезка (302), соединяющего две крайние точки (3020, 2062) третьей части (302) периметра, в котором первая крайняя точка (3020) третьей части (302) периметра сохраняется как начальная крайняя точка (3020) третьей части (302) периметра, и в котором вторая крайняя точка (2062) третьей части (302) периметра сохраняется как конечная крайняя точка (2062) третьей части (302) периметра, и
сохранения ссылки на вторую часть (208) первого периметра;
(ii) в ответ на то, что второй двухмерный объект (400) и первый двухмерный объект (200) являются соседними двухмерными объектами, сохранение (712) на информационном носителе (104) второго периметра в виде:
(i) сохранения третьей части (402) периметра как третьего отрезка (402), соединяющего две крайние точки (2062, 4022) третьей части (402) периметра, в котором первая крайняя точка (2062) третьей части (402) периметра сохраняется как начальная крайняя точка (2062) третьей части (402) периметра, и в котором вторая крайняя точка (4022) третьей части (402) периметра сохраняется как конечная крайняя точка (4022) третьей части (402) периметра, и
сохранения ссылки на вторую часть (208) первого периметра, ссылка включает в себя инструкцию интерпретировать начальную крайнюю точку (2062) второй части (208) первого периметра как конечную точку (2062) второй части (208) второго периметра, и интерпретировать конечную крайнюю точку (2082) второй части (208) первого периметра как начальную крайнюю точку (2082) второй части (208) второго периметра.
8. Сервер (102) включает в себя:
информационный носитель (104);
процессор (108), функционально соединенный с информационным носителем (104), и выполненный с возможностью сохранять объекты на информационном носителе (104), процессор (108) далее выполнен с возможностью осуществлять:
извлечение первого двухмерного объекта (200) и второго
двухмерного объекта (300, 400);
определение того, обладают ли первый двухмерный объект (200) и второй двухмерный объект (300, 400) первой общей частью (208) периметра;
в ответ на определение того, что первый двухмерный объект (200) и второй двухмерный объект (300, 400) обладают первой общей частью (208) периметра, определение того, соединена ли первая общая часть (208) периметра в отношении обоих - первого двухмерного объекта (200) и второго двухмерного объекта (300, 400) - в одном и том же направлении;
в ответ на последовательность двух крайних точек первой общей части (208) периметра, в отношении обоих первого двухмерного объекта (200) и второго двухмерного объекта (300), которые соединены в одном и том же направлении (2062-2082 и 2062-2082),
(i) определение размеров первого двухмерного объекта (200) и второго двухмерного объекта (300), и
(ii) определение того, что меньший двухмерный объект, выбранный из: первого двухмерного объекта (200) и второго двухмерного объекта (300), включен в больший двухмерный объект, выбранный из другого из: первого двухмерного объекта (200) и второго двухмерного объекта (300); и
в ответ на последовательность двух крайних точек (2062, 2082) первой общей части (208) периметра, в отношении обоих первого двухмерного объекта (200) и второго двухмерного объекта (400), которые соединены в противоположных направлениях (2062-2082 и 2082-2062), определение того, что первый двухмерный объект (200) и второй двухмерный объект (400) являются соседними.
9. Сервер (800, 102) по п. 8, в котором второй двухмерный объект (300) включен в первый двухмерный объект (200), процессор (108) дополнительно выполнен с возможностью осуществлять получение третьего двухмерного объекта (900), причем третий двухмерный объект (900) обладает второй общей частью (306) периметра со вторым двухмерным объектом (300), третий двухмерный объект (900) не обладает общей частью периметра с первым двухмерным объектом (200), процессор (108) дополнительно выполнен с возможностью осуществлять:
определение того, соединена ли вторая общая часть (306) периметра в отношении обоих - третьего двухмерного объекта (900) и второго двухмерного объекта (300) - в одном и том же направлении, и
в ответ на последовательность двух крайних точек (3020, 3042) второй общей части (306) периметра, в отношении обоих третьего двухмерного объекта (900) и второго двухмерного объекта (300), которые соединены в противоположных направлениях:
определение того, что третий двухмерный объект (900) и второй двухмерный объект (300) являются соседними, и
определение того, что второй двухмерный объект (900) включен в первый двухмерный объект (200).
10. Сервер (102) по любому из пп. 8-9, процессор (108) дополнительно выполнен с возможностью осуществлять определение логической иерархии по меньшей мере двух двухмерных объектов, которые являются частью множества двухмерных объектов, в котором ранг соответствующего двухмерного объекта обратно пропорционален числу других двухмерных объектов, которые включает в себя этот соответствующий двухмерный объект.
11. Сервер (102) по любому из пп. 8-10, в котором направление вращения выбирается из: (а) вращения по часовой стрелке и (b) вращения против часовой стрелки.
12. Сервер (102) по любому из пп. 8-11, в котором по меньшей мере один из (а) первого двухмерного объекта (200) и (b) второго двухмерного объекта (300, 400) является полигональным объектом.
13. Сервер (102) по любому из пп. 8-12, в котором первый двухмерный объект (200) и второй двухмерный объект (300, 400) являются частью множества двухмерных объектов, и в котором множество из двух двухмерных объектов является множеством картографических объектов.
14. Сервер (102) по любому из пп. 8-13, процессор (108) дополнительно выполнен с возможностью осуществлять:
получение первого двухмерного объекта (200), который будет сохранен на информационном носителе (104), первый периметр первого двухмерного объекта (200) включает в себя первую часть (206) периметра и вторую часть (208) периметра;
сохранение на информационном носителе (104) первого периметра в виде:
(i) сохранения первой части (206) периметра как первого отрезка (206), соединяющего две крайние точки (2042, 2062) первой части (206) периметра, в котором первая крайняя точка (2042) первой части (206) периметра сохраняется как начальная крайняя точка (2062) первой части (206) периметра, и в котором вторая крайняя точка (2062) первой части (206) периметра сохраняется как конечная крайняя точка (2062) первой части (206) периметра,
(ii) сохранения второй части (208) первого периметра как второго отрезка (208), соединяющего две крайние точки (2062, 2082) второй части (208) периметра, в котором первая крайняя точка (2062) второй части (208) периметра сохраняется как начальная крайняя точка (2062) второй части (208) периметра, и в котором вторая крайняя точка (2082) второй части (208) периметра сохраняется как конечная крайняя точка (2082) второй части (208) периметра, причем конечная крайняя точка (2062) первой части (206) периметра является начальной крайней точкой (2062) второй части (208); и
получения второго двухмерного объекта (300, 400), который будет храниться на информационном носителе (104), второй периметр второго двухмерного объекта (300, 400) включает в себя вторую часть (208) периметра и третью часть (302, 402) периметра, причем вторая часть (208) периметра является первой общей частью (208) периметра для первого двухмерного объекта (200) и второго двухмерного объекта (300, 400);
проверки логической иерархии второго двухмерного объекта (300, 400) и первого двухмерного объекта (200), и
(i) в ответ на то, что второй двухмерный объект (300) включен в первый двухмерный объект (200), сохранения на информационном носителе (104) второго периметра в виде:
(i) сохранения третьей части (302) периметра как третьего отрезка (302), соединяющего две крайние точки (3020, 2062) третьей части (302) периметра, в котором первая крайняя точка (3020) третьей части (302) периметра сохраняется как начальная крайняя точка (3020) третьей части (302) периметра, и в котором вторая крайняя точка (2062) третьей части (302) периметра сохраняется как конечная крайняя точка (2062) третьей части (302) периметра, и сохранения ссылки на вторую часть (208) первого периметра;
(ii) в ответ на то, что второй двухмерный объект (400) и первый двухмерный объект (200) являются соседними двухмерными объектами, сохранения на информационном носителе (104) второго периметра в виде:
(i) сохранения третьей части (402) периметра как третьего отрезка (402), соединяющего две крайние точки (2062, 4022) третьей части (402) периметра, в котором первая крайняя точка (2062) третьей части (402) периметра сохраняется как начальная крайняя точка (2062) третьей части (402) периметра, и в котором вторая крайняя точка (4022) третьей части (402) периметра сохраняется как конечная крайняя точка (4022) третьей части (402) периметра, и
сохранения ссылки на вторую часть (208) первого периметра, ссылка включает в себя инструкцию интерпретировать начальную крайнюю точку (2062) второй части (208) первого периметра как конечную точку (2062) второй части (208) второго периметра, и интерпретировать конечную крайнюю точку (2082) второй части (208) первого периметра как начальную крайнюю точку (2082) второй части (208) второго периметра.
Изобретение относится к области хранения двухмерных объектов. Технический результат – обеспечение сокращения требуемых ресурсов памяти посредством сохранения ссылки на общую часть периметра. Способ сохранения на носителе двухмерных объектов включает: получение первого двухмерного объекта; сохранение на носителе первого периметра посредством сохранения первой части первого периметра и второй части первого периметра; получение второго двухмерного объекта, причем вторая часть периметра является общей частью периметра для первого и второго двухмерных объектов; проверку логической иерархии второго и первого двухмерных объектов, и при включении второго двухмерного объекта в первый двухмерный объект, сохранение на носителе второго периметра посредством сохранения третьей части периметра и ссылки на вторую часть первого периметра; в ответ на то, что второй и первый двухмерные объекты являются соседними двухмерными объектами, сохранение на носителе второго периметра посредством сохранения третьей части периметра и ссылки на вторую часть первого периметра, при этом ссылка включает инструкцию интерпретации крайних точек второй части первого периметра. 2 н. и 10 з.п. ф-лы, 13 ил.
1. Способ сохранения на машиночитаемом носителе по меньшей мере двух двухмерных объектов, выполняемый на вычислительном устройстве, обладающем доступом к машиночитаемому носителю, включающий:
получение первого двухмерного объекта для сохранения на машиночитаемом носителе, при этом первый периметр первого двухмерного объекта включает первую часть периметра и вторую часть периметра;
сохранение на машиночитаемом носителе первого периметра посредством:
сохранения первой части периметра как первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра,
сохранения второй части первого периметра как второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, причем конечная крайняя точка первой части периметра является начальной крайней точкой второй части; и
получение второго двухмерного объекта для сохранения на машиночитаемом носителе, второй периметр второго двухмерного объекта включает вторую часть периметра и третью часть периметра, причем вторая часть периметра является первой общей частью периметра для первого и второго двухмерных объектов;
проверку логической иерархии второго и первого двухмерных объектов, и
(i) при включении второго двухмерного объекта в первый двухмерный объект, сохранение на машиночитаемом носителе второго периметра посредством:
сохранения третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и
сохранения ссылки на вторую часть первого периметра;
(ii) в ответ на то, что второй и первый двухмерные объекты являются соседними двухмерными объектами, сохранение на машиночитаемом носителе второго периметра посредством:
сохранения третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и
сохранения ссылки на вторую часть первого периметра, при этом ссылка включает инструкцию интерпретации начальной крайней точки второй части первого периметра как конечной точки второй части второго периметра, и интерпретации конечной крайней точки второй части первого периметра как начальной крайней точки второй части второго периметра.
2. Способ по п. 1, в котором
крайние точки соответствующего периметра соединяют соответствующими отрезками в первом выбранном направлении вращения, начиная с крайней точки и заканчивая этой же крайней точкой,
а первое направление вращения выбирают из: вращения по часовой стрелке и вращения против часовой стрелки.
3. Способ по п. 1, в котором по меньшей мере в качестве одного из первого и второго двухмерных объектов используют полигональный объект.
4. Способ по п. 1, в котором каждый из первого двухмерного объекта и второго двухмерного объекта выбран из множества двухмерных объектов, являющегося множеством картографических объектов.
5. Способ по п. 1, в котором сохранение на машиночитаемом носителе по меньшей мере одной выбранной: первой части периметра, второй части периметра и третьей части периметра, осуществляют по меньшей мере в одной базе данных.
6. Способ по п. 1, в котором получение по меньшей мере одного из первого или второго двухмерных объектов представляет собой преобразование соответствующего по меньшей одного выбранного из первого двухмерного объекта или второго двухмерного объекта из растрового формата представления в векторный формат представления.
7. Сервер для сохранения по меньшей мере двух двухмерных объектов, включающий:
машиночитаемый носитель;
процессор, функционально соединенный с машиночитаемым носителем и выполненный с возможностью сохранения объекта на машиночитаемом носителе, и осуществления:
получения первого двухмерного объекта для сохранения на машиночитаемом носителе, причем первый периметр первого двухмерного объекта включает в себя первую часть периметра и вторую часть периметра;
сохранения на машиночитаемом носителе первого периметра посредством:
(i) сохранения первой части периметра как первого отрезка, соединяющего две крайние точки первой части периметра, в котором первая крайняя точка первой части периметра сохраняется как начальная крайняя точка первой части периметра, а вторая крайняя точка первой части периметра сохраняется как конечная крайняя точка первой части периметра,
(ii) сохранения второй части первого периметра как второго отрезка, соединяющего две крайние точки второй части периметра, в котором первая крайняя точка второй части периметра сохраняется как начальная крайняя точка второй части периметра, а вторая крайняя точка второй части периметра сохраняется как конечная крайняя точка второй части периметра, причем конечная крайняя точка первой части периметра является начальной крайней точкой второй части; и
получения второго двухмерного объекта для хранения на машиночитаемом носителе, второй периметр второго двухмерного объекта включает вторую часть периметра и третью часть периметра, причем вторая часть периметра является первой общей частью периметра для первого и второго двухмерных объектов;
проверки логической иерархии второго двухмерного объекта и первого двухмерного объекта, и
(i) при включении второго двухмерного объекта в первый двухмерный объект, сохранения на машиночитаемом носителе второго периметра посредством:
сохранения третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и
сохранения ссылки на вторую часть первого периметра;
(ii) в ответ на то, что второй двухмерный объект и первый двухмерный объект являются соседними двухмерными объектами, сохранения на машиночитаемом носителе второго периметра посредством:
сохранения третьей части периметра как третьего отрезка, соединяющего две крайние точки третьей части периметра, в котором первая крайняя точка третьей части периметра сохраняется как начальная крайняя точка третьей части периметра, а вторая крайняя точка третьей части периметра сохраняется как конечная крайняя точка третьей части периметра, и
сохранения ссылки на вторую часть первого периметра, ссылка включает инструкцию интерпретации начальной крайней точки второй части первого периметра как конечной точки второй части второго периметра, и интерпретации конечной крайней точки второй части первого периметра как начальной крайней точки второй части второго периметра.
8. Сервер по п. 7, в котором
крайние точки соответствующего периметра соединены соответствующими отрезками в первом выбранном направлении вращения, начиная с крайней точки и заканчивая этой же крайней точкой, а
первое направление вращения выбрано из: вращения по часовой стрелке и вращения против часовой стрелки.
9. Сервер по п. 7, в котором по меньшей мере один из первого двухмерного объекта и второго двухмерного объекта является полигональным объектом.
10. Сервер по п. 7, в котором каждый из первого и второго двухмерных объектов является частью множества двухмерных объектов, являющегося множеством картографических объектов.
11. Сервер по п. 7, в котором сохранение на машиночитаемом носителе по меньшей мере одной выбранной: первой части периметра, второй части периметра и третьей части периметра, представляет собой сохранение по меньшей мере в одну базу данных.
12. Сервер по п. 7, в котором получение по меньшей мере одного из: первого двухмерного объекта или второго двухмерного объекта представляет собой преобразование соответствующего по меньшей одного выбранного из: первого двухмерного объекта или второго двухмерного объекта из растрового формата в векторный формат представления.
US 8194974 B1, 05.06.2012 | |||
US 7295711 B1, 13.11.2007 | |||
US 6639593 B1, 28.10.2003 | |||
US 7328325 B1, 05.02.2008 | |||
US 6377278 B1, 23.04.2002 | |||
US 4783828 A, 08.11.1988 | |||
RU 2008147401 A, 10.06.2010. |
Авторы
Даты
2017-03-14—Публикация
2015-05-25—Подача