Способ и сервер для определения порядка отрисовки карты

Иллюстрации

Показать все

Группа изобретений относится к технологиям отрисовки карт на электронных устройствах. Техническим результатом является расширение арсенала технических средств, направленных на отрисовку карт. Предложен способ определения порядка отрисовки карты, включающей в себя множество картографических элементов, выполняемый на сервере, связанном с клиентским устройством, связанным с пользователем. Способ содержит этап, на котором осуществляют получение сервером данных устройства и пользовательских данных, причем данные устройства указывают на характеристики клиентского устройства, а пользовательские данные указывают на поведение пользователя. Далее, согласно способу, осуществляют определение сервером приоритетных картографических элементов и дополнительных картографических элементов, представляющих собой дополнительные фрагменты карты и по меньшей мере дополнительные данные API или дополнительные данные ресурсов, представляющие собой информацию о статических, динамических и/или интерактивных картографических элементах, во множестве картографических элементов на основе по меньшей мере либо данных устройства, либо пользовательских данных. 2 н. и 16 з.п. ф-лы, 4 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ

[01] Описанные здесь системы и способы относятся к отрисовке карт и, более конкретно, к извлечению и отрисовке элементов карты в предписанном порядке.

УРОВЕНЬ ТЕХНИКИ

[02] Карты становятся более популярны как источники для отображения информации, но при этом объем и сложность отображаемой информации все возрастает. Сейчас становится сложнее поместить на карту широкий диапазон данных - пользователь, просматривающий такую карту, часто теряется в потоках информации после ее отрисовки.

[03] Эта проблема встает особенно остро в случае сервисов, использующих карты или определение местоположения. Все более увеличивающееся количество деталей для отображения и потенциально бесконечное количество источников этих данных приводят к большим сложностям отображения такой информации на карте логически, таким образом, чтобы пользователь мог их увидеть, и чтобы эти данные оказались ему полезны.

[04] Кроме того, некоторым пользователям может быть даже не нужна все информация, которая отображается на карте для конкретной задачи. Передача всей информации для отображения может потребовать значительного количества времени, особенно, если часть информации для отображения интерактивна или динамично меняется. Например, картографические приложения или веб-браузеры обычно загружают картографические данные на клиентское устройство по сети в ответ на указание того, что пользователь желает просмотреть карту. Стандартный способ загрузки картографических данных заключается в том, что клиентское устройства запрашивает данные у удаленного сервера по сети, а сервер передает все картографические данные сразу на клиентское устройство.

[05] Картографические данные обычно хранятся блоками, которые также называются «фрагментами карты» (англ. "map tiles"), причем количество фрагментов карты может увеличиваться изменением масштаба. Удаленный сервер предоставляет все фрагменты карты для конкретного местоположения или области на клиентское устройство для сохранения и/или отрисовки карты на клиентском устройстве. Клиентское устройство также может запрашивать дополнительную информацию для встраивания интерактивной карты, например, дополнительные источники и дополнительные интерфейсы прикладного программирования (APIs). Однако, чем большее число фрагментов карты и дополнительных данных нужно для отображения интерактивной карты, тем дольше извлечение и отрисовка, особенно если сеть передает данные медленно или нестабильно.

РАСКРЫТИЕ

[06] Задачей предлагаемой технологии является устранение по меньшей мере некоторых недостатков, присущих известному уровню техники.

[07] Варианты осуществления настоящей технологии были разработаны на основе предложения разработчиков, позволяющего уменьшить количество времени, необходимого для отображения полезной картографической информации пользователю. Без ограничения какой-то конкретной теорией настоящая технология (по меньшей мере некоторые варианты ее осуществления) дает возможность создавать и передавать команды для частичного и немедленного отображения карты с полезной и/или необходимой и/или требуемой для пользователя информацией для отрисовки карты или интерактивных элементов, в то время как остальная карта и остальные интерактивные элементы извлекаются и/или отрисовываются клиентским устройством позже.

[08] В некоторых вариантах осуществления настоящей технологии предлагается способ отрисовки карты. Карта включает в себя множество картографических элементов, а клиентское устройство связано с пользователем. Способ выполняется на сервере и включает в себя получение сервером данных устройства и пользовательских данных. Данные устройства указывают на характеристики клиентского устройства, а пользовательские данные указывают на поведение пользователя. Способ также включает в себя определение сервером приоритетных картографических элементов и дополнительных картографических элементов в множестве картографических элементов на основе по меньшей мере либо данных устройства, либо пользовательских данных. Приоритетные картографические элементы включают в себя приоритетные фрагменты карты и по меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов. Способ также включает в себя создание сервером команд порядка извлечения на основе приоритетных картографических элементов и дополнительных картографических элементов и передачу сервером команд порядка извлечения на клиентское устройство. Команды порядка извлечения необходимы для инициирования извлечения клиентским устройством множества картографических элементов в предписанном порядке извлечения, причем приоритетные картографические элементы извлекаются перед дополнительными картографическими элементами.

[09] В некоторых вариантах осуществления способа способ дополнительно включает в себя передачу сервером множества картографических элементов в предписанном порядке извлечения на клиентское устройство.

[10] В некоторых вариантах осуществления способа дополнительные картографические элементы включают в себя дополнительные фрагменты карты.

[11] В некоторых вариантах осуществления способа дополнительные картографические элементы дополнительно включают в себя по меньшей мере либо дополнительные данные API, либо дополнительные данные ресурсов.

[12] В некоторых вариантах осуществления способа определение приоритетных картографических элементов и дополнительных картографических элементов дополнительно включает в себя определение сервером конкретной подгруппы картографических элементов. Конкретная подгруппа картографических элементов включает в себя приоритетные картографические элементы, причем конкретная подгруппа картографических элементов необходима для отрисовки карты на основе по меньшей мере либо характеристик клиентского устройства, либо поведения пользователя.

[13] В некоторых вариантах осуществления способа определение приоритетных картографических элементов и дополнительных картографических элементов дополнительно включает в себя определение сервером конкретной подгруппы фрагментов карты, по меньшей мере либо конкретную подгруппу данных API, либо конкретную подгруппу данных ресурсов, причем конкретная подгруппа фрагментов карты включает в себя приоритетные фрагменты карты, а конкретная подгруппа данных API включает в себя приоритетные данные API, а конкретная подгруппа данных ресурсов включает в себя приоритетные данные ресурсов. Конкретная подгруппа фрагментов карты и по меньшей мере либо конкретная подгруппа данных API, либо конкретная подгруппа данных ресурсов необходима для отрисовки карты на основе характеристик клиентского устройства и поведения пользователя.

[14] В некоторых вариантах осуществления способа передача включает в себя, в ответ на запрос от клиентского устройства на отрисовку карты, объединение сервером команд порядка извлечения в документ html, причем документ html включает в себя исполняемый на компьютере код для отрисовки карты, и отправку сервером документа html на клиентское устройство для отрисовки карты на клиентском устройстве.

[15] В некоторых вариантах осуществления способа объединение команд порядка извлечения также дополнительно включает в себя отрисовку сервером приоритетных фрагментов карты и объединение сервером отрисованных приоритетных фрагментов карты в документе html. Команды порядка извлечения необходимы для инициирования извлечения клиентским устройством по меньшей мере либо приоритетных данных API, либо приоритетных данных ресурсов в предписанном порядке извлечения, причем по меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов извлекаются перед дополнительными картографическими элементами.

[16] В некоторых вариантах осуществления способа способ также включает в себя создание сервером команд порядка отрисовки на основе приоритетных картографических элементов и дополнительных картографических элементов и передачу сервером команд порядка отрисовки на клиентское устройство. Команды порядка отрисовки необходимы для инициирования отрисовки клиентским устройством множества картографических элементов в предписанном порядке отрисовки, причем приоритетные картографические элементы отрисовываются перед дополнительными картографическими элементами.

[17] В некоторых вариантах осуществления настоящей технологии предлагается сервер для отрисовки карты. Карта включает в себя множество картографических элементов, клиентское устройство связано с пользователем, а сервер выполнен с возможностью осуществлять: получение данных устройства и пользовательских данных, причем данные устройства указывают на характеристики клиентского устройства, а пользовательские данные указывают на поведение пользователя. Сервер также выполнен с возможностью определять приоритетные картографические элементы и дополнительные картографические элементы в множестве картографических элементов на основе по меньшей мере либо данных устройства, либо пользовательских данных. Приоритетные картографические элементы включают в себя приоритетные фрагменты карты и по меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов. Сервер также выполнен с возможностью создавать команды порядка извлечения на основе приоритетных картографических элементов и дополнительных картографических элементов. Сервер также выполнен с возможностью передавать команды порядка извлечения на клиентское устройство, причем команды порядка извлечения необходимы для инициирования извлечения клиентским устройством множества картографических элементов в предписанном порядке извлечения, причем приоритетные картографические элементы извлекаются перед дополнительными картографическими элементами.

[18] В некоторых вариантах осуществления сервера сервер дополнительно выполнен с возможностью передачи множества картографических элементов в предписанном порядке извлечения на клиентское устройство.

[19] В некоторых вариантах осуществления сервера дополнительные картографические элементы включают в себя дополнительные фрагменты карты.

[20] В некоторых вариантах осуществления сервера дополнительные картографические элементы дополнительно включают в себя по меньшей мере либо дополнительные данные API, либо дополнительные данные ресурсов.

[21] В некоторых вариантах осуществления сервера для определения приоритетных картографических элементов и дополнительных картографических элементов сервер выполнен с дополнительной возможностью определять конкретную подгруппу картографических элементов. Конкретная подгруппа картографических элементов включает в себя приоритетные картографические элементы. Конкретная подгруппа картографических элементов необходима для отрисовки карты на основе по меньшей мере либо характеристик клиентского устройства, либо поведения пользователя.

[22] В некоторых вариантах осуществления сервера для определения приоритетных картографических элементов и дополнительных картографических элементов сервер выполнен с дополнительной возможностью определять конкретную подгруппу фрагментов карты, по меньшей мере либо конкретный набор данных API, либо конкретный набор данных ресурсов. Конкретная подгруппа фрагментов карты включает в себя приоритетные фрагменты карты, конкретная подгруппа данных API включает в себя приоритетные данные API, а конкретная подгруппа данных ресурсов включает в себя приоритетные данные ресурсов. Конкретная подгруппа фрагментов карты и по меньшей мере либо конкретная подгруппа данных API, либо конкретная подгруппа данных ресурсов необходима для отрисовки карты на основе характеристик клиентского устройства и поведения пользователя.

[23]. В некоторых вариантах осуществления сервера, для передачи сервер выполнен с возможностью, в ответ на запрос от клиентского устройства на отрисовку карты, объединения команд порядка извлечения в документ html, причем документ html включает в себя исполняемый на компьютере код для отрисовки карты. Сервер также выполнен с возможностью, в ответ на запрос от клиентского устройства на отрисовку карты, отправлять документ html на клиентское устройство для отрисовки карты на клиентском устройстве.

[24] В некоторых вариантах осуществления сервера, для объединения команд порядка извлечения сервер выполнен с возможностью отрисовывать приоритетные фрагменты карты и объединять отрисованные приоритетные фрагменты карты в документе html. В данном случае команды порядка извлечения необходимы для инициирования извлечения клиентским устройством по меньшей мере либо приоритетных данных API, либо приоритетных данных ресурсов в предписанном порядке извлечения. По меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов извлекаются перед дополнительными картографическими элементами.

[25] В некоторых вариантах осуществления сервера сервер также выполнен с возможностью создавать команды порядка отрисовки на основе приоритетных картографических элементов и дополнительных картографических элементов. Сервер также выполнен с возможностью передавать команды порядка отрисовки на клиентское устройство, причем команды порядка извлечения необходимы для инициирования отрисовки клиентским устройством множества картографических элементов в предписанном порядке отрисовки. Приоритетные картографические элементы отрисовываются перед дополнительными картографическими элементами.

[26] В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от клиентских устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные команды или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может быть одним сервером или несколькими серверами; оба варианта включены в выражение «по меньшей мере один сервер».

[27] В контексте настоящего описания, если конкретно не указано иное, «клиентское устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Примерами клиентских устройств, среди прочего, являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты. Следует иметь в виду, что устройство, ведущее себя как клиентское устройство в настоящем контексте, может вести себя как сервер по отношению к другим клиентским устройствам. Использование выражения «клиентское устройство» не исключает возможности использования множества клиентских устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного способа.

[28] В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. В контексте настоящего описания слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной взаимосвязи между этими существительными.

[29] В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).

[30] В контексте настоящего описания, если конкретно не указано иное, термин «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.

[31] В контексте настоящего описания, если четко не указано иное, «указание» информационного элемента может представлять собой сам информационный элемент или указатель, отсылку, ссылку или другой косвенный способ, позволяющий получателю указания найти сеть, память, базу данных или другой машиночитаемый носитель, из которого может быть извлечен информационный элемент. Например, указание файла может включать в себя сам файл (т.е. его содержимое), или же оно может являться уникальным дескриптором файла, идентифицирующим файл по отношению к конкретной файловой системе, или какими-то другими средствами передавать получателю указание на сетевую папку, адрес памяти, таблицу в базе данных или другое место, в котором можно получить доступ к файлу. Как будет понятно специалистам в данной области техники, степень точности, необходимая для такого указания, зависит от степени первичного понимания того, как должна быть интерпретирована информация, которой обмениваются получатель и отправитель указания. Например, если до передачи данных между отправителем и получателем понятно, что указание информационного элемента принимает вид ключа базы данных для записи в конкретной таблице заранее установленной базы данных, включающей в себя информационный элемент, то передача ключа базы данных - это все, что необходимо для эффективной передачи информационного элемента получателю, несмотря на то, что сам по себе информационный элемент не передавался между отправителем и получателем указания. Каждый вариант осуществления настоящей технологии преследует по меньшей мере одну из вышеупомянутых целей и/или объектов, но наличие всех не является обязательным. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, отдельно не указанным здесь.

[32] Дополнительные и/или альтернативные характеристики, аспекты и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[33] Для лучшего понимания настоящей технологии, а также других ее аспектов и характерных черт, сделана ссылка на следующее описание, которое должно использоваться в сочетании с прилагаемыми чертежами, где:

[34] На Фигуре 1 представлена принципиальная схема системы для отрисовки карты;

[35] На Фигуре 2 представлено отображение первого изображения карты в приложении после инициации стандартного режима отрисовки сервером, как предусматривается некоторыми вариантами осуществления настоящей технологии;

[36] На Фигуре 3 представлено отображение приоритезированной карте и приоретезированных картографических элементов в приложении после инициации приоритетного режима отрисовки сервером, как предусматривается некоторыми вариантами осуществления настоящей технологии; и

[37] На Фигуре 4 представлена блок-схема способа отрисовки карты на клиентском устройстве, как предусмотрено в некоторых вариантах осуществления настоящей технологии.

ОСУЩЕСТВЛЕНИЕ

[38] На Фиг. 1 представлена принципиальная съема система 100, которая функционально соединена через сеть 100, как показано в некоторых вариантах осуществления настоящей технологии. Важно иметь в виду, что нижеследующее описание системы 100 представляет собой описание иллюстративных вариантов осуществления настоящей технологии. Таким образом, следующее описание должно рассматриваться только как описание иллюстративного варианта осуществления настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы 100 также могут быть охвачены нижеследующим описанием. Целью этого является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие модификации. Кроме того, те случаи, в которых не были представлены примеры модификаций, не должны интерпретироваться как то, что никакие модификации невозможны, и/или что то, что было описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система 100 представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобных случаях этот вариант представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.

[39] В некоторых вариантах осуществления настоящей технологии система 100 может включать в себя клиентское устройство 102, сервер 106 и хранилище 104; все вышеперечисленное будет далее описано более подробно с использованием некоторых примерных вариантов осуществления настоящей технологии. Как показано на Фиг. 1, клиентское устройство 102 и сервер 106 функционально соединены через сеть 110. В другом варианте осуществления настоящей технологии сервер 106 также может быть функционально соединен с хранилищем 104 по сети 110.

[40] Реализация соединения через сеть 110 никак конкретно не ограничена и будет зависеть от того, какие устройства подключены к сети 110. В качестве неограничивающего примера, соединение сервера 106 с сетью 110 может быть выполнено с помощью проводного соединения (например, соединение на основе сети Ethernet). В то же время другие устройства могут быть соединены другим способом. В тех примерах, где клиентское устройство 102 представляет собой беспроводное устройство связи (например, смартфон), соединение представляет собой беспроводную сеть передачи данных (например, среди прочего, линию передачи данных 3G, линию передачи данных 4G, беспроводной интернет Wireless Fidelity или коротко WiFi®, Bluetooth® и т.п.).

[41] Как было упомянуто ранее, система 100 может включать в себя сервер 106. Сервер 106 может представлять собой обычный компьютерный сервер. В примере варианта осуществления настоящей технологии сервер 106 может представлять собой сервер Dell™ PowerEdge™, на котором используется операционная система Microsoft™ Windows Server™. Излишне говорить, что сервер 106 может представлять собой любое другое подходящее аппаратное и/или прикладное программное, и/или системное программное обеспечение или их комбинацию. В представленном варианте осуществления настоящей технологи, не ограничивающем ее объем, сервер 106 является одиночным сервером. В других вариантах осуществления настоящей технологии, не ограничивающих ее объем, функциональность сервера 106 может быть разделена и может выполняться с помощью нескольких серверов. В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью хранить машиночитаемые инструкции, при выполнении которых может происходить выполнение и/или осуществление некоторых или всех функций настоящей технологии.

[42] Сервер 106 может быть выполнен с возможностью хранить один или несколько картографических сервисов, которые предоставляют картографические данные на различные устройства, например, на клиентское устройство 102. Например, сервер 106 может быть выполнен с возможностью хранить картографический сервис Yandex.Maps™. В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью предоставлять картографические данные на клиентское устройство 102 после получения начального запроса 120 на отображение карты от клиентского устройства 102.

[43] Варианты осуществления сервера 106 хорошо известны. Таким образом, достаточно отметить, что сервер 106 может включать в себя, среди прочего, интерфейс сетевой связи (например, модем, сетевую карту и тому подобное) для двусторонней связи по сети 110; и процессоры (не изображены), соединенные с соответствующими интерфейсами сетевой связи, причем процессоры выполнены с возможностью выполнять различные процедуры, включая те, что описаны ниже. С этой целью процессоры могут сохранять и/или обладать доступом к машиночитаемым инструкциям, которые упоминались ранее.

[44] Как было упомянуто выше, система 100 может включать в себя клиентское устройство 102. Варианты осуществления клиентского устройства 102 никак конкретно не ограничены, но, в качестве примера, клиентское устройство 102 может взаимодействовать с сервером 106, получая ввод пользователя 101 и получая и передавая данные через сеть 110. Клиентское устройство 102 может, в качестве неограничивающего примера, представлять собой настольный компьютер, ноутбук, смартфон (например, Apple iPhoneTM or a Samsung Galaxy S5TM), персональный цифровой органайзер (PDA) или другое устройство, включающее в себя функциональность вычисления и возможности передачи данных.

[45] Клиентское устройство 102 может включать в себя внутренние аппаратные компоненты, включая один или несколько одно- или многоядерных процессоров, которые коллективно представлены здесь как процессор (не показан), ОЗУ (не показано), а также сетевой интерфейс (не показан) для связи с сервером 106. Клиентское устройство 102 может также включать в себя GPS-приемник (не изображен) для получения сигнала GPS от одного или нескольких спутников GPS, таких как спутник 199, изображенный на Фигуре 1.

[46] Клиентское устройство 102 может быть выполнено с возможностью осуществлять картографическое приложение, например, приложение 103, или любое другое приложение (включая любой браузер), который дает возможность пользователю 101 получать доступ к картографическому сервису, например, к картографическому сервису, который хранится на сервере 106, по сети 110. В некоторых вариантах осуществления настоящей технологии для получения доступа к картографическому сервису, который хранится на сервере 106, пользователю 101 может быть направлен запрос на авторизацию в своем профиле, связанном с картографическим сервером, который хранится на сервере 106. В некоторых вариантах осуществления настоящей технологии клиентское устройство 102 может быть выполнено с возможностью хранить данные, связанные с устройством, и пользовательские данные, связанные с пользователем 101.

[47] В общем случае, данные устройства указывают на характеристики клиентского устройства 102. Например, данные устройства могут включать в себя информацию о:

- скорости подключения к сети 110 (например, скорость подключения к интернету);

- стабильности подключения к сети 110 (например, стабильность подключения к интернету);

- физической памяти клиентского устройства 102;

- разрешения экрана клиентского устройства 102;

- размере области просмотра приложения 103, выполняемого клиентским устройством 102;

- географическом положении клиентского устройства 102 (эта информация может быть получена клиентским устройством от спутника 199); и

- другую информацию.

[48] Следует отметить, что данные устройства могут включать в себя информацию о дополнительных характеристиках клиентского устройства 102, иных, чем те, что упомянуты выше.

[49] В общем случае, пользовательские данные указывают на пользовательское поведение пользователя 101. Например, пользовательские данные могут включать в себя информацию о различных метриках, которые представляют взаимодействия пользователя 101 с приложением 103. Например, пользовательские данные могут включать в себя информацию о:

- гиперссылках, которые были ранее выбраны пользователем 101;

- действиях «перетаскивания», выполненных пользователем 101 ранее в приложении 103;

- выборе данных интерактивных элементов, выполненном ранее пользователем 101 в приложении 103; и

- другую информацию.

[50] Следует отметить, что пользовательские данные могут включать в себя информацию о других метриках, которые описывают пользовательское поведение пользователя 101 в приложении 103, иных, чем те, что упомянуты выше. Пользовательские данные могут быть отслежены, проанализированы и сохранены приложением 103.

[51] Как показано на Фиг. 1, хранилище 104 функционально соединено с сервером 106, но в альтернативных вариантах осуществления технологии хранилище 104 может быть функционально соединено с сервером 106 через сеть 110, что не является отклонением от настоящей технологии. Несмотря на то, что хранилище 104 представлено здесь схематически как одиночный элемент, подразумевается, что хранилище 104 может быть реализовано в распределенном виде, например, хранилище 104 может обладать различными компонентами, каждый компонент выполнен под конкретный тип извлечения или хранения. Хранилище 104 может представлять собой любой структурированный набор данных, не зависящий от конкретной структуры или аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом становятся доступны для использования. Хранилище 104 может находиться на том же оборудовании, что выполняет процесс, который сохраняет или использует информацию, хранящуюся в хранилище 104, или же оно может находиться на отдельном оборудовании, например, сервере 106. В общем случае, хранилище 104 может получать данные от сервера 106 для их сохранения и может предоставлять сохраненные данные серверу 106 для их использования.

[52] Хранилище 104 может быть выполнено с возможностью хранить множество картографических элементов, связанных с картой, которую необходимо отрисовать. В общем случае множество картографических элементов может включать в себя все данные, которые необходимы для отрисовки карты в приложении 103. В одном варианте осуществления настоящей технологии множество картографических элементов включают в себя фрагменты карты, данные API и данные ресурсов. В некоторых вариантах осуществления настоящей технологии хранилище 104 может быть выполнено с возможностью хранить данные, связанные с устройством 102, и пользовательские данные, связанные с пользователем 101.

[53] В общем случае фрагменты карты могут представлять всю карту на каждом уровне масштабирования и могут формировать изображение карты, отображаемое пользователю 101 на клиентском устройстве 102. Каждый фрагмент карты может включать в себя уровень детализации (например, информацию о фрагменте карты), показывающий различные характеристики на этом фрагменте карты, например, характеристики местности, отвечающие ее масштабу, включая крупные города, небольшие города, деревни, здания, дороги, железные дороги, пешеходные дороги, озера, реки, леса, достопримечательности, рельеф, трехмерные характеристики поверхности, особенности местности и так далее. Каждый фрагмент карты может также включать в себя уровень качества (например, разрешение фрагмента карты), относящийся к графическому разрешению различных характеристик.

[54] В общем случае, данные ресурсов могут включать в себя информацию о статических элементах, динамических элементах и интерактивных элементах, которые должны быть отображены на карте. Например, данные ресурсов могут включать в себя информацию о метках, топонимах, связанных с различными характеристиками и местами на карте, панель инструментов, панель поиска, боковую панель, различные изображения, географические координаты, адреса и т.д. Достаточно отметить, что данные ресурсов могут включать в себя данные о любых или всех разнообразных ресурсах, которые необходимы для отрисовки карты в приложении 103.

[55] В общем случае, данные API могут включать в себя информацию о вставке карты в веб-браузер или другое приложение, например, приложение 103, и размещении на ней объектов. Данные API могут включать в себя набор компонентов Java Script для исполнения интерактивных элементов на карте в приложении 103. С помощью данных API можно отобразить карту с различными географическими объектами, функцией поиска адреса, составлением маршрута, прокладыванием персонализированного маршрута и т.д. В некоторых вариантах осуществления настоящей технологии с помощью данных API можно осуществить преобразование географических координат на карте в адрес и наоборот. В других вариантах осуществления технологии, с помощью данных API можно определить координаты меток и/или топонимов, связанных с различными характеристиками и местами на карте. Излишне говорить, что данные API могут включать в себя информацию о том, как должны быть реализованы данные ресурсов, и с их помощью можно реализовать вставку этих данных в карту для отображения интерактивных элементов на карте.

[56] Клиентское устройство 102 может быть выполнено с возможностью создавать начальный запрос 120 для отображения карты в ответ на то, что пользователь 101 открывает приложение 103 на клиентском устройстве 102. В других вариантах осуществления технологии клиентское устройство 102 может быть выполнено с возможностью создавать начальный запрос 120 после того, как пользователь 102 авторизовался в своем профиле, связанном с картографическим сервером, на котором хранится сервер 106, с помощью приложения 103. Например, начальный запрос 120 может быть пакетом данных, включающим в себя необходимую информацию (например, геолокационные координаты и т.д.) для запроса на отображение карты на клиентском устройстве 102 и выполненным с возможностью отправки необходимой информации по сети 110. Клиентское устройство 102 может быть выполнено с возможностью отправлять начальный запрос 120 на сервер 106.

[57] В некоторых вариантах осуществления настоящей технологии в ответ на получение начального запроса 120 сервер 106 может быть выполнен с возможностью запрашивать данные устройства, связанные с клиентским устройством 102, и пользовательские данные, связанные с пользователем 101. В результате сервер 106 может быть выполнен с возможностью создавать серверный запрос 130 на извлечение данных устройства и пользовательских данных. В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью создавать первый северный запрос и второй серверный запрос вместо серверного запроса 130 на извлечение данных устройства и пользовательских данных, соответственно. В качестве альтернативы данные устройства и пользовательские данные могут быть вложены в начальный запрос 120.

[58] В некоторых вариантах осуществления настоящей технологии серверный запрос 130 может быть отправлен на клиентское устройство 102 для получения данных устройства и пользовательских данных. После получения серверного запроса 130 клиентское устройство 102 может быть выполнено с возможностью создавать пакет 140 клиентских данных, включающий в себя данные устройства и пользовательские данные. Клиентское устройство 102 может затем отправить пакет 140 клиентских данных по сети 110 серверу 106. Хотя на Фигуре 1 серверный запрос 130 отправлен на клиентское устройство 102, в других вариантах осуществления настоящей технологии серверный запрос 130 может быть отправлен хранилищу 104 для получения данных устройства и пользовательских данных.

[59] В дополнительном варианте осуществления настоящей технологии начальный запрос 120 может включать в себя данные устройства и пользовательские данные. Например, при со