ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее техническое решение относится к способу и системе загрузки фрагментов изображения на клиентское устройство.
УРОВЕНЬ ТЕХНИКИ
[0002] Обычный пользователь электронного устройства может получить доступ к огромному количеству информации (например, к информации, размещенной на различных серверах и доступной через сеть Интернет или через другие средства передачи данных). Часть доступной информации содержит различные изображения. Изображения могут включать в себя фотографии, различные созданные изображения и пространственные данные (например, карты, планы и так далее), а также видео и 3D-видеоигры.
[0003] Некоторые из изображений могут быть достаточно большими (например, карты). Также часто возможно сохранить графические данные на сервере и загрузить их по запросу на клиентское устройство. Например, графические данные могут быть загружены на клиентское устройство в ответ на то, что пользователь клиентского устройства запрашивает просмотр изображения, связанного с некоторой частью всей коллекции изображений (например, при загрузке приложения, загрузке браузера и получении доступа к ресурсу, связанному с изображением и так далее).
[0004] Некоторые из файлов, содержащих графические данные могут быть настолько большими, что может быть непрактично априори загружать файл изображения целиком на клиентское устройство. Это может, например, создать излишнюю нагрузку на сеть передачи данных, с которой соединено клиентское устройство, при доступе к ресурсу, связанному с графическими данными. В случае клиентского устройства, являющегося беспроводным устройством передачи данных, удаленно соединенным с беспроводной сетью передачи данных, проблема может усугубляться еще и низкой или неадекватной скоростью или пропускной способности сети. Также подобный подход может быть непрактичным в случае небольшого объема локальной памяти (например, если изображение необходимо сохранить в кэше клиентского устройства для отрисовки, а кэш клиентского устройства обладает ограниченным объемом).
[0005] Особенно актуальна эта проблема в тех случаях, когда графические данные связаны с картой. Поскольку обычно пользователь запрашивает конкретный вид карты (так называемую «область просмотра») на конкретном уровне масштабирования - нет практической необходимости (и, чаще всего, возможности) загрузить все картографические данные обо всем мире в целом. Следовательно, обычным выходом из ситуации является загрузка графических данных, связанных с картой (или другим типом графической информации), которая разделена на так называемые «фрагменты карты» или просто «фрагменты». Каждый фрагмент карты обычно представляет собой часть картографического изображения на конкретном уровне масштабирования. Подмножество фрагментов карты загружается на клиентское устройство (на основе запрошенной области просмотра и уровня масштабирования), и это подмножество фрагментов карты далее отрисовывается и отображается на устройстве вывода, связанном с клиентским устройством.
[0006] Также обычно пользователь клиентского устройства запрашивает вид карты на различных уровнях масштабирования - так называемые «увеличение» и «уменьшение». Для того чтобы более подробно увидеть карту, пользователю может понадобиться увеличить карту - чтобы увидеть более маленький фрагмент карты с большим числом деталей (и/или в более высоком разрешении). В результате подобных действий пользователя, клиентское устройство запрашивает от сервера, а сервер передает на клиентское устройство, замещающий набор фрагментов карты (для новой области просмотра/нового уровня масштабирования) для отрисовки нового запрошенного вида карты (чтобы заместить первично отрисованный и отображенный вид карты). Для того чтобы более увидеть карту с меньшим числом деталей (но при этом отобразить большую область), пользователю может понадобиться уменьшить карту - чтобы увидеть более крупный фрагмент карты, пусть и с меньшим числом деталей (и/или в более высоком разрешении). В результате подобных действий пользователя, клиентское устройство запрашивает от сервера, а сервер передает на клиентское устройство, замещающий набор фрагментов карты (для новой области просмотра/нового уровня масштабирования) для отрисовки нового запрошенного вида карты (чтобы заместить первично отрисованный и отображенный вид карты).
[0007] Патентная заявка 2011/0055290 описывает систему подготовки географического изображения для получения, которая включает в себя: сервер приложения, работающий для получения запроса на географического региона в географической области; и сервер базы данных, работающий для сохранения множества фрагментов reo-изображений, которые охватывают географическую область на различных уровнях масштабирования, сервер базы данных соединен с сервером приложения для получения запроса от сервера приложения и возврата одного или нескольких из множества фрагментов reo-изображений для отображения географического региона, запрошенного в запросе; причем множество фрагментов геоизображений разделено для сохранения на сервере базы данных в соответствии с системой управления базой данных (СУБД) и индексировано для извлечения с помощью не пространственного индекса.
[0008] Патентная заявка 8,352,480 описывает устройство для преобразования географического геометрического содержимого географической базы данных во фрагменты карты, которое может включать в себя процессор и память, которая хранит выполняемый на компьютере код, который инициирует устройство по меньшей мере выполнять операции, включающие в себя изменение географической базы данных на основе, частично, добавления элементов данных, организованных в поля на основе анализа значений, соответствующих геометрической информации. Геометрическая информация связана с записями в географической базе данных. Компьютерный программный код может далее инициировать устройство определять набор фрагментов на заранее определенном уровне масштабирования, включая географическую информацию о соответствующих записях, и может обновлять записи для включения данных, связанных с минимальным и максимальным значениями x и y для фрагмента. Компьютерный программный код может далее инициировать устройство определять минимальное и максимальное значения x и y, которые определяют прямоугольный(е) блок(и) фрагментов карты. Предлагаются также соответствующие программные продукты продукты и способы.
[0009] Патентная заявка 2015/0279071 описывает компьютеризированный способ управления пространством для совместной работы. Описанный способ включает в себя разделение пространства для совместной работы на множество фрагментов в древовидной структуре; и связь каждого графического объекта с фрагментом в древовидной структуре; фрагмент является наименьшим фрагментом в древовидной структуре, которая по существу вмещает в себя графический объект.
РАСКРЫТИЕ
[0010] Варианты осуществления настоящего технического решения были разработаны с учетом определения изобретателями по меньшей мере одного технического недостатка, связанного с известным уровнем техники. Конкретнее, при ежегодно увеличивающемся разрешении мониторов устройств, размер файлов, которые содержат данные о фрагментах карты, также возрастает.
[0011] Разработчики настоящего технического решения предполагают, что некоторые технические проблемы, присущие настоящему уровню техники, исходят из факта зависимости скорости соединения соответствующей сети связи от вычислительной мощности клиентского устройства, и процесс передачи фрагментов нового уровня и замены фрагментов настоящего уровня с помощью фрагментов нового уровня может занять достаточно длительное время («достаточно» в том смысле, что это может быть заметно/дискомфортно для пользователя). В течение этого времени, пользователь может видеть части карты в виде «белых пятен» (или в каком-либо другом искажении).
[0012] Кроме того, обычно фрагменты изображений сохраняют в кэш-памяти клиентского устройства. Это делается для быстрой отрисовки и отображения созданного изображения. Существующие подходы далее подразумевают, что фрагменты изображения остаются связанными с предыдущим изображением до тех пор пока все фрагменты изображения с новым видом не будут загружены на клиентское устройство, и на этом этапе фрагменты изображения, связанные с предыдущими фрагментами изображения, удаляются. Как было упомянуто ранее, с возрастанием разрешения устройств вывода соответственно возрастает размер файлов, содержащих фрагменты изображения, которое будет отображаться. Следовательно, разработчики полагают, что известные подходы «загрузки-сохранения всех фрагментов изображения - удаления старых фрагментов изображения» могут быть очень ресурсозатратными или даже приводить к переполнению кэша. Следовательно, это может привести к ухудшению работы системы отрисовки (т.е. снижению скорости отрисовки), излишней трате заряда электронного устройства (из-за переполнения кэша) и так далее.
[0013] Одним объектом настоящего технического решения является способ загрузки фрагментов изображения на клиентское устройство, которое обладает устройством вывода и соединено с сервером через сеть передачи данных. Сервер сохраняет множество фрагментов изображения, организованных в иерархическую структуру, и каждый уровень иерархической структуры сохраняет подмножество фрагментов изображений, которые связаны с конкретным уровнем разрешения. Способ выполняется на клиентском устройстве. Способ включает в себя: получение запроса на вид изображения, вид изображения связан с первой областью и первым уровнем разрешения; передачу серверу первого запроса на первый набор фрагментов изображения, первый набор фрагментов изображения позволяет клиентскому устройству отобразить запрошенный вид изображения на устройстве вывода, первый набор фрагментов изображения является частью множества фрагментов изображений первого уровня разрешения; первый запрос далее выполнен с возможностью инициировать сервер подготовить второй набор фрагментов изображения, второй набор фрагментов изображения позволяет клиентскому устройству отобразить другой вид изображения, который: связан со второй областью просмотра, которая, по меньшей мере частично, перекрывается с первой областью просмотра; и обладает вторым уровнем разрешения, ниже чем первый уровень разрешения; каждый данный фрагмент изображения из второго набора фрагментов изображений обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения первого уровня разрешения, как описано в иерархической структуре; получение от сервера: первого набора фрагментов изображения, второго набора фрагментов изображения, второй набор фрагментов изображения исключает подмножество второго набора фрагментов изображений, каждое подмножество второго набора обладает всеми четырьмя дочерними фрагментами изображения в первом наборе фрагментов изображений; получение запроса на измену первой области просмотра на третью область просмотра; отрисовку и отображение переходного вида, переходный вид создается из второго набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества второго набора фрагментов изображения; передачу серверу третьего запроса на фрагменты карты, присущие третьей области просмотра, которые запрошены для отображения третьей области просмотра; отрисовку третьей области просмотра с помощью фрагментов карты, присущих третьей области просмотра; замену переходного вида третьей областью просмотра.
[0014] В некоторых вариантах осуществления способа, передача первого запроса выполняется до получения запроса на изменение первой области просмотра на вторую область просмотра.
[0015] В некоторых вариантах осуществления способа, переходный вид отображается в момент выполнения передачи третьего запроса и отрисовки другого вида изображения.
[0016] В некоторых вариантах осуществления способа, первый запрос далее выполнен с возможностью инициировать сервер подготавливать: третий набор фрагментов изображения, третий набор фрагментов изображения позволяет клиентскому устройству отобразить дальнейший вид изображения, дальнейший вид изображения связан с четвертой областью просмотра; и третий уровень разрешения ниже, чем первый уровень разрешения и второй уровень разрешения; третий набор фрагментов изображения является частью множества фрагментов изображения на третьем уровне разрешения; каждый данный фрагмент изображения третьего набора фрагментов изображения обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения на втором уровне разрешения, как прописано в иерархической структуре; и при этом получение от сервера далее включает в себя получение третьего набора фрагментов изображения, третий набор фрагментов изображения исключает подмножество третьего набора фрагментов изображения, каждый из подмножества третьего набора фрагментов изображений обладает всеми четырьмя дочерними фрагментами изображения во втором наборе фрагментом изображения; в ответ на запрос изменения первой области просмотра на дальнейший вид: отрисовка и отображение другого переходного вида, другой переходный вид состоит из третьего набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества третьего набора фрагментов изображения; передача серверу четвертого запроса на фрагменты карты, присущие четвертой области просмотра, запрошенной для отображения; отрисовка другого переходного вида, другой переходный вид состоит из третьего набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества третьего набора фрагментов изображения; передача серверу четвертого запроса на завершение четвертого набора фрагментов изображения; отрисовка дальнейшего вида изображения с помощью завершенного четвертого набора фрагментов изображения; замена другого переходного вида с помощью дальнейшего вида изображения.
[0017] В некоторых вариантах осуществления способ далее включает в себя, в ответ на запрос изменение первой области просмотра на дальнейший вид изображения, завершение выполнения одного из этапов: передачи серверу третьего запроса на завершение второго набора фрагментов изображения; отрисовки другого вида изображения с помощью завершенного второго набора фрагментов изображения; замены переходного вида с помощь другого вида изображения, выполнение которого еще не было завершено.
[0018] В некоторых вариантах осуществления способа, иерархическая структура представляет собой структуру данных квадродерева.
[0019] В некоторых вариантах осуществления способа, фрагменты изображения представляют собой фрагменты карты, а параметр уровня разрешения представляет собой уровень масштабирования.
[0020] В некоторых вариантах осуществления способа, фрагменты изображения представляют собой игровые текстуры, а параметр уровня разрешения представляет собой уровень детализации.
[0021] Другим объектом настоящего технического решения является электронное устройство. Электронное устройство включает в себя: процессор; устройство вывода для отображения по меньшей мере одного изображения; интерфейс передачи данных для связи с сервером через сеть передачи данных, сервер хранит множество фрагментов изображения, организованных в иерархическую структуру, каждый уровень иерархической структуры хранит подмножество из множества фрагментов изображения, связанное с конкретным уровнем разрешения. Процессор выполнен с возможностью осуществлять: получение запроса на вид изображения, вид изображения связан с первой областью и первым уровнем разрешения; передачу серверу первого запроса на первый набор фрагментов изображения, первый набор фрагментов изображения позволяет клиентскому устройству отобразить запрошенный вид изображения на устройстве вывода, первый набор фрагментов изображения является частью множества фрагментов изображений первого уровня разрешения; первый запрос далее выполнен с возможностью инициировать сервер подготовить второй набор фрагментов изображения, второй набор фрагментов изображения позволяет клиентскому устройству отобразить другой вид изображения, который: связан со второй областью просмотра, которая, по меньшей мере частично, перекрывается с первой областью просмотра; и обладает вторым уровнем разрешения, ниже чем первый уровень разрешения; каждый данный фрагмент изображения из второго набора фрагментов изображений обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения первого уровня разрешения, как описано в иерархической структуре; получение от сервера: первого набора фрагментов изображения, второго набора фрагментов изображения, второй набор фрагментов изображения исключает подмножество второго набора фрагментов изображений, каждое подмножество второго набора обладает всеми четырьмя дочерними фрагментами изображения в первом наборе фрагментов изображений; получение запроса на измену первой области просмотра на третью область просмотра; отрисовку и отображение переходного вида, переходный вид создается из второго набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества второго набора фрагментов изображения; передачу серверу третьего запроса на фрагменты карты, присущие третьей области просмотра, которые запрошены для отображения третьей области просмотра; отрисовку третьей области просмотра с помощью фрагментов карты, присущих третьей области просмотра; замену переходного вида третьей областью просмотра.
[0022] В некоторых вариантах осуществления электронного устройства, процессор выполняет передачу первого запроса до получения процессором запроса на изменение первой области просмотра на вторую область просмотра.
[0023] В некоторых вариантах осуществления электронного устройства, переходный вид отображается в момент выполнения передачи третьего запроса и отрисовки другого вида изображения.
[0024] В некоторых вариантах осуществления электронного устройства, первый запрос далее выполнен с возможностью инициировать сервер подготавливать: третий набор фрагментов изображения, третий набор фрагментов изображения позволяет клиентскому устройству отобразить дальнейший вид изображения, дальнейший вид изображения связан с четвертой областью просмотра; и третий уровень разрешения ниже, чем первый уровень разрешения и второй уровень разрешения; третий набор фрагментов изображения является частью множества фрагментов изображения на третьем уровне разрешения; каждый данный фрагмент изображения третьего набора фрагментов изображения обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения на втором уровне разрешения, как прописано в иерархической структуре; и при этом получение от сервера далее включает в себя получение третьего набора фрагментов изображения, третий набор фрагментов изображения исключает подмножество третьего набора фрагментов изображения, каждый из подмножества третьего набора фрагментов изображений обладает всеми четырьмя дочерними фрагментами изображения во втором наборе фрагментом изображения; в ответ на запрос изменения первой области просмотра на дальнейший вид, процессор далее способ осуществлять: отрисовку и отображение другого переходного вида, другой переходный вид состоит из третьего набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества третьего набора фрагментов изображения; передачу серверу четвертого запроса на фрагменты карты, присущие четвертой области просмотра, запрошенной для отображения; отрисовку другого переходного вида, другой переходный вид состоит из третьего набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества третьего набора фрагментов изображения; передачу серверу четвертого запроса на завершение четвертого набора фрагментов изображения; отрисовку дальнейшего вида изображения с помощью завершенного четвертого набора фрагментов изображения; замену другого переходного вида с помощью дальнейшего вида изображения.
[0025] В некоторых вариантах осуществления электронного устройства, процессор дополнительно выполнен с возможностью, в ответ на запрос изменить первый вид области на дальнейший вид, остановить выполнение одного из этапов: передачи сервер третьего запроса на завершение второго набора фрагментов изображения; отрисовки другого вида изображения с помощью завершенного второго набора фрагментов изображения; замены переходного вида с помощью другого вида изображения, выполнение которого еще не было завершено.
[0026] В некоторых вариантах осуществления электронного устройства, иерархическая структура представляет собой структуру данных квадродерева.
[0027] В некоторых вариантах осуществления электронного устройства, фрагменты изображения представляют собой фрагменты карты, а параметр уровня разрешения представляет собой уровень масштабирования.
[0028] В некоторых вариантах осуществления электронного устройства, фрагменты изображения представляют собой игровые текстуры, а параметр уровня разрешения представляет собой уровень детализации.
[0029] Еще одним объектом настоящего технического решения является способ загрузки данных о фрагменте изображения с сервера на клиентское устройство. Данные о фрагменте изображения организованы сервером в иерархическую структуру, причем каждый уровень иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения. Клиентское устройство включает в себя память и устройство вывода, клиентское устройство соединено с сервером через сеть передачи данных, устройство вывода отображает первый вид изображения, первый вид изображения связан с первой областью просмотра и первым уровнем разрешения, первый вид изображения создается с помощью части множества фрагментов изображения первого уровня, связанных с первым уровнем разрешения, эта часть определяется первой областью просмотра; часть множества фрагментов изображения первого уровня были (i) загружены клиентским устройством с сервера и (ii) сохранены клиентским устройством в памяти, что позволяет осуществлять отрисовку. Способ выполняется сервером. Способ включает в себя: получение от клиентского устройства запроса на множество фрагментов изображения второго уровня для замены множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше, чем первый уровень разрешения; каждый фрагмент изображения из множества фрагментов изображения первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов изображения второго уровня, как определено иерархической структурой; определение опорной точки первого вида изображения; на основе опорной точки, определение первого опорного фрагмента изображения для фрагментов изображения первого уровня; с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения; передачу клиентскому устройству второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство: замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения; замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
[0030] В некоторых вариантах осуществления способа, способ далее включает в себя, после передачи клиентскому устройству второго опорного фрагмента изображения: определение первого соседнего фрагмента изображения для фрагментом изображения первого уровня, первый соседний фрагмент изображения является соседним для первого опорного фрагмента изображения для фрагментов изображения первого уровня; с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня для первого соседнего фрагмента изображения, соответствующие четыре дочерние фрагмента второго уровня формируют второй соседний фрагмент изображения; передачу клиентскому устройству второго соседнего фрагмента изображения, передача выполняется с возможностью инициировать клиентское устройство: заменить в памяти первый соседний фрагмент изображения на второй соседний фрагмент изображения; заменить на устройстве вывода первый соседний фрагмент изображения на второй соседний фрагмент изображения.
[0031] В некоторых вариантах осуществления способа, способ далее включает в себя, после передачи клиентскому устройству второго соседнего фрагмента изображения: определение третьего соседнего фрагмента изображения для фрагментом изображения первого уровня, третий соседний фрагмент изображения является соседним для первого опорного фрагмента изображения для фрагментов изображения первого уровня; с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня для третьего соседнего фрагмента изображения, соответствующие четыре дочерние фрагмента второго уровня формируют четвертый соседний фрагмент изображения; передачу клиентскому устройству четвертого соседнего фрагмента изображения, передача выполняется с возможностью инициировать клиентское устройство: заменить в памяти третий соседний фрагмент изображения на четвертый соседний фрагмент изображения; заменить на устройстве вывода третий соседний фрагмент изображения на четвертый соседний фрагмент изображения.
[0032] В некоторых вариантах осуществления способа, определение опорной точки первого вида изображения включает в себя получение указание на опорную точку от клиентского устройства.
[0033] В некоторых вариантах осуществления способа, указание на опорную точку соответствует центральной точке первой области просмотра.
[0034] В некоторых вариантах осуществления способа, указание на опорную точку соответствует позиции курсора на первой области просмотра.
[0035] В некоторых вариантах осуществления способа, иерархическая структура представляет собой структуру данных квадродерева.
[0036] В некоторых вариантах осуществления способа, фрагменты изображения представляют собой фрагменты карты, а уровень разрешения представляет собой уровень масштабирования.
[0037] В некоторых вариантах осуществления способа, фрагменты изображения представляют собой игровые текстуры, а уровень разрешения представляет собой уровень детализации.
[0038] В некоторых вариантах осуществления способа, передача клиентскому устройству второго опорного фрагмента изображения далее включает в себя передачу инструкции, которая инициирует клиентское устройство: замещать в памяти первый опорный фрагмент изображения на второй опорный фрагмент изображения; замещать на устройстве вывода первый опорный фрагмент изображения на второй опорный фрагмент изображения.
[0039] В некоторых вариантах осуществления способа, передача клиентскому устройству второго опорного изображения инициирует клиентское устройство: замещать в памяти первый опорный фрагмент изображения на второй опорный фрагмент изображения; замещать на устройстве вывода первый опорный фрагмент изображения на второй опорный фрагмент изображения; этапы замены выполняются на основе исполняемых на компьютере инструкций, хранящихся на клиентском устройстве.
[0040] В некоторых вариантах осуществления способа, память представляет собой кэш памяти.
[0041] В некоторых вариантах осуществления способа, передача клиентскому устройству второго опорного фрагмента изображения далее выполняется с возможностью инициировать клиентское устройство: отрисовать второй опорный фрагмент изображения.
[0042] Еще одним объектом настоящего технического решения является сервер. Сервер включает в себя: процессор, хранилище памяти, соединенное с процессором, хранилище памяти сохраняет данные о фрагментах изображения; данные о фрагментах изображения организованы сервером в иерархическую структуру, причем каждый уровень иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения; интерфейс передачи данных позволяет серверу соединяться с клиентским устройством через сеть передачи данных, клиентское устройство включает в себя память и устройство вывода, устройство вывода отображает первый вид изображения, первый вид изображения создается с помощью части множества фрагментов изображения первого уровня, связанных с первым уровне разрешения, часть определяется первой областью просмотра; часть множества фрагментов изображения первого уровня была (i) загружена клиентским устройством с сервера и (ii) сохранена клиентским устройством в памяти, что позволяет осуществлять отрисовку. Процессор выполнен с возможностью осуществлять: получение от клиентского устройства запроса на множество фрагментов изображения второго уровня для замены множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше, чем первый уровень разрешения; каждый фрагмент изображения из множества фрагментов изображения первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов изображения второго уровня, как определено иерархической структурой; определение опорной точки первого вида изображения; на основе опорной точки, определение первого опорного фрагмента изображения для фрагментов изображения первого уровня; с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения; передачу клиентскому устройству второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство: замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения; замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
[0043] В некоторых вариантах осуществления сервер выполнен с возможностью осуществлять: после передачи клиентскому устройству второго опорного фрагмента изображения: определение первого соседнего фрагмента изображения для фрагментом изображения первого уровня, первый соседний фрагмент изображения является соседним для первого опорного фрагмента изображения для фрагментов изображения первого уровня; с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня для первого соседнего фрагмента изображения, соответствующие четыре дочерние фрагмента второго уровня формируют второй соседний фрагмент изображения; передачу клиентскому устройству второго соседнего фрагмента изображения, передача выполняется с возможностью инициировать клиентское устройство: заменить в памяти первый соседний фрагмент изображения на второй соседний фрагмент изображения; заменить на устройстве вывода первый соседний фрагмент изображения на второй соседний фрагмент изображения.
[0044] В некоторых вариантах осуществления сервер выполнен с возможностью осуществлять: после передачи клиентскому устройству второго соседнего фрагмента изображения: определение третьего соседнего фрагмента изображения для фрагментом изображения первого уровня, третий соседний фрагмент изображения является соседним для первого опорного фрагмента изображения для фрагментов изображения первого уровня; с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня для третьего соседнего фрагмента изображения, соответствующие четыре дочерние фрагмента второго уровня формируют четвертый соседний фрагмент изображения; передачу клиентскому устройству четвертого соседнего фрагмента изображения, передача выполняется с возможностью инициировать клиентское устройство: заменить в памяти третий соседний фрагмент изображения на четвертый соседний фрагмент изображения; заменить на устройстве вывода третий соседний фрагмент изображения на четвертый соседний фрагмент изображения.
[0045] В некоторых вариантах осуществления сервера, для определения опорной точки первого вида изображения, процессор выполнен с возможностью осуществлять получение указание на опорную точку от клиентского устройства.
[0046] В некоторых вариантах осуществления сервера, указание на опорную точку соответствует центральной точке первой области просмотра.
[0047] В некоторых вариантах осуществления сервера, указание на опорную точку соответствует позиции курсора на первой области просмотра.
[0048] В некоторых вариантах осуществления сервера, иерархическая структура представляет собой структуру данных квадродерева.
[0049] В некоторых вариантах осуществления сервера, фрагменты изображения представляют собой фрагменты карты, а уровень разрешения представляет собой уровень масштабирования.
[0050] В некоторых вариантах осуществления сервера, фрагменты изображения представляют собой игровые текстуры, а уровень разрешения представляет собой уровень детализации.
[0051] В некоторых вариантах осуществления сервера, для передачи клиентскому устройству второго опорного фрагмента изображения, процессор выполнен с возможностью передавать инструкцию, которая инициирует клиентское устройство: заменить в памяти первый опорный фрагмент изображения на второй опорный фрагмент изображения; заменить на устройстве вывода первый опорный фрагмент изображения на второй опорный фрагмент изображения.
[0052] В некоторых вариантах осуществления сервера, передача клиентскому устройству второго опорного изображения инициирует клиентское устройство: замещать в памяти первый опорный фрагмент изображения на второй опорный фрагмент изображения; замещать на устройстве вывода первый опорный фрагмент изображения на второй опорный фрагмент изображения; этапы замены выполняются на основе исполняемых на компьютере инструкций, хранящихся на клиентском устройстве.
[0053] В некоторых вариантах осуществления сервера, память представляет собой кэш памяти.
[0054] В некоторых вариантах осуществления сервера, передача клиентскому устройству второго опорного фрагмента изображения далее выполняется с возможностью инициировать клиентское устройство: отрисовать второй опорный фрагмент изображения.
[0055] В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технического решения. В контексте настоящего технического решения использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
[0056] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. В контексте настоящего описания слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными.
[0057] В контексте настоящего описания, если конкретно не указано иное, «информация» включает в себя любую информацию любого типа, включая информацию, которую можно хранить в базе данных. Таким образом, информация включает в себя, среди прочего, данные (картографические данные, данные о местоположении, цифровые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, таблицы и т.д.
[0058] В контексте настоящего описания, если конкретно не указано иное, слово «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
[0059] В контексте настоящего описания, если конкретно не указано иное, термин «носитель информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
[0060] В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной передачи данных между этими существительными. Так, например, следует иметь в виду, что использование терминов «первая поверхность» и «третья поверхность» не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) поверхностей/между поверхностями, равно как и их использование (само по себе) не предполагает, что некая "вторая поверхность" обязательно должна существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание «первого» элемента и «второго» элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях, «первый» элемент и «второй» элемент могут являться одним и тем же элементом, а в других случаях они могут являться разными элементами.
[0061] В контексте настоящего описания, если специально не указано иное, термины «более низкий уровень масштабирования», «более высокий уровень масштабирования», «более низкий уровень разрешения» и «более высокий уровень разрешения» используются для определения следующего. Более низкий уровень масштабирования / разрешения является уровнем, который ниже, чем текущий - например, если текущий уровень масштабирования 100%, уровень масштабирования 75% считается более низким уровнем масштабирования. Аналогично, более высокий уровень масштабирования / разрешения является уровнем, который выше, чем текущий -например, если текущий уровень масштабирования 75%, уровень масштабирования 100% считается более высоким уровнем масштабирования. В общем случае, более низкий уровень масштабирования / разрешения характеризуется меньшим числом деталей, показанных пользователю, когда изображение отрисовывается и отображается (что, следовательно, требует меньших затрат памяти для хранения фрагментов изображения, которые охватывают этот конкретный уровень разрешения / масштабирования). С другой стороны, более высокий уровень масштабирования / разрешения характеризуется большим числом деталей и/или лучшим качеством деталей (и, следовательно, требует больших ресурсов памяти для хранения фрагментов изображения, которые охватывают этот конкретный уровень разрешения / масштабирования).
[0062] В контексте настоящего описания, если отдельно не указано иное, «иерархическая организация фрагментов изображения», «иерархическая структура для организации фрагментов изображения» или просто «иерархическая структура» используются для обозначения организации памяти, в которой хранится графическая информация. Иерархическая организация может представлять собой (без установления ограничений) древовидную структуру, на каждом уровне которой хранятся фрагменты изображения, соответствующие конкретному уровню масштабирования / разрешения. В иерархической структуре каждый фрагмент изображения на данном уровне масштабирования / разрешения обладает 4 (четырьмя) дочерними фрагментами, связанными со следующим более высоким уровнем масштабирования / разрешения. Следовательно, когда уровень масштабирования / разрешения изменяется от более низкого на более высокий уровень, данный фрагмент изображения более низкого уровня (т.е. фрагменты изображения, использованные для отрисовки и отображения текущего вида изображения) заменяется соответствующими четырьмя дочерними фрагментами более высокого уровня масштабирования / разрешения.
[0063] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящего технического решения станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0064] Для лучшего понимания настоящего технического решения, а также других ее аспектов и характерных черт сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:
[0065] На Фиг. 1 представлена принципиальная схема системы, выполненной в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0066] На Фиг. 2 представлен интерфейс пользователя, который представлен на устройстве вывода клиентского устройства системы, показанной на Фиг. 1.
[0067] На Фиг. 3 представлено схематическое изображение иерархической структуры, реализованной как древовидная структура в соответствии с некоторыми вариантами осуществления настоящего технического решения, иерархическая структура поддерживается сервером изображения системы, показанной на Фиг. 1.
[0068] На Фиг. 4 представлено схематическое изображение множества фрагментов карты, множество фрагментов карты схематически представляет подмножество из множества фрагментов карты, которые в текущий момент используются для отрисовки и отображения вида карты на интерфейсе пользователя, который представлен на Фиг. 2.
[0069] На Фиг. 5 представлена блок-схема способа, который выполняется сервером изображения системы, показанной на Фиг. 1.
[0070] На Фиг. 6 представлено схематическое представление фрагментов карты, которые требуются для отрисовки и отображения данного вида карты на интерфейсе пользователя, показанном на Фиг. 2.
[0071] На Фиг. 7 представлено схематическое изображение фрагментов карты, показанных на Фиг. 6, а также множество дополнительных фрагментов карты, множество дополнительных фрагментов карты для отрисовки и отображения модифицированного вида карты на уровне масштабирования «zoom-1» (множество фрагментов карты на уровне масштабирования «zoom-1» показано пунктирными линиями).
[0072] На Фиг. 8 представлено схематическое изображение фрагментов карты, показанных на Фиг. 6, и дополнительных фрагментов карты, показанных на Фиг. 7, и другое множество дополнительных фрагментов карты для отрисовки и отображения модифицированного вида карты на уровне масштабирования «zoom-2» (множество фрагментов карты на уровне масштабирования «zoom-2» показано штрих-пунктирными линиями).
[0073] На Фиг. 9 представлена блок-схема способа, выполняемого сервером изображения системы, изображенной на Фиг. 1, и выполненного в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем.
[0074] На Фиг. 10 показано схематическое изображение иерархической связи между фрагментам карты родительского уровня и фрагментам карты дочернего уровня.
ОСУЩЕСТВЛЕНИЕ
[0075] На Фиг. 1 представлена принципиальная схема системы 100, выполненной в соответствии с вариантами осуществления настоящего технического решения, не ограничивающими его объем. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание иллюстративных вариантов осуществления настоящего технического решения. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящего технического решения. Это описание не предназначено для определения объема или установления границ настоящего технического решения. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящего технического решения. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, это не должно интерпретироваться так, что там, где это еще не было сделано, т.е. там, где не были изложены примеры модификаций, никакие модификации невозможны, и/или что то, что описано, является единственным вариантом осуществления этого элемента настоящего технического решения. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящего технического решения, и в подобных случаях представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящего технического решения будут обладать гораздо большей сложностью.
[0076] Система 100 включает в себя клиентское устройство 102. Клиентское устройство 102 обычно связано с пользователем 104 и, таким образом, иногда может упоминаться как клиентское устройство 102. Следует отметить, что тот факт, что клиентское устройство 102 связано с пользователем 104, не подразумевает какого-либо конкретного режима работы, равно как и необходимости входа в систему, регистрации, или чего-либо подобного.
[0077] Варианты клиентского устройства 102 конкретно не ограничены, но в качестве примера клиентского устройства 102 могут использоваться персональные компьютеры (настольные компьютеры (изображен), ноутбуки, нетбуки и т.п.), устройства беспроводной связи (мобильные телефоны, смартфоны, планшеты и т.п.). Клиентское устройство 102 включает в себя несколько аппаратных компонентов, включая, без установления ограничений, процессор (не показан) и память (не показана), память обладает несколькими компонентами (включая кэш и тому подобное).
[0078] Клиентское устройство 102 включает в себя аппаратное обеспечение и прикладное программное, и/или системное программное обеспечение (или их комбинацию) для выполнения графического приложения 106 (например, браузерное приложение, приложение для просмотра изображений, картографическое приложение и так далее), графическое приложение 106 среди прочего отображает интерфейс пользователя, например, интерфейс браузерного приложения, который может быть использован для доступа или отображения изображения.
[0079] Графическое приложение 106, среди прочего, может быть специализированным картографическим приложением, например, приложением Яндекс.Карты™ для мобильных устройств, веб-браузером или любым другим приложением, предоставляющим изображение карты. В конкретном варианте осуществления настоящего технического решения пользовательский интерфейс может быть реализован на веб-странице, которая не является картографически специализированной (например, на веб-сайте общего характера, таком как веб-сайт банка, ресторана и т.п.). Графическое приложение 106 также может быть реализовано как приложение захвата/обработки изображения, приложение 3D-игры и так далее. В широком смысле, графическое приложение 106 выполнено с возможностью отрисовывать и инициировать отображение одного или нескольких изображений.
[0080] Клиентское устройство 102 соединено с сетью 108 передачи данных через линию 110 передачи данных. В некоторых вариантах осуществления настоящего технического решения, не ограничивающих ее объем, сеть 108 передачи данных может представлять собой Интернет. В других вариантах осуществления настоящего технического решения, сеть 108 передачи данных может быть реализована иначе - в виде глобальной сети передачи данных, локальной сети передачи данных, частной сети передачи данных и т.п.
[0081] Реализация линии 110 передачи данных не ограничена и будет зависеть от того, какое клиентское устройство 102 используется. В качестве примера, но не ограничения, в данных вариантах осуществления настоящего технического решения, когда клиентское устройство 102 представляет собой беспроводное устройство связи (например, смартфон), линия связи 110 представляет собой беспроводную сеть связи (например, среди прочего, линия связи сети 3G, линия связи сети 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.). В тех примерах, где клиентское устройство 102 представляет собой портативный компьютер, линия передачи данных может быть как беспроводной (беспроводной интернет WiFi®, Bluetooth® и т.п) так и проводной (соединение на основе сети Ethernet).
[0082] Общий вариант осуществления клиентского устройства 102 известен. Тем не менее, следует отметить, что клиентское устройство 102 включает в себя устройство 103 вывода. Устройство 103 вывода выполнено с возможностью представлять визуальную информацию пользователю 104. Визуальная информация может представлять собой текст, изображения, видео и так далее. Конкретнее, устройство 103 вывода выполнено с возможностью отображать вывод графического приложения 106. Устройство 103 вывода может быть реализовано как монитор, встроенный экран, сенсорный экран и так далее.
[0083] Важно иметь в виду, что варианты реализации клиентского устройства 102, линии 110 передачи данных и сети 108 передачи данных даны исключительно для наглядности. Таким образом, специалисты в данной области техники смогут понять подробности других вариантов осуществления клиентского устройства 102, линии 110 передачи данных и сети 108 передачи данных. То есть, представленные здесь примеры не ограничивают объем настоящего технического решения.
[0084] Сервер 112 изображения также соединен с сетью передачи данных. Сервер 112 изображения может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящего технического решения, сервер 112 изображения может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Предполагается, что сервер 112 изображения может быть реализован на любом подходящем аппаратном и/или прикладном программном, и/или системном программном обеспечении или их комбинации. В представленном варианте осуществления настоящего технического решения, не ограничивающем его объем, сервер 112 изображения является одиночным сервером. В других вариантах осуществления настоящего технического решения, не ограничивающих ее объем, функциональность сервера 112 изображения может быть разделена, и может выполняться с помощью нескольких серверов.
[0085] Варианты осуществления сервера 112 изображения широко известны среди специалистов в данной области техники. Тем не менее, сервер 112 изображения содержит интерфейс передачи данных (не показан), который настроен и выполнен с возможностью обмениваться данными с различными элементам (например, клиентским устройством 102) через сеть 108 передачи данных. Сервер 112 изображения дополнительно включает в себя один или несколько пунктов из следующего: компьютерный процессор (не показан), функционально соединенный с интерфейсом связи и настроенный и выполненный с возможностью выполнять различные процессы, описанные здесь.
[0086] Сервер 112 изображения соединен с сетью 108 передачи данных через линию 116 передачи данных. Реализация линии 116 передачи данных не ограничена и будет зависеть от того, какой сервер 112 изображения используется. Предполагается, что примеры вариантов осуществления линии 110 передачи данных, предоставленные выше, могут быть применены к линии 116 передачи данных.
[0087] Сервер 112 изображения обладает доступом к базе 114 данных изображений. База 114 данных изображений выполнена с возможностью сохранять данные изображения для отрисовки одного или нескольких изображений. То, как именно база 114 данных изображений размещает данных изображения, будет описано более подробно далее. Как будет описано далее, сервер 112 изображения выполнен с возможностью осуществлять: получение через сеть 108 передачи данных и линии 110, 116 передачи данных от клиентского устройства 102 запроса на вид изображения; (ii) получение данных изображения (например, одного или нескольких фрагментов изображения), необходимых для создания запрошенного вида изображения из базы 114 данных изображения и (iii) передачу полученных данных изображения на клиентское устройство 102 через сеть 108 передачи данных и линии 110, 116 передачи данных.
[0088] Следует иметь в виду, что природа того, как именно сохраняется изображение (и данные изображения) сервером 112 изображения, никак конкретно не ограничивается. В некоторых вариантах осуществления настоящего технического решения, изображение является картой, и данные изображения являются множеством фрагментов карты, данное подмножества фрагментов карты для отрисовки конкретного вида карты на конкретном уровне масштабирования. В альтернативных вариантах осуществления технического решения, изображение представляет собой другой тип изображения (например, часть 3D-игры), а данные изображения представляют собой игровые текстуры, данная игровая текстура для создания конкретного игрового вида на конкретном уровне разрешения. Естественно, изображение и данные изображения могут быть реализованы несколькими различными способами.
[0089] Варианты осуществления базы 114 данных изображений могут быть совершенно любыми из известных в данной области техники. Реализация базы 114 данных изображения никак конкретно не ограничена. Конкретный вариант осуществления базы 114 данных изображения может быть определен с помощью характеристик сохраненных данных. Формат хранения данных может быть определен с помощью характеристик сохраненных данных. Например, формат YMapsML может быть использован как формат хранения данных. В альтернативных вариантах осуществления технического решения, формат GML - язык географической разметки -может быть использован как формат хранения данных. GML разрабатывается и поддерживается OGC (Открытый геопространственный консорциум), и является международным стандартом ISO.
[0090] В остальной части представленного описания будет использованы изображения карты, область просмотра карты, уровень разрешения карты, данные карты и фрагменты карты в качестве примера реализации варианта осуществления настоящего технического решения. Тем не менее, предполагается, что специалист в области техники, обладающий преимуществами от прочтения настоящего описания, будет способен применить его с надлежащими изменениями к другим типам изображений, данных изображений и фрагментов изображений. Например, представленные способы могут быть применены с надлежащими изменениями к изображениям 3D-игр, игровым текстурам и уровням детализации.
[0091] В соответствии с вариантами осуществления настоящего технического решения, после того как клиентское устройство 102 получает часть карты (т.е. данные карты, содержащие фрагменты карты для отрисовки конкретного вида карты, обладающие конкретной областью просмотра и конкретным уровнем масштабирования), клиентское устройство 102 может обработать полученные картографические данные для отрисовки их на устройстве 103 вывода. Способы и процедуры, описанные ниже, могут быть выполнены процессором (не показано) клиентского устройства 102.
[0092] На Фиг. 2 представлен интерфейс 200 пользователя, который представлен на устройстве 103 вывода. Интерфейс 200 пользователя может быть создан графическим приложением 106.
[0093] Для упрощения понимания описанных способа и процедур, предполагается, что вид изображения, полученный клиентским устройством 102, является видом 206 изображения, показанным на Фиг. 2 (также упоминается далее как «вид карты» или «картографическое изображение»). В некоторых вариантах осуществления настоящего технического решения, вид 206 изображения получается в формате масштабируемого векторного рисунка (SVG), который основан на формате XML векторного изображения для двухмерной графики с поддержкой интерактивности и анимации. Стандарт SVG - открытый стандарт, разработанный консорциумом всемирной паутины (W3C).
[0094] Пользователь 104 может запрашивать клиентское устройство 102 отобразить интерфейс 200 пользователя и выбрать вид 206 изображения, который будет отображен. Реализация вида 206 изображения никак конкретно не ограничена. Например, пользователь 104 может ввести с помощью устройства ввода (не показано), например, клавиатуры или мыши, указание на желаемый вид 206 изображения (например, путем ввода адреса, названия точки интереса и так далее).
[0095] В представленном на Фиг. 2 примере, пользователь 104 может искать «Ресторны в Вестеросе» и, следовательно, хотеть отобразить результаты поиска на интерфейсе 200 пользователя клиентского устройства 102, вид 206 изображения показывает расположение ресторанов в Вестеросе. В этом примере, вид 206 изображения предоставляет карту "Вестероса" и сопутствующую информацию, соответствующую расположению ресторанов в Вестеросе (а также другую информацию, относящуюся к этим ресторанам, например, адрес, номер телефона, веб-сайт, отзывы и так далее).
[0096] В другом примере, графическое приложение 106 может быть создано для предоставления расположения местных достопримечательностей на мобильный вариант клиентского устройства 102, запрошенный вид 206 карты создается на основе текущего местоположения клиентского устройства 102 с помощью, например, IP-адреса или координат GPS. Границы фрагмента вида 206 карты, который будет запрошен, могут быть определены с помощью предварительно определенного радиуса с использованием текущего расположения клиентского устройства 102 или с помощью расстояния, выбранного пользователем 104 на клиентском устройстве 102.
[0097] В другом примере, графическое приложение 106 выполнено для предоставления интерактивной карты ближайших расположений, например, конкретной сети кофеен, пользователю 104 необходимо только запустить графическое приложение 106 для передачи запроса на желаемый вид 206 карты. Графическое приложение 106 использует текущее положение клиентского устройства 102 для запроса вида 206 карты.
[0098] На Фиг. 2 схематически представлено множество фрагментов 210 карты (показано пунктирными линиями). Множество фрагментов 210 карты включает в себя: первый фрагмент 212 карты (видимый полностью), второй фрагмент 214 карты, третий фрагмент 216 карты и четвертый фрагмент 218 карты (последние три фрагмента видны только частично на области 220 просмотра вида 206 карты, показанной на Фиг. 2). В соответствии в вариантами осуществления настоящего технического решения, вид 206 изображения создается на основе множества фрагментов 210 карты, множество фрагментов 210 карты соответствует конкретной одной области 220 просмотра и конкретному уровню масштабирования (не пронумеровано). Таким образом, вид 206 карты, показанный на Фиг. 2, может быть связан с конкретной областью 220 просмотра и конкретному уровню масштабирования.
[0099] В ответ на запрос пользователя на вид 206 карты, клиентское устройство 102 создает первый запрос 160 (Фиг. 1), первый запрос 160 включает в себя запрос на вид 206 карты. Первый запрос 160 включает в себя указание на область 220 просмотра и уровень масштабирования, запрошенный пользователем 104.
[00100] Для создания вида 206 карты в ответ на первый запрос 106, сервер 112 изображения создает первое сообщение 162 (Фиг. 1), первое сообщение 162 включает в себя подмножество из множества фрагментов 210 карты для создания запрошенного вида 206 карты.
[00101] Подмножество из множества фрагментов 210 карты создается следующим образом.
[00102] База 114 данных изображения выполнена с возможностью содержать файлы, содержащие множество фрагментов 210 карты (например, целое множество фрагментов 210 карты, запрошенных для создания всех возможных видов карты со всем возможными областями 220 просмотра и уровнями масштабирования). В некоторых вариантами осуществления настоящего технического решения, база 114 данных изображения содержит файлы, связанные со множеством фрагментов 210 карты в иерархической структуре. В некоторых вариантах осуществления настоящего технического решения, иерархическая структура может быть реализована как древовидная структура 300, представленная со ссылкой на Фиг. 3. Следует иметь в виду, что древовидная структура 300, показанная на Фиг. 3, является только одним вариантом осуществления технического решения, и возможны другие. В соответствии с вариантами осуществления настоящего технического решения, каждый уровень 302, 304, 306, 308 древовидной структуры 300 соответствует конкретному уровню масштабирования. Другими словами, каждый уровень 302,304, 306,308 включает в себя подмножество множества фрагментов 210, связанных с различными областями 220 просмотра на данном уровне масштабирования.
[00103] Более высокий уровень 302, 304, 306, 308 может называться «родительским уровнем», а более низкий уровень 302, 304, 306, 308 может называться «дочерним уровнем». В соответствии с вариантами осуществления настоящего технического решения, данный фрагмент родительского уровня 302, 304, 306, 308 обладает четырьмя соответствующими фрагментами на дочернем уровне 302, 304, 306, 308. В общем случае, как представленного на Фиг. 3, фрагменты карты родительского уровня связаны с более низким уровнем масштабирования (т.е. меньшим количеством деталей и/или более низким качеством) и фрагменты карты дочернего уровня связаны с более высоким уровнем масштабирования (т.е. большим количеством деталей и/или более высоким качеством).
[00104] Иерархическая связь далее схематически описана со ссылкой на Фиг. 10, на которой представлена часть фрагментов 210 карты. Показаны фрагменты карты на трех уровнях масштабирования - четыре фрагмента карты на первом уровне 1002 (показан только один) создают фрагмент карты второго уровня 1004. Четыре фрагмента карты второго уровня 1004 (показан только один) создают фрагмент карты третьего уровня 1006.
[00105] Когда пользователь 104 запрашивает изменение на уровне масштабирования (например, с текущего уровня масштабирования на более высокий уровень масштабирования (например, уровень масштабирования «zoom+1»), данный фрагмент карты текущего уровня масштабирования (т.е. данный фрагмент текущего уровня 302, 304, 306, 308) заменяется на четыре дочерних фрагмента карты (т.е. четыре фрагмента карты более низкого уровня 302, 304, 306, 308). На Фиг. 10 фрагмент карты второго уровня 1004 будет заменен на четыре фрагмента карты первого уровня 1002.
[00106] Другими словами, когда пользователь 104 запрашивает изменение уровня масштабирования на уровень масштабирования «zoom+1», четыре дочерних фрагмента карты (т.е. четыре фрагмента карты более низкого уровня масштабирования 302, 304, 306, 308) отрисовываются и отображаются вместо одного фрагмента карты текущего уровня масштабирования (т.е. данный фрагмент текущего уровня 302, 304, 306, 308) - четыре фрагмента карты первого уровня 1002 (показан только один) заменяют фрагмент карты второго уровня 1004.
[00107] Та же процедура проходит в обратном порядке, когда пользователь 104 запрашивает более низкий уровень масштабирования (т.е. уровень масштабирования «zoom-1»). Естественно, пользователь 104 может запрашивать изменение в уровне масштабирования, который обладает большим значением, чем плюс/минус один. Таким образом, пользователь 104 может запрашивать изменение в уровне масштабирования, который обладает значением, отличным от плюс/минус два уровня, плюс/минус три уровня и так далее.
[00108] ПРОЦЕСС ЗАГРУЗКИ БОЛЕЕ ВЫСОКОГО УРОВНЯ МАСШТАБИРОВАНИЯ
[00109] В соответствии с вариантами осуществления настоящего технического решения, когда пользователь 104 запрашивает более высокий уровень масштабирования (т.е. уровень масштабирования «zoom+1» и так далее), сервер 112 изображения выполнен с возможностью выполнять приоритетную загрузку фрагментов 210 карты. Для целей нижеследующего описания, уровень масштабирования, который отображается на Фиг. 2, считается текущим уровнем масштабирования, а подмножество множества фрагментов 210 карты, которое используется для отображения вида 206 карты на Фиг. 2, был загружен с сервера 112 изображения на клиентское устройство 102 и сохранен на внешней памяти, например, в кэше (не показан) клиентского устройства 102.
[00110] При изменении пользователем 104 уровня масштабирования с текущего уровня масштабирования (т.е. показанного на Фиг. 2) на другой уровень масштабирования (например, более высокий уровень масштабирования, например, уровень масштабирования «zoom+1» или выше), клиентское устройство 102 создает второй запрос 164 (показан на Фиг. 1), второй запрос 164 включает в себя запрос на другой уровень масштабирования (т.е. более высокий уровень масштабирования).
[00111] Сервер 112 изображения выбирает другое подмножество множества фрагментов 210 карты, другое подмножество множества фрагментов 210 карты для отрисовки и отображения вида 206 карты на более высоком уровне масштабирования.
[00112] На Фиг. 4 представлено множество фрагментов 210 карты, множество фрагментов 210 карты схематически представляет подмножество из множества фрагментов 210 карты, которые в текущий момент используются для отрисовки и отображения вида 206 карты на Фиг. 2.
[00113] Сервер 112 изображения сначала выбирает заменяющее подмножество 420 множества фрагментов 210 карты, заменяющее подмножество 420 множества фрагментов 210 карты предназначено для замены подмножества фрагментов 210 карты, которые в текущий момент используются для отрисовки и отображения вида 206 карты. Выбор заменяющего подмножества 420 может выполняться с помощью вышеупомянутой иерархической структуры 300. Как будет упомянуто, для каждого фрагмента карты подмножество фрагментов 210 карты, который используется для отображения текущей версии вида 206 изображения, есть четыре дочерних фрагмента карты заменяющего подмножества 420.
[00114] Сервер 112 изображения сначала выбирает так называемую «опорную точку» для определения так называемого «опорного фрагмента». В некоторых вариантах осуществления настоящего технического решения, сервер 112 изображения выбирает наиболее центральный фрагмент 402 карты как опорный фрагмент, центральный фрагмент 402 карты размещает центральную точку 404 вида 206 изображения (центральная точка вида 206 изображения является опорной точкой). В альтернативных вариантах осуществления технического решения, сервер 112 изображения выбирает активный фрагмент 406 как опорный фрагмент, активный фрагмент 406 связан с позицией курсора 408 на виде 206 карты (позиция курсора 408 является опорной точкой).
[00115] Некоторые из вышеупомянутых подходов являются более подходящими для конкретных обстоятельств, другие из них будут более подходящими в других обстоятельствах в различных вариантах осуществления настоящего технического решения. Например, в тех вариантах осуществления технического решения, где пользователь 104 выбрал более высокий уровень масштабирования с помощью «колеса прокрутки» мыши (не показано), связанной с клиентским устройством 102, или с помощью трекпада (не показано), связанного с клиентским устройством 102, сервер 112 изображения выбирает активный фрагмент 406 в качестве опорного фрагмента на основе того, что опорная точка является положением курсора 408.
[00116] С другой стороны, в тех вариантах осуществления, где пользователь 104 выбрал более высокий уровень масштабирования с помощью «экранных клавиш» (например, плюс/минус уровень масштабирования или другие индикаторы, предоставленные как часть вида 206 карты), сервер 112 изображения выбирает центральный фрагмент 402 карты как опорный фрагмент на основе опорной точки, которая является центральной точкой вида 206 изображения.
[00117] Естественно, опорный фрагмент может быть выбран различными способами - в зависимости от конкретных вариантов осуществления технического решения графического приложения 106.
[00118] Сервер 112 изображения далее организует заменяющее подмножество 420 множества фрагментов 210 карты для передачи клиентскому устройству 102 следующим образом.
[00119] Сначала сервер 112 изображения выбирает четыре дочерних фрагмента изображения, связанные с опорным фрагментом (в этом примере, либо центральный фрагмент 402 карты, либо активный фрагмент 406 карты). Для целей иллюстрации следует предположить, что сервер 112 изображения выбирает центральный фрагмент 402 как опорный фрагмент. Следовательно, сервер 112 изображения сначала выбирает четыре дочерних фрагмента карты, связанные с центральным фрагментом 402 карты. Сервер 112 изображения далее создает второе сообщение 166 (Фиг. 1), второе сообщение 166 содержит четыре дочерних фрагмента карты, связанные с центральным фрагментом 402 карты. Сервер 212 приложения затем передает второе сообщение 166 клиентскому устройству 102. Второе сообщение 166 инициирует клиентское устройство 102 (i) заменить в памяти (например, в кэше) центральный фрагмент 402 карты на четыре дочерних фрагмента карты как часть второго сообщения 166 и (ii) отрисовать и отобразить область просмотра карты, связанную с четырьмя дочерними фрагментами карты, вместо центрального фрагмента 402 карты.
[00120] Сервер 112 изображения далее выбирает соседний фрагмент карты, соседний фрагмент карты соседствует с центральным фрагментом 402 карты. Для целей иллюстрации предполагается, что соседний фрагмент является активным фрагментом 406. Тем не менее, соседний фрагмент может представлять собой любой фрагмент карты, представленный на Фиг. 4, поскольку они все соседствуют с центральным фрагментом 402 карты.
[00121] Сервер 112 изображения далее повторяет процесс выбора четыре дочерних фрагмента карты, связанные с соседним фрагментом карты (в данном случае, активным фрагментом 406 карты). Сервер 112 изображения далее передает сообщение, аналогичное второму сообщению 166, клиентскому устройству 102, которое при этом содержит четыре дочерних фрагмента карты, соответствующие соседнему фрагменту карты. Сервер 112 изображения далее повторяет процесс выбора и передачи дочерних фрагментов изображения до тех пор пока все заменяющие подмножества 420 множества фрагментов карты 210 не будут переданы клиентскому устройству 102 (т.е. до тех пор пока заменяющие подмножества 420 множества фрагментов 210 карт, которые требуются для новой области просмотра, не будут переданы). Естественно, возможно, что существует больше девяти соседних фрагментов на виде 206 изображения, следовательно, сервер 112 изображения может при необходимости повторять вышеописанный процесс.
[00122] Далее, следует иметь в виду, что, несмотря на то что в некоторых вариантах осуществления настоящего технического решения каждое из вторых сообщений 166 передается по одному, это не является обязательным в каждом варианте осуществления настоящего технического решения. Таким образом, некоторые или все из вторых сообщений 166 могут быть переданы группами из двух или более, тем не менее, замена «старых» (т.е.е ранее использованных) фрагментов 210 карты в локальной памяти клиентского устройства 102 выполняется по одному.
[00123] С учетом описанной выше архитектуры возможно использовать способ загрузки данных о фрагментах карты с сервера 112 изображения клиентскому устройству 102. Следует иметь в виду, что данные о фрагментах карты организованы сервером 112 изображения в иерархическую структуру (например, без установления ограничений, древовидную структуру 300 на Фиг. 3), где каждый уровень 302, 304, 306, 308, 310 иерархической структуры 300 сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения (например, без установления ограничений, уровнем масштабирования).
[00124] Для целей нижепредставленного описания, следует предположить, что клиентское устройство 102 отображает, с помощью устройства 103 вывода, вид 206 изображения (который является первым видом 206 изображения), первый вид 206 изображения связан с первой областью просмотра и первым уровнем разрешения. Первый вид 206 изображения был создан с помощью части множества фрагментов 210 карты первого уровня, связанных с первым уровнем разрешения, часть определяется первой областью просмотра. Часть множества фрагментов 210 карты первого уровня была (i) загружена клиентским устройством 102 с сервера 112 изображения как часть первого сообщения 162 и (и) сохранена клиентским устройством 102 в памяти (например, кэше) для отрисовки этих фрагментов.
[00125] На Фиг. 5 представлена блок-схема способа 500, выполняемого сервером 112 изображения.
[00126] Этап 502 - получение от клиентского устройства запроса на множество фрагментов изображения второго уровня для замены множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше, чем первый уровень разрешения; каждый фрагмент изображения из множества фрагментов изображения первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов изображения второго уровня, как определено иерархической структурой
[00127] Способ 500 начинается на этапе 502, где сервер 112 изображения получает от клиентского устройства 102 запрос на множество фрагментов изображения второго уровня на замену множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше чем первый уровень разрешения, который отображается на текущий момент. Этап может быть выполнен посредством сервера 112 изображения, который получает второй запрос 164, описанный выше. Следует отметить, что этап 502 выполняется в ответ на запрос от пользователя 104 на замену уровня масштабирования.
[00128] Следует упомянуть, что каждый фрагмент изображения из множества фрагментов 210 карты первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов 420 второго уровня, что определено иерархической структурой 300.
[00129] Этап 504 - определение опорной точки первого вида изображения
[00130] На этапе 504 сервер 112 изображения определяет опорную точку 404, 408 первого вида 206 изображения.
[00131] В некоторых вариантах осуществления технического решения, определение опорной точки первого вида изображения включает в себя получение указания на опорную точку от клиентского устройства 102 (например, как часть второго запроса 164).
[00132] В некоторых вариантах осуществления настоящего технического решения, указание опорной точки соответствует центральной точки первого вида 206 изображения. В других вариантах осуществления настоящего технического решения, опорная точка соответствует положению 408 курсора над первым видом 206 изображения.
[00133] Этап 506 - на основе опорной точки, определение первого опорного фрагмента изображения для фрагментов изображения первого уровня
[00134] Сервер 112 изображения далее, на основе опорной точки 404, 408, определяет первый опорный фрагмент 402, 406 изображения из фрагментов 410 карты первого уровня.
[00135] Этап 508 - с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения
[00136] Сервер 112 изображения, с помощью иерархической структуры 300, осуществляет определение соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения
[00137] Этап 510 - передача клиентскому устройству второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство: замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения; замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения
[00138] Сервер 112 изображение далее осуществляет передачу клиентскому устройству 102 второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство 102: замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения; замещать на устройстве 103 вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения. Этап 610 выполняется посредством сервера 112 изображения, который передает клиентскому устройству 102 второе сообщение 166.
[00139] В некоторых вариантах осуществления настоящего технического решения, передача клиентскому устройству 102 второго опорного фрагмента изображения, далее включает в себя передачу инструкции, которая инициирует клиентское устройство 102 выполнить этапы: замены в памяти первого опорного фрагмента изображения на второй опорный фрагмент изображения; замены на устройстве 103 вывода первого опорного фрагмента изображения на второй опорный фрагмент изображения.
[00140] В альтернативных вариантах осуществления технического решения, инструкция выполнения этапов хранится на клиентском устройстве 102.
[00141] В дополнительных вариантах осуществления настоящего технического решения, дополнительная инструкция (либо переданная как часть второго сообщения 166, либо хранящаяся на клиентском устройстве 102) выполнена с возможностью инициировать клиентское устройство 102 отрисовывать второй опорный фрагмент изображения.
[00142] Сервер 112 изображения далее определяет первый соседний фрагмент изображения из фрагментов изображения первого уровня, первый соседний фрагмент изображения является соседним для первого фрагмента изображения из фрагментов изображения первого уровня. Сервер 112 изображения, с помощью иерархической структуры 300, осуществляет определение соответствующих четырех дочерних фрагментов изображения второго уровня для первого соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения Сервер 112 изображение далее осуществляет передачу клиентскому устройству 102 второго соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство 102: замещать в памяти первый соседний фрагмент изображения вторым соседним фрагментом изображения; замещать на устройстве 103 вывода первый соседний фрагмент изображения с помощью второго соседнего фрагмента изображения.
[00143] Сервер 112 изображения далее определяет третий соседний фрагмент изображения фрагментов изображения первого уровня, третий соседний фрагмент изображения является соседним для первого фрагмента изображения фрагментов изображения первого уровня. Сервер 112 изображения далее, с помощью иерархической структуры 300, осуществляет определение соответствующих четырех дочерних фрагментов изображения второго уровня для третьего соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют четвертый соседний фрагмент изображения Сервер 112 изображение далее осуществляет передачу клиентскому устройству 102 четвертого соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство 102: замещать в памяти третий соседний фрагмент изображения четвертым соседним фрагментом изображения; замещать на устройстве 103 вывода третий соседний фрагмент изображения с помощью четвертого соседнего фрагмента изображения.
[00144] Способ 500 далее может завершиться или ожидать других аналогичных инструкций, аналогичных той, что связана со вторых запросом 164.
[00145] ПРОЦЕСС ЗАГРУЗКИ БОЛЕЕ НИЗКОГО УРОВНЯ МАСШТАБИРОВАНИЯ
[00146] То, что было описано выше, относится к процессу загрузки фрагментов 210 карты, когда пользователь 104 запрашивает новый уровень масштабирования, который выше, чем текущий уровень масштабирования (т.е. уровень масштабирования «zoom+1» или выше. В тех вариантах осуществления технического решения, где пользователь 104 запрашивает более низкий уровень масштабирования, загрузка новых фрагментов карты может быть выполнена следующим образом.
[00147] Для нижеследующего описания предполагается, что пользователь 104 запрашивает вид 206 карты. Аналогично тому, что было представлено выше, в ответ на запрос пользователя на вид 206 карты, клиентское устройство 102 создает первый запрос 160 (Фиг. 1), первый запрос 160 включает в себя запрос на вид 206 карты. Первый запрос 160 включает в себя указание на область 220 просмотра и уровень масштабирования, запрошенный пользователем 104. Также может быть, что первый запрос 160 содержит запрос информации о «текущей области просмотра».
[00148] К моменту обработки пользовательского запроса (т.е. первое сообщение 162) в некоторых вариантах осуществления настоящего технического решения, сервер 112 изображения выполняет процесс следующим образом. Другими словами, первый запрос 160 инициирует сервер 112 изображения выполнить следующий процесс.
[00149] На Фиг. 6 представлено схематическое представление фрагментов 602 карты, запрошенных для отрисовки и отображения данного вида 206 карты (фрагменты 602 карты будут использованы для описания вариантов осуществления технического решения здесь и далее вместо фрагментов 210 карты, использованных в предыдущем примере).
[00150] Данный вид 206 карты связан с конкретным уровнем масштабирования и конкретной областью просмотра, схематически представленной на Фиг. 6 под номером 604. Каждый из фрагментов 602 карты пронумерован числом от 1 до 20 - эти числа не означают какой-либо последовательности, а используются просто для указания на один из фрагментов 602 карты, например, первый фрагмент 602 карты, второй фрагмент 602 карты и двадцатый фрагмент 602 карты.
[00151] Как видно на Фиг. 2, для отрисовки и отображения данного вида 206 карты, некоторые из фрагментов 602 карты необходимы целиком (например, первый, второй, третий, девятнадцатый и двадцатый фрагменты 602 карты), а другие необходимы только частично (например, пятый, шестой, седьмой, восьмой, девятый, десятый, одиннадцатый, двенадцатый, тринадцатый, четырнадцатый, пятнадцатый, шестнадцатый, семнадцатый, восемнадцатый фрагменты 602 карты). Другими словами, двадцать экземпляров фрагментов 602 карты (используются ли они частично или полностью) требуются для отрисовки и отображения данного вида 206 карты, который обладает конкретным уровнем масштабирования и конкретной областью 604 просмотра.
[00152] Для целей описания, которое будет представлено далее, предполагается, что пользователь 104 желает передвинуть конкретную область 604 просмотра в направлении, показанном под номером 606, к новой области просмотра (не показано). В соответствии с вариантами осуществления настоящего технического решения, чтобы избежать ситуацию «пустого экрана» (т.е. когда одна или несколько частей вида 206 карты отображаются в виде белых пятен или с иными помехами) при переходе от конкретной области 604 просмотра к новой области просмотра в направлении стрелки 606, сервер 112 изображения инициирует загрузку числа фрагментов 602 карты в дополнении к фрагментам 602 карты, необходимым для отрисовки и отображения данного вида 206 карты на конкретной области 604 просмотра в момент времени до того как пользователь 104 указывает на свое желание подвинуть конкретную область 604 просмотра.
[00153] В некоторых вариантах осуществления настоящего технического решения, эти дополнительные фрагменты карты загружаются в то же самое время что и фрагменты 602 карты (например, как часть первого запроса 160, показанного на Фиг. 1.). В других вариантах осуществления настоящего технического решения, дополнительные фрагменты карты загружаются в заранее определенный момент времени после загрузки фрагментов 602 карты (например, после 1 секунды, после 10 секунд и так далее). Для простоты описания, уровень масштабирования конкретной области 604 просмотра будет упоминаться как «текущий уровень масштабирования», а уровень масштабирования ниже, чем текущий уровень масштабирования, будет упоминаться как уровень масштабирования «zoom-1».
[00154] На Фиг. 7 представлено схематическое изображение фрагментов 602 карты, необходимых для отрисовки и отображения данного вида 206 карты, а также множество дополнительных фрагментов 702 карты, множество дополнительных фрагментов 702 карты для отрисовки и отображения модифицированного вида карты на уровне масштабирования «zoom-1» (множество фрагментов карты на уровне масштабирования «zoom-1» показано пунктирными линиями).
[00155] Как будет упомянуто, вышеописанная древовидная структура 300 содержит информацию о фрагментах карты на различных уровнях 302, 304, 306, 308, и каждый уровень древовидной структуры 300 соответствует конкретному уровню масштабирования. Другими словами, каждый уровень 302, 304, 306, 308 включает в себя подмножество множества фрагментов 210, связанных с различными областями просмотра на данном уровне масштабирования.
[00156] Следует также упомянуть, что более высокий уровень 302, 304, 306, 308 может называться «родительским уровнем», а более низкий уровень 302, 304, 306, 308 может называться «дочерним уровнем» (а также фрагменты карты, которые представляют данные, хранятся на соответствующем уровне 302, 304, 306, 308). Следует иметь в виду, что данный фрагмент родительского уровня 302, 304, 306, 308 обладает четырьмя соответствующими фрагментами на дочернем уровне 302, 304, 306, 308.
[00157] Соответственно, как видно на Фиг. 7, некоторые из фрагментов 602 карты (первый, второй, третий и четвертый фрагменты 602 карты, а также четырнадцатый, пятнадцатый, девятнадцатый и двадцатый фрагменты 602 карты) являются «дочерними» фрагментами карты фрагментов карты уровня масштабирования «zoom-1», и их необходимо загрузить как часть фрагментов 602 карты, которые требуются для отрисовки и отображения конкретной области 604 просмотра на текущем уровне масштабирования.
[00158] Варианты осуществления настоящего технического решения основаны на предположении, что родительские фрагменты карты конкретных фрагментов карты, которые загружены как часть фрагментов 602 карты, являются «заранее загруженными» вместе с фрагментами 602 карты, и используются для отрисовки и отображения переходного вида, когда загружаются актуальные фрагменты карты, которые требуются для новой области просмотра. В некоторых вариантах осуществления настоящего технического решения, целиком родительские фрагменты конкретных фрагментов карты могут быть загружены заранее. В других вариантах осуществления настоящего технического решения, подмножество родительских фрагментов конкретных фрагментов карты может быть заранее загружено, подмножество выбирается как будет описано далее.
[00159] Конкретнее, для тех четырех фрагментов карты конкретного уровня масштабирования (т.е. текущего уровня масштабирования), которые будут загружены как часть фрагментов 602 карты, соответствующие родительские фрагменты карты более низкого уровня масштабирования (т.е. уровня масштабирования «zoom-1») не загружаются заранее. Другими словами, родительские фрагменты карты, связанные с некоторыми из фрагментов 602 карты (первым, вторым, третьим, четвертым фрагментами 602 карты, а также четырнадцатый, пятнадцатый, девятнадцатый и двадцатый фрагменты 602 карты), которые обладают всеми соответствующими дочерними фрагментами, которые содержатся во фрагментах 602 карты. Эти родительские фрагменты карты пронумерованы 704, 706 - т.к. все их соответствующие дочерние фрагменты содержатся во фрагментах 602 карты.
[00160] На Фиг. 7 представлено семь родительских фрагментов карты уровня масштабирования «zoom-1», которые не обладают всеми дочерними фрагментами 602 карты среди фрагментов 602 карты. Для тех родительских фрагментов уровня масштабирования «zoom-1», которые не обладают всеми своими дочерними фрагментами среди фрагментов 602, в соответствии с вариантами осуществления настоящего технического решения, эти родительские фрагменты будут загружены как «переходные фрагменты карты» как часть загрузки фрагментов 602 карты. Термин «переходные фрагменты карты» означает те фрагменты, которые были загружены, но не были сразу же отрисованы / отображены.
[00161] Когда пользователь 104 указывает на свое желание поменять область 604 просмотра, выполняется «переход» области просмотра от конкретной области 604 просмотра к новой области просмотра. В соответствии с некоторыми вариантах осуществления настоящего технического решения, переход к новой области просмотра выполняется следующим образом. Когда пользователь 104 указывает на свое желание изменить область просмотра, клиентское устройство 102 отрисовывает и отображает «переходный вид», переходный вид создается из переходных фрагментов карты и соответствующих дочерних фрагментов изображения, которые были загружены как часть фрагментов 602 карты (первого, второго, третьего и четвертого фрагментов 602, а также четырнадцатого, пятнадцатого, девятнадцатого и двадцатого фрагментов 602).
[00162] Клиентское устройство 102 далее запрашивает «присущие» фрагменты карты, необходимые для отрисовки и создания новой области просмотра (например, путем передачи сообщения аналогичного первому запросу 160 или второму запросу 164, оба представлены на Фиг. 1). В некоторых вариантах осуществления настоящего технического решения, сервер 112 изображения может передавать только «недостающие фрагменты карты» (т.е. те, которые не были загружены как часть фрагментов 602 или переходные фрагменты карты). В альтернативных вариантах осуществления технического решения, сервер 112 может передавать абсолютно новые фрагменты карты, необходимые для новой области просмотра. После того как все фрагменты карты загружены на клиентское устройство 102, клиентское устройство 102 отрисовывает и отображает новую область просмотра с помощью фрагментов карты, которые являются «присущими» для запрошенной области просмотра.
[00163] Описанное выше подходит для достаточно небольших изменений в области 604 просмотра. Но там, где изменения могут быть более серьезными, сервер 112 изображения может передавать дополнительные переходные фрагменты уровня масштабирования, который может представлять собой уровень масштабирования «zoom-2», «zoom-3» и так далее.
[00164] На Фиг. 8 представлено схематическое изображение фрагментов 602 карты, необходимых для отрисовки и отображения данного вида 206 карты, множество дополнительных фрагментов 702 карты для отрисовки и отображения модифицированного вида карты на уровне масштабирования «zoom-1» (множество фрагментов карты на уровне масштабирования «zoom-1» показано пунктирными линиями) и другое множество дополнительных фрагментов 802 карты для отрисовки и отображения далее модифицированного вида карты на уровне масштабирования «zoom-2» (множество фрагментов карты на уровне масштабирования «zoom-2» показано штрих-пунктирными линиями).
[00165] Аналогично описанию, приведенному здесь в отношении Фиг. 7 для тех родительских фрагментов уровня масштабирования «zoom-2», которые не обладают всеми своими дочерними фрагментами среди фрагментов 602 (или среди переходных фрагментов карты), в соответствии с вариантами осуществления настоящего технического решения, эти родительские фрагменты будут загружены как «дополнительные переходные фрагменты карты» как часть загрузки фрагментов 602 карты. На Фиг. 8 представлено три родительских фрагмента карты уровня масштабирования «zoom-2» (пронумерованы как 804, 806 и 808), которые не обладают всеми своими дочерними фрагментами карты среди фрагментов 602 карты (или среди переходных фрагментов карты), и, таким образом, они будут загружены вместе с фрагментами 602 как дополнительные переходные фрагменты.
[00166] И наоборот, оставшиеся показанные фрагменты карты из фрагментов карты 802 обладают всеми четырьмя дочерними фрагментами как часть дополнительных фрагментов карты и, следовательно, не будут включены в дополнительные переходные фрагменты карты.
[00167] Естественно, большее число фрагментов карты может быть включено (т.е. для уровней масштабирования «zoom-3», «zoom-4» и так далее). Выбор числа дополнительных уровней может быть продела сервером 112 изображения или клиентским устройством 102 (или их комбинацией) на основе размера кэш-памяти, вычислительных ресурсов и других факторов клиентского устройства 102 или сети 108 передачи данных. В некоторых вариантах осуществления настоящего технического решения, выбор родительских фрагментов карты, который основывается на том условии, что по меньшей мере один дочерний фрагмент карты родительского фрагмента карты будет загружен как переходный фрагмент карты, отображается на оригинальной области 604 просмотра.
[00168] Описанная выше архитектура способна выполнять способ загрузки фрагментов изображения на клиентское устройство 102. На Фиг. 9 представлена блок-схема способа 900, который выполняется в соответствии с неограничивающими вариантами осуществления настоящего технического решения.
[00169] Этап 902 - получение запроса на вид изображения, вид изображения связан с первой областью просмотра и первым уровнем разрешения
[00170] Способ 900 начинается на этапе 902, где клиентское устройство 102 получает запроса на вид 206 изображения, вид изображения связан с первой областью 604 просмотра и первым уровнем разрешения.
[00171] Как было описано выше, получение запроса на вид 206 изображения может быть выполнено множеством различных способов. Как показано на Фиг. 2, пользователь 104 может запрашивать клиентское устройство 102 отобразить интерфейс 200 пользователя и выбрать вид 206 изображения, который будет отображен. Реализация вида 206 изображения никак конкретно не ограничена. Например, пользователь 104 может ввести с помощью устройства ввода (не показано), например, клавиатуры или мыши, указание на желаемый вид 206 изображения (например, путем ввода адреса, названия точки интереса и так далее).
[00172] Этап 904 - передача серверу первого запроса на первый набор фрагментов изображения, первый набор фрагментов изображения позволяет клиентскому устройству отобразить запрошенный вид изображения на устройстве вывода, первый набор фрагментов изображения является частью множества фрагментов изображений первого уровня разрешения; первый запрос далее выполнен с возможностью инициировать сервер подготовить второй набор фрагментов изображения, второй набор фрагментов изображения позволяет клиентскому устройству отобразить другой вид изображения, который: связан со второй областью просмотра, которая, по меньшей мере частично, перекрывается с первой областью просмотра; и обладает вторым уровнем разрешения, ниже чем первый уровень разрешения; каждый данный фрагмент изображения из второго набора фрагментов изображений обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения первого уровня разрешения, как описано в иерархической структуре
[00173] На этапе 904 клиентское устройство 102 передает серверу 112 изображения первый запрос на первый набор фрагментов изображения, первый набор фрагментов изображения позволяет клиентскому устройству 102 отобразить запрошенный вид 206 изображения на устройстве вывода, первый набор фрагментов изображения является частью множества фрагментов изображения первого уровня разрешения.
[00174] Первый запрос далее выполнен с возможностью инициировать сервер 112 изображения подготовить второй набор фрагментов изображения, второй набор фрагментов изображения позволяет клиентскому устройству 102 отобразить другой вид 206 изображения, который: связан со второй областью 604 просмотра по меньшей и по меньшей мере частично перекрывается с первой областью 604 просмотра; и обладает вторым уровнем разрешения, который ниже чем первый уровень разрешения; каждый данный фрагмент изображения второго набора фрагментов изображения обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения первого уровня разрешения, как предписано иерархической структурой.
[00175] Этап 906 - получение от сервера: первого набора фрагментов изображения, второго набора фрагментов изображения, второй набор фрагментов изображения исключает подмножество второго набора фрагментов изображений, каждое подмножество второго набора обладает всеми четырьмя дочерними фрагментами изображения в первом наборе фрагментов изображений
[00176] На этапе 906 клиентское устройство 102 осуществляет получение от сервера 112 изображения: первого набора фрагментов изображения, второго набора фрагментов изображения, второй набор фрагментов изображения исключает подмножество второго набора фрагментов изображений, каждое подмножество второго набора обладает всеми четырьмя дочерними фрагментами изображения в первом наборе фрагментов изображений
[00177] Этап 908 - получение запроса на измену первой области просмотра на третью область просмотра
[00178] На этапе 908 клиентское устройство осуществляет получение запроса на измену первой области 604 просмотра на третью область просмотра. Пользователь 104 может указывать на свое желание поменять первую область 604 просмотра на третью область 604 просмотра при помощи любых средств, например, с помощью «перемещения» вида 206 изображения с помощью мыши, прокрутки, клавиш клавиатуры и так далее.
[00179] Этап 910 - отрисовка и отображение переходного вида, переходный вид создается из второго набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества второго набора фрагментов изображения
[00180] Далее, на этапе 910 клиентское устройство 102 осуществляет отрисовку и отображение переходного вида, переходный вид создается из второго набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества второго набора фрагментов изображения.
[00181] Этап 912 - передача серверу третьего запроса на фрагменты карты, присущие третьей области просмотра, которые запрошены для отображения третьей области просмотра
[00182] На этапе 912 клиентское устройство 102 осуществляет передачу серверу 112 изображения третьего запроса на фрагменты карты, присущие третьей области просмотра, которые запрошены для отображения третьей области просмотра.
[00183] Этап 914 - отрисовка другой области просмотра с помощью фрагментов карты, присущих третьей области просмотра
[00184] На этапе 914 клиентское устройство 102 осуществляет отрисовку другой области просмотра с помощью фрагментов карты, присущих третьей области просмотра. Фрагменты карты, присущие третьей области просмотра, были получены клиентским устройством 102 от сервера 112 изображения в ответ на третий запрос, переданный как часть этапа 912.
[00185] Этап 916 - замена переходного вида третьей областью просмотра
[00186] На этапе 916 клиентское устройство 102 заменяет переходный вид на третий вид изображения.
[00187] ПРОЦЕСС ЗАГРУЗКИ БОЛЕЕ ВЫСОКОГО УРОВНЯ МАСШТАБИРОВАНИЯ
[00188] С одной точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, в виде пронумерованных пунктов:
[00189] ПУНКТ 1 Способ (500) загрузки данных (210) о фрагментах данных с сервера (112) на клиентское устройство (102),
[00190] данные о фрагменте изображения организованы сервером в иерархическую структуру (300), причем каждый уровень (302, 304, 306, 308) иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения;
[00191] клиентское устройство включает в себя память и устройство вывода, клиентское устройство соединено с сервером через сеть (108) передачи данных, устройство вывода отображает первый вид (206) изображения, первый вид изображения связан с первой областью (220, 604) просмотра и первым уровнем разрешения, первый вид изображения создается с помощью части множества фрагментов изображения первого уровня, связанных с первым уровнем разрешения, эта часть определяется первой областью просмотра;
[00192] часть множества фрагментов изображения первого уровня была (i) загружена клиентским устройством с сервера и (ii) сохранена клиентским устройством в памяти, что позволяет их осуществлять отрисовку;
[00193] способ выполняется сервером;
[00194] способ включает в себя:
[00195] получение (502) от клиентского устройства запроса (160, 164) на множество фрагментов изображения второго уровня для замены множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше, чем первый уровень разрешения; каждый фрагмент изображения из множества фрагментов изображения первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов изображения второго уровня, как определено иерархической структурой;
[00196] определение (504) опорной точки (404, 408) первого вида изображения;
[00197] на основе опорной точки, определение (506) первого опорного фрагмента (402, 406) изображения для фрагментов изображения первого уровня;
[00198] с помощью иерархической структуры, определение (508) соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения;
[00199] передачу (510) клиентскому устройству второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
[00200] замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
[00201] замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
[00202] ПУНКТ 2 Способ по п. 1, далее включающий в себя, после передачи клиентскому устройству второго опорного фрагмента изображения:
[00203] определение первого соседнего фрагмента (406) изображения фрагментов изображения первого уровня, первый соседний фрагмент изображения является соседним для первого фрагмента изображения фрагментов изображения первого уровня;
[00204] с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня для первого соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения;
[00205] передачу клиентскому устройству второго соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
[00206] замещать в памяти первый соседний фрагмент изображения вторым соседним фрагментом изображения;
[00207] замещать на устройстве вывода первый соседний фрагмент изображения с помощью второго соседнего фрагмента изображения.
[00208] ПУНКТ 3 Способ по любому из пп. 1-2, далее включающий в себя, после передачи клиентскому устройству второго соседнего фрагмента изображения:
[00209] определение третьего соседнего фрагмента изображения фрагментов изображения первого уровня, третий соседний фрагмент изображения является соседним для первого фрагмента изображения фрагментов изображения первого уровня;
[00210] с помощью иерархической структуры, определение соответствующих четырех дочерних фрагментов изображения второго уровня для третьего соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют четвертый соседний фрагмент изображения;
[00211] передачу клиентскому устройству четвертого соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
[00212] замещать в памяти третий соседний фрагмент изображения четвертым соседним фрагментом изображения;
[00213] замещать на устройстве вывода третий соседний фрагмент изображения с помощью четвертого соседнего фрагмента изображения.
[00214] ПУНКТ 4 Способ по любому из пп. 1-3, в котором определение опорной точки первого вида изображения включает в себя получение указание на опорную точку от клиентского устройства.
[00215] ПУНКТ 5 Способ по п. 4, в котором указание на опорную точку соответствует центральной точке первой области просмотра.
[00216] ПУНКТ 6 Способ по п. 4, в котором указание на опорную точку соответствует положению курсора над первой областью просмотра.
[00217] ПУНКТ 7 Способ по любому из пп. 1-6, в котором тип иерархическая структура представляет собой структуру данных квадродерева.
[00218] ПУНКТ 8 Способ по любому из пп. 1-7, в котором фрагменты изображения представляют собой фрагменты карты, а уровень разрешения представляет собой уровень масштабирования.
[00219] ПУНКТ 9 Способ по любому из пп. 1-8, в котором фрагменты изображения представляют собой игровые текстуры, а уровень разрешения представляет собой уровень детализации.
[00220] ПУНКТ 10 Способ по любому из пп. 1-9, в котором передача клиентскому устройству второго опорного фрагмента изображения далее включает в себя передачу инструкции, которая инициирует клиентское устройство:
[00221] замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
[00222] замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
[00223] ПУНКТ 11 Способ по любому из пп. 1-9, в котором передача клиентскому устройству второго опорного изображения инициирует клиентское устройство:
[00224] замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
[00225] замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения;
[00226] этапы замены выполняются на основе исполняемой на компьютере инструкции, хранящейся на клиентском устройстве.
[00227] ПУНКТ 12 Способ по любому из пп. 1-11, в котором память представляет собой кэш-память.
[00228] ПУНКТ 13 Способ по любому из пп. 1-12, в котором передача клиентскому устройству второго опорного фрагмента изображения далее выполняется с возможностью инициировать клиентское устройство:
[00229] отрисовать второй опорный фрагмент изображения.
[00230] ПУНКТ 14 Процессор, который включает в себя хранилище памяти, соединенное с процессором, хранилище памяти сохраняет данные о фрагментах изображения; данные о фрагментах изображения организованы сервером в иерархическую структуру, причем каждый уровень иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения; интерфейс передачи данных позволяет серверу соединяться с клиентским устройством через сеть передачи данных, клиентское устройство включает в себя память и устройство вывода, устройство вывода отображает первый вид изображения, первый вид изображения создается с помощью части множества фрагментов изображения первого уровня, связанных с первым уровне разрешения, часть определяется первой областью просмотра; часть множества фрагментов изображения первого уровня была (i) загружена клиентским устройством с сервера и (ii) сохранена клиентским устройством в памяти, что позволяет осуществлять отрисовку; процессор выполнен с возможностью выполнять любые этапы по п. 1-13.
[00231] ПРОЦЕСС ЗАГРУЗКИ БОЛЕЕ НИЗКОГО УРОВНЯ МАСШТАБИРОВАНИЯ
[00232] С одной точки зрения, варианты осуществления настоящего технического решения можно изложить следующим образом, в виде пронумерованных пунктов:
[00233] ПУНКТ 1 Способ (900) загрузки фрагментов (210) изображения на клиентское устройство (102), которое обладает устройством вывода и соединено с сервером (112) через сеть (108) передачи данных, сервер сохраняет множество фрагментов изображения, организованных в иерархическую структуру (300), и каждый уровень (302, 304, 306, 308) иерархической структуры сохраняет подмножество фрагментов изображений, которые связаны с конкретным уровнем разрешения, способ выполняется на клиентском устройстве, способ включает в себя:
[00234] получение (902) запроса на вид (206) изображения, вид изображения связан с первой областью (220, 604) просмотра и первым уровнем разрешения;
[00235] передачу (904) серверу первого запроса (160, 164) на первый набор фрагментов изображения, первый набор фрагментов изображения позволяет клиентскому устройству отобразить запрошенный вид изображения на устройстве вывода, первый набор фрагментов изображения является частью множества фрагментов изображения первого уровня разрешения;
[00236] первый запрос далее выполнен с возможностью инициировать сервер подготовить второй набор фрагментов (702) изображения, второй набор фрагментов изображения позволяет клиентскому устройству отобразить другой вид изображения, который:
[00237] связан со второй областью просмотра, которая, по меньшей мере частично, перекрывается с первой областью просмотра; и
[00238] обладает вторым уровнем разрешения, ниже чем первый уровень разрешения;
[00239] каждый данный фрагмент (1004) изображения из второго набора фрагментов изображений обладает четырьмя дочерними фрагментами (1002) изображения во множестве фрагментов изображения первого уровня разрешения, как предписано иерархической структурой;
[00240] получение (906) от сервера:
[00241] первого набора фрагментов изображения;
[00242] второго набора фрагментов изображения, второй набор фрагментов изображения исключает подмножество второго набора фрагментов изображений, каждое подмножество второго набора обладает всеми четырьмя дочерними фрагментами изображения в первом наборе фрагментов изображений;
[00243] получение (908) запроса на измену первой области (704) просмотра на третью область (606) просмотра;
[00244] отрисовку и отображение переходного вида (910), переходный вид создается из второго набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества второго набора фрагментов изображения;
[00245] передачу (912) серверу третьего запроса (160, 164) на фрагменты карты, присущие третьей области просмотра, которые запрошены для отображения третьей области просмотра;
[00246] отрисовку (914) третьей области просмотра с помощью фрагментов карты, присущих третьей области просмотра;
[00247] замену (916) переходного вида на третью область просмотра.
[00248] ПУНКТ 2 Способ по п. 1, в котором передача первого запроса выполняется до получения запроса на изменение первой области просмотра на вторую область просмотра.
[00249] ПУНКТ 3 Способ по любому из пп. 1-2, в котором переходный вид отображается в момент выполнения передачи третьего запроса и отрисовки другого вида изображения.
[00250] ПУНКТ 4 Способ по любому из пп. 1-3, первый запрос далее выполнен с возможностью инициировать сервер подготовить:
[00251] третий набор фрагментов изображения, третий набор фрагментов изображения позволяет клиентскому устройству отобразить дальнейший вид изображения, дальнейший вид изображения связан с четвертой областью просмотра, дальнейший вид изображения связан с четвертой областью просмотра и по меньшей мере частично перекрывается с первой областью просмотра и второй областью просмотра; и
[00252] третий уровень разрешения ниже, чем первый уровень разрешения и второй уровень разрешения;
[00253] третий набор фрагментов изображения является частью множества фрагментов изображения на третьем уровне разрешения;
[00254] каждый данный фрагмент изображения третьего набора фрагментов изображения обладает четырьмя дочерними фрагментами изображения во множестве фрагментов изображения на втором уровне разрешения, как прописано в иерархической структуре;
[00255] и при этом получение от сервера далее включает в себя получение третьего набора фрагментов изображения, третий набор фрагментов изображения исключает подмножество третьего набора фрагментов изображения, каждый из подмножества третьего набора фрагментов изображений обладает всеми четырьмя дочерними фрагментами изображения во втором наборе фрагментом изображения;
[00256] в ответ на запрос изменения первой области просмотра на дальнейший вид:
[00257] отрисовка и отображение другого переходного вида, другой переходный вид состоит из третьего набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества третьего набора фрагментов изображения;
[00258] передача серверу четвертого запроса на фрагменты карты, присущие четвертой области просмотра, запрошенной для отображения;
[00259] отрисовка другого переходного вида, другой переходный вид состоит из третьего набора фрагментов изображения и соответствующих дочерних фрагментов изображения вместо подмножества третьего набора фрагментов изображения;
[00260] передача серверу четвертого запроса на завершение четвертого набора фрагментов изображения;
[00261] отрисовка дальнейшего вида изображения с помощью завершенного четвертого набора фрагментов изображения;
[00262] замена другого переходного вида с помощью дальнейшего вида изображения.
[00263] ПУНКТ 5 Способ по п. 4, дополнительно включающий в себя, в ответ на запрос изменение первой области просмотра на дальнейший вид изображения, завершение выполнения одного из этапов:
[00264] передачи серверу третьего запроса на завершение второго набора фрагментов изображения;
[00265] отрисовки другого вида изображения с помощью завершенного второго набора фрагментов изображения;
[00266] замены переходного вида с помощью другого вида изображения,
[00267] выполнение которого еще не завершено.
[00268] ПУНКТ 6 Способ по любому из пп. 1-5, в котором тип иерархическая структура представляет собой структуру данных квадродерева.
[00269] ПУНКТ 7 Способ по любому из пп. 1-6, в котором фрагменты изображения представляют собой фрагменты карты, а параметр уровня разрешения представляет собой уровень масштабирования.
[00270] ПУНКТ 7 Способ по любому из пп. 1-6, в котором фрагменты изображения представляют собой игровые текстуры, а параметр уровня разрешения представляет собой уровень детализации.
[00271] ПУНКТ 9 Электронное устройство (102), содержащее:
[00272] процессор;
[00273] устройство вывода для отображения по меньшей мере одного изображения;
[00274] интерфейс передачи данных для связи с сервером (112) через сеть (108) передачи данных, сервер сохраняет множество фрагментов (210) изображения, организованных в иерархическую структуру (300), и каждый уровень иерархической структуры (302 304, 306, 308) сохраняет подмножество фрагментов изображений, которые связаны с конкретным уровнем разрешения,
[00275] процессор выполнен с возможностью выполнять способ по любому из пп. 1-8.
[00276] Модификации и улучшения вышеописанных вариантов осуществления настоящего технического решения будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящего технического решения ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к способу загрузки данных о фрагменте изображения с сервера на клиентское устройство. Технический результат заключается в увеличении скорости отрисовки изображения на клиентском устройстве. Данные о фрагменте изображения организованы сервером в иерархическую структуру, причем каждый уровень иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения. При запросе клиентским устройством нового вида изображения с более высоким разрешением определяют опорную точку первого вида изображения. На основе опорной точки определяют первый опорный фрагмент изображения из фрагментов изображения первого уровня. С помощью иерархической структуры определяют соответствующие четыре дочерних фрагментаы изображения второго уровня, причем соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения. Передают клиентскому устройству второй опорной фрагмент изображения. Заменяют в памяти первый опорный фрагмент изображения на второй опорный фрагмент изображения. Заменяют на устройстве вывода первый опорный фрагмент изображения на второй опорный фрагмент изображения. 2 н. и 24 з.п. ф-лы, 10 ил.
1. Способ загрузки данных о фрагментах данных с сервера на клиентское устройство,
данные о фрагменте изображения организованы сервером в иерархическую структуру, причем каждый уровень иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения;
клиентское устройство включает в себя память и устройство вывода, клиентское устройство соединено с сервером через сеть передачи данных, устройство вывода отображает первый вид изображения, первый вид изображения связан с первой областью просмотра и первым уровнем разрешения, первый вид изображения создается с помощью части множества фрагментов изображения первого уровня, связанных с первым уровнем разрешения, эта часть определяется первой областью просмотра;
часть множества фрагментов изображения первого уровня была (i) загружена клиентским устройством с сервера и (ii) сохранена клиентским устройством в памяти, что позволяет осуществлять их отрисовку;
способ выполняется сервером;
способ включает в себя:
получение от клиентского устройства запроса на множество фрагментов изображения второго уровня для замены множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше, чем первый уровень разрешения; каждый фрагмент изображения из множества фрагментов изображения первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов изображения второго уровня, как определено иерархической структурой;
определение опорной точки первого вида изображения;
на основе опорной точки определение первого опорного фрагмента изображения для фрагментов изображения первого уровня;
с помощью иерархической структуры определение соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения;
передачу клиентскому устройству второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
2. Способ по п. 1, далее включающий в себя, после передачи клиентскому устройству второго опорного фрагмента изображения:
определение первого соседнего фрагмента изображения фрагментов изображения первого уровня, первый соседний фрагмент изображения является соседним для первого фрагмента изображения из фрагментов изображения первого уровня;
с помощью иерархической структуры определение соответствующих четырех дочерних фрагментов изображения второго уровня для первого соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения;
передачу клиентскому устройству второго соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
замещать в памяти первый соседний фрагмент изображения вторым соседним фрагментом изображения;
замещать на устройстве вывода первый соседний фрагмент изображения с помощью второго соседнего фрагмента изображения.
3. Способ по п. 2, далее включающий в себя, после передачи клиентскому устройству второго соседнего фрагмента изображения:
определение третьего соседнего фрагмента изображения фрагментов изображения первого уровня, третий соседний фрагмент изображения является соседним для первого фрагмента изображения фрагментов изображения первого уровня;
с помощью иерархической структуры определение соответствующих четырех дочерних фрагментов изображения второго уровня для третьего соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют четвертый соседний фрагмент изображения;
передачу клиентскому устройству четвертого соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
замещать в памяти третий соседний фрагмент изображения четвертым соседним фрагментом изображения;
замещать на устройстве вывода третий соседний фрагмент изображения с помощью четвертого соседнего фрагмента изображения.
4. Способ по п. 1, в котором определение опорной точки первого вида изображения включает в себя получение указания на опорную точку от клиентского устройства.
5. Способ по п. 4, в котором указание на опорную точку соответствует центральной точке первой области просмотра.
6. Способ по п. 4, в котором указание на опорную точку соответствует положению курсора над первой областью просмотра.
7. Способ по п. 1, в котором тип иерархическая структура представляет собой структуру данных квадродерева.
8. Способ по п. 1, в котором фрагменты изображения представляют собой фрагменты карты, а уровень разрешения представляет собой уровень масштабирования.
9. Способ по п. 1, в котором фрагменты изображения представляют собой игровые текстуры, а уровень разрешения представляет собой уровень детализации.
10. Способ по п. 1, в котором передача клиентскому устройству второго опорного фрагмента изображения далее включает в себя передачу инструкции, которая инициирует клиентское устройство:
замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
11. Способ по п. 1, в котором передача клиентскому устройству второго опорного изображения инициирует клиентское устройство:
замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения;
этапы замены выполняются на основе исполняемой на компьютере инструкции, хранящейся на клиентском устройстве.
12. Способ по п. 1, в котором память представляет собой кэш-память.
13. Способ по п. 1, в котором передача клиентскому устройству второго опорного фрагмента изображения далее выполняется с возможностью инициировать клиентское устройство:
отрисовать второй опорный фрагмент изображения.
14. Сервер включает в себя:
процессор;
хранилище данных соединено с процессором, хранилище данных предназначено для сохранения данных о фрагменте изображения; данные о фрагменте изображения организованы сервером в иерархическую структуру, причем каждый уровень иерархической структуры сохраняет подмножество фрагментов изображения, связанных с конкретным уровнем разрешения;
интерфейс связи позволяет серверу соединяться с клиентским устройством через сеть передачи данных, клиентское устройство включает в себя память и устройство вывода, устройство вывода отображает первый вид изображения, первый вид изображения связан с первой областью просмотра и первым уровнем разрешения, первый вид изображения создается с помощью части множества фрагментов изображения первого уровня, связанных с первым уровнем разрешения, эта часть определяется первой областью просмотра;
часть множества фрагментов изображения первого уровня была (i) загружена клиентским устройством с сервера и (ii) сохранена клиентским устройством в памяти, что позволяет осуществлять их отрисовку;
процессор выполнен с возможностью осуществлять:
получение от клиентского устройства запроса на множество фрагментов изображения второго уровня для замены множества фрагментов изображения первого уровня для отображения второго вида изображения, второй вид изображения связан со второй областью просмотра и вторым уровнем разрешения, второй уровень разрешения больше, чем первый уровень разрешения; каждый фрагмент изображения из множества фрагментов изображения первого уровня обладает четырьмя дочерними фрагментами изображения второго уровня во множестве фрагментов изображения второго уровня, как определено иерархической структурой;
определение опорной точки первого вида изображения;
на основе опорной точки определение первого опорного фрагмента изображения для фрагментов изображения первого уровня;
с помощью иерархической структуры определение соответствующих четырех дочерних фрагментов изображения второго уровня, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения;
передачу клиентскому устройству второго опорного фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
15. Сервер по п. 14, в котором процессор выполнен с возможностью, после передачи клиентскому устройству второго опорного фрагмента изображения, осуществлять:
определение первого соседнего фрагмента изображения фрагментов изображения первого уровня, первый соседний фрагмент изображения является соседним для первого фрагмента изображения фрагментов изображения первого уровня;
с помощью иерархической структуры определение соответствующих четырех дочерних фрагментов изображения второго уровня для первого соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют второй опорный фрагмент изображения;
передачу клиентскому устройству второго соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
замещать в памяти первый соседний фрагмент изображения вторым соседним фрагментом изображения;
замещать на устройстве вывода первый соседний фрагмент изображения с помощью второго соседнего фрагмента изображения.
16. Сервер по п. 15, в котором процессор выполнен с возможностью, после передачи клиентскому устройству второго соседнего фрагмента изображения, осуществлять:
определение третьего соседнего фрагмента изображения фрагментов изображения первого уровня, третий соседний фрагмент изображения является соседним для первого фрагмента изображения фрагментов изображения первого уровня;
с помощью иерархической структуры определение соответствующих четырех дочерних фрагментов изображения второго уровня для третьего соседнего фрагмента изображения, соответствующие четыре дочерних фрагмента изображения второго уровня формируют четвертый соседний фрагмент изображения;
передачу клиентскому устройству четвертого соседнего фрагмента изображения, передача выполнена с возможностью инициировать клиентское устройство:
замещать в памяти третий соседний фрагмент изображения четвертым соседним фрагментом изображения;
замещать на устройстве вывода третий соседний фрагмент изображения с помощью четвертого соседнего фрагмента изображения.
17. Сервер по п. 14, в котором для определения опорной точки первого вида изображения процессор выполнен с возможностью осуществлять получение указания на опорную точку от клиентского устройства.
18. Сервер по п. 17, в котором указание на опорную точку соответствует центральной точке первой области просмотра.
19. Сервер по п. 17, в котором указание на опорную точку соответствует положению курсора над первой областью просмотра.
20. Сервер по п. 14, в котором тип иерархическая структура представляет собой структуру данных квадродерева.
21. Сервер по п. 14, в котором фрагменты изображения представляют собой фрагменты карты, а уровень разрешения представляет собой уровень масштабирования.
22. Сервер по п. 14, в котором фрагменты изображения представляют собой игровые текстуры, а уровень разрешения представляет собой уровень детализации.
23. Сервер по п. 14, в котором для передачи клиентскому устройству второй опорной точки, процессор выполнен с возможностью осуществлять передачу инструкции, которая инициирует клиентское устройство:
замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения.
24. Сервер по п. 14, в котором передача клиентскому устройству второго опорного изображения инициирует клиентское устройство:
замещать в памяти первый опорный фрагмент изображения вторым опорным фрагментом изображения;
замещать на устройстве вывода первый опорный фрагмент изображения с помощью второго опорного фрагмента изображения;
этапы замены выполняются на основе исполняемой на компьютере инструкции, хранящейся на клиентском устройстве.
25. Сервер по п. 14, в котором память представляет собой кэш-память.
26. Сервер по п. 14, в котором передача клиентскому устройству второй опорной точки далее выполняется с возможностью инициировать клиентское устройство:
отрисовать второй опорный фрагмент изображения.
Способ приготовления лака | 1924 |
|
SU2011A1 |
US 8352480 B2, 08.01.2012 | |||
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
ОБНОВЛЕНИЕ ФАЙЛА МАНИФЕСТА ДЛЯ СЕТЕВОЙ ПОТОКОВОЙ ПЕРЕДАЧИ КОДИРОВАННЫХ ВИДЕОДАННЫХ | 2011 |
|
RU2558615C2 |
Авторы
Даты
2017-10-02—Публикация
2016-04-04—Подача