СПОСОБ И СЕРВЕР ДЛЯ ОПРЕДЕЛЕНИЯ ПОРЯДКА ОТРИСОВКИ КАРТЫ
METHOD AND A SERVER FOR DETERMINING THE ORDER OF DRAWING A MAP

ОБЛАСТЬ ТЕХНИКИ
[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 может включать в себя данные устройства и пользовательские данные. Например, при создании начального запроса 120 клиентское устройство 102 может быть выполнено с возможностью включать данные устройства и пользовательские данные в начальный запрос 120. В этом случае сервер 106 может получать данные устройства и данные пользователей с помощью начального запроса 120 без создания серверного запроса 130.
[60] Сервер 106 может быть выполнен с возможностью осуществлять предварительный анализ данных устройства. Предварительный анализ данные устройства и пользовательских данных сервером 106 может дать возможность серверу 106 определять, какой режим отрисовки карты нужно инициировать на клиентском устройстве 102: стандартный режим отрисовки карты или приоритетный режим отрисовки карты. Это означает, что в некоторых вариантах осуществления настоящей технологии сервер 106 может избирательно инициировать стандартный режим отрисовки карты или приоритетный режим отрисовки карты на основе предварительного анализа данных устройств и пользовательских данных. В другом дополнительном варианте осуществления настоящей технологии в рамках настоящей технологии предусматривается, что сервер 106 может быть выполнен с возможностью инициировать приоритетный режим отрисовки карты без выполнения предварительного анализа.
[61] В других вариантах осуществления настоящей технологии в течение предварительного анализа сервер 106 может сравнивать характеристики клиентского устройства 102 с пороговыми требуемыми значениями для определения того, отвечают ли характеристики клиентского устройства 102 соответствующим требованиям. Например, сервер 106 может определить, что скорость интернет-соединения клиентского устройства 102 превышает пороговое требуемое значение, связанное с требованием, касающимся скорости интернет-соединения. В другом примере сервер 106 может определить, что стабильность интернет-соединения клиентского устройства 102 превышает пороговое требуемое значение, связанное с требованием, касающимся стабильности интернет-соединения. Таким образом, после предварительного анализа данных устройства сервером 106 сервер 106 может определить, что характеристики клиентского устройства 102 отвечают требованиям для инициации стандартного режима отрисовки карты на клиентском устройстве 102.
[62] После избирательной инициации стандартного режима отрисовки сервер 106 может создавать пакет 150 картографических данных, включающий в себя документ HTML. Сервер 106 может быть выполнен с возможностью отправлять пакет 150 картографических данных на клиентское устройство 102. Документ HTML может включать в себя исполняемый на компьютере код для отрисовки карты на клиентском устройстве 102. Например, приложение 103 может разбирать и анализировать документ HTML и может идентифицировать множество картографических элементов, необходимых для отрисовки карты на клиентском устройстве 102. Другими словами, приложение 103 может быть выполнено с возможностью извлекать множество картографических элементов из хранилища 104 на основе исполнимого на компьютере кода и может отрисовывать карту на клиентском устройстве 102 после извлечения множества картографических элементов. Как было упомянуто ранее, множество картографических элементов включают в себя фрагменты карты, данные API и данные ресурсов.
[63] В других вариантах осуществления технологии пакет 150 картографических данных может включать в себя другие документы, которые отличаются от документа HTML, написанные на других языках разметки (т.е. не на HTML). Следует отметить, что другие документы могут включать в себя исполнимые на компьютере коды для отрисовки карты на клиентском устройстве 102, и что документ HTML является только одним из многих возможных документов, которые пакет 150 картографических данных может включать в себя.
[64] После избирательной инициации режима стандартной отрисовки сервером 106 приложение 103 может получать пакет 150 картографических данных для отрисовки первого картографического изображения 202, изображенного на Фигуре 2. В этом случае, поскольку сервер 106 инициировал режим стандартной отрисовки, приложение 103 может разбирать и анализировать документ HTML из пакета 150 картографических данных и, на основе исполнимого на компьютере кода, включенного в документ HTML, может быть выполнено с возможностью извлекать фрагменты карты, данные API и данные ресурсов из хранилища 104 для отрисовки первого картографического изображения 202.
[65] После извлечения фрагментов карты, данных API и данных ресурсов приложение 103 может быть выполнено с возможностью отрисовывать и отображать первое картографическое изображение 202 с первым интерактивным элементом 208, вторым интерактивным элементом 210, третьим интерактивным элементом 212, панелью поиска 204 и боковой панелью 206. Приложение 103 может быть выполнено с возможностью отрисовывать первое картографическое изображение 202 на основе фрагментов карты, извлеченных из хранилища 104. Приложение 103 может быть выполнено с возможностью выполнять первый интерактивный элемент 208, второй интерактивный элемент 210, третий интерактивный элемент 212, панель поиска 204 и боковую панель 206 на основе данных API и данных ресурсов, извлеченных из хранилища 104.
[66] Следует отметить, что в этом случае, после того, как сервер 106 избирательно инициировал режим стандартной отрисовки, документ HTML включает в себя машиночитаемый код, который, при разборе и анализе, указывает приложению 103 на извлечение всех фрагментов карты, всех данных API и всех данных ресурсов прежде отрисовки фрагментов карты и выполнения первого интерактивного элемента 208, второго интерактивного элемента 210, третьего интерактивного элемента 212, панели поиска 204 и боковой панели 206. В общем случае, если сервер 106 инициировал режим стандартной отрисовки, приложение 103 осуществит:
- (i) извлечение, на основе исполняемого на компьютере кода документа HTML, всех фрагментов карты, всех данных API и всех данных ресурсов, необходимых для отображения данного вида карты;
- (ii) после извлечение всех фрагментов карты, всех данных API и всех данных ресурсов приложение 103 обрабатывает все фрагменты карты, все данные API и все данные ресурсов, необходимые для отображения данного вида карты; и
- (iii) после обработки всех фрагментов карты, всех данных API и всех данных ресурсов, необходимых для отображения данного вида карты, приложение 103 отображает на клиентском устройстве 102 данную карту.
[67] В другом варианте осуществления настоящей технологии сервер 106 может быть выполнен с возможностью избирательно инициировать приоритетный режим отрисовки на основе предварительного анализа данных устройства. Следует отметить, что избирательная инициация может быть инициирована различными способами. Например, после предварительного анализа данных устройства сервером 106 сервер 106 может определить, что характеристики клиентского устройства 102 не отвечают соответствующим требованиям. Сервер 106 может быть выполнен с возможностью инициировать приоритетный режим отрисовки карты на клиентском устройстве 102.
[68] В дополнительном варианте осуществления технологии сервер 106 может избирательно инициировать приоритетный режим отрисовки на основе предыдущей инициации приоритетного режима отрисовки для клиентского устройства 102. Например, сервер 106 может определять на основе предварительного анализа данных устройства, что сервер 106 ранее инициировал приоритетный режим отрисовки на клиентском устройстве 102. В данном случае, сервер 106 может избирательно инициировать приоритетный режим отрисовки карты на клиентском устройстве 102. В другом варианте осуществления настоящей технологии сервер 106 может быть выполнен с возможностью напрямую инициировать приоритетный режим отрисовки карты на клиентском устройстве без проведения предварительного анализа данных устройства.
[69] В некоторых вариантах осуществления настоящей технологии, когда сервер 106 выполнен с возможностью выполнять предварительный анализа данных устройства, сервер 106 может определять, что скорость интернет-соединения клиентского устройства 102 меньше, чем пороговое требуемое значение, связанное с требованием, касающимся скорости интернет-соединения, и/или стабильность интернет-соединения клиентского устройства 102 меньше, чем пороговое требуемое значение, связанное с требованием, касающимся стабильности интернет-соединения. Сервер 106 может быть выполнен с возможностью инициировать приоритетный режим отрисовки карты на основе такого определения.
[70] Проще говоря, если характеристики клиентского устройства 102 не отвечают определенным требованиям, извлечение и отрисовка карты со всеми интерактивными элементами перед отображением их на клиентском устройстве 102 может потребовать слишком длительного ожидания. Следовательно, сервер 106 может быть выполнен с возможностью инициировать приоритетный режим отрисовки, если характеристики клиентского устройства 102 не отвечают соответствующим требованиям. Сервер 106 может быть выполнен с возможностью инициировать приоритетный режим отрисовки для того, чтобы предоставить пользователю 101 возможность просматривать карту с приоритезированными интерактивными элементами в то время, пока клиентское устройство 102 ожидает извлечения дополнительных интерактивных элементов для их отрисовки и отображения. Пока дополнительные интерактивные элементы извлекаются, отрисовываются и отображаются клиентским устройством 102, пользователь 101 может захотеть сразу посмотреть приоритезированную часть карты с приоритезированными интерактивными элементами, которые для него полезны и/или релевантны и/или необходимы. То, как сервер 106 определяет приоритезированную часть карты с приоритезированными интерактивными элементами и дополнительными интерактивными элементами, будет описано ниже с учетом некоторых вариантов осуществления настоящей технологии.
[71] После инициации приоритетного режима отрисовки карты сервер 106 может быть выполнен с возможностью определять приоритетные картографические элементы и дополнительные картографические элементы в множества картографических элементов. Сервер 106 может определять приоритетные картографические элементы и дополнительные картографические элементы на основе по меньшей мере либо данных устройства, либо пользовательских данных.
[72] Приоритетные картографические элементы включают в себя приоритетные фрагменты карты. Однако в некоторых вариантах осуществления технологии приоритетные элементы могут включать в себя приоритетные фрагменты карты и приоритетные данные API. В некоторых других вариантах осуществления технологии приоритетные элементы могут включать в себя приоритетные фрагменты карты, приоритетные данные API и приоритетные данные ресурсов. Приоритетные фрагменты карты могут быть конкретной подгруппой фрагментов карты из всех фрагментов карты. Приоритетные данные API могут быть конкретной подгруппой данных API из всех данных API. Приоритетные данные ресурсов могут быть конкретной подгруппой данных ресурсов из всех данных ресурсов.
[73] Аналогично, дополнительные картографические элементы включают в себя дополнительные фрагменты карты. Однако в дополнительных вариантах осуществления технологии дополнительные картографические элементы могут включать в себя дополнительные фрагменты карты и по меньшей мере либо дополнительные данные API, либо дополнительные данные ресурсов.
[74] В общем случае, сервер 106 может определить, какие картографические элементы в множестве картографических элементов являются приоритетными картографическими элементами и какие картографические элементы в множестве картографических элементов являются дополнительными картографическими элементами для того, чтобы дать клиентскому устройству 102 инструкции на извлечение приоритетных картографических картографических элементов перед дополнительными картографическими элементами. Теперь будет описано то, как сервером 106 определяются приоритетные картографические элементы (т.е. конкретная подгруппа фрагментов карты, конкретная подгруппа данных API и конкретная подгруппа данных ресурсов) и способ, с помощью которого сервер 106 дает инструкции клиентскому устройству 102 на извлечение приоритетных картографических элементов перед дополнительными картографическими элементами.
[75] Сервер 106 может определять приоритетные фрагменты карты на основе данных устройства. Например, сервер 106 может определять, что конкретная подгруппа фрагментов карты должна включать в себя фрагменты, которые соответствуют части карты, находящейся близко к текущему географическому положению клиентского устройства 102 (т.е. текущее географическое положение клиентского устройства 102 включено в данные устройства). Другими словами, сервер 106 может определять приоритетные фрагменты карты на основе текущего географического положения клиентского устройства 102.
[76] В других вариантах осуществления настоящей технологии сервер 106 может также определять приоритетные фрагменты карты на основе пользовательских данных. Например, сервер 106 может определять часто используемый пользователем 101 уровень масштабирования на основе пользовательских данных. В этом случае сервер 106 может быть выполнен с возможностью определять, что конкретная подгруппа фрагментов карты должна включать в себя фрагменты карты, которые связаны с часто используемым уровнем масштабирования. Другими словами, сервер 106 может быть выполнен с возможностью определять приоритетные фрагменты карты на основе пользовательских данных.
[77] В дополнительных вариантах осуществления технологии предусматривается, что сервер 106 может определять фрагменты карты на основе данных устройства и пользовательских данных. Например, сервер 106 может определять, что конкретная подгруппа фрагментов карты должна включать в себя фрагменты, которые соответствуют части карты, находящейся близко к текущему географическому положению клиентского устройства 102, и связаны с часто используемым уровнем масштабирования.
[78] Сервер 106 может быть выполнен с возможностью определять приоритетные данные ресурсов на основе пользовательских данных. Например, сервер 106 может определить, что пользователь 101 часто взаимодействует с метками достопримечательностей на картах и редко взаимодействует с боковыми панелями, отображенными с картами в приложении 103, на основе пользовательских данных. В итоге сервер 106 может определять, что конкретная подгруппа данных ресурсов должна включать в себя данные ресурсов, связанные с метками достопримечательностей. Также в итоге сервер 106 может определять, что данные ресурсов, связанные боковыми панелями, являются частью дополнительных данных ресурсов.
[79] Сервер 106 может быть выполнен с возможностью определять приоритетные данные API на основе пользовательских данных. Продолжая предыдущий пример, сервер 106 может определить, что пользователь 101 часто взаимодействует с метками достопримечательностей на картах и редко взаимодействует с боковыми панелями, отображенными с картами в приложении 103, на основе пользовательских данных. В итоге сервер 106 может определять, что конкретная подгруппа данных API должна включать в себя данные API для исполнения меток достопримечательностей на карте. Также в итоге сервер 106 может определять, что данные API для исполнения боковых панелей являются частью дополнительных данных API.
[80] После определения приоритетных картографических элементов в множестве картографических элементов и дополнительных картографических элементов в множестве картографических элементов сервер 106 может быть выполнен с возможностью создавать команды порядка извлечения на основе приоритетных картографических элементов и дополнительных картографических элементов. В общем случае команды порядка извлечения могут предоставлять указания приложениям, например, приложению 103, на извлечение множества картографических элементов в предписанном порядке извлечения.
[81] Сервер 106 также может быть выполнен с возможностью передавать на клиентское устройство команды порядка извлечения, которые необходимы для инициирования извлечения клиентским устройством 102 множества картографических элементов в предписанном порядке извлечения. Например, предписанный порядок извлечения может указывать клиентскому устройству 102 на извлечение приоритетных картографических элементов перед дополнительными картографическими элементами.
[82] Дополнительно, поскольку команды порядка извлечения созданы на основе приоритетных картографических элементов и дополнительных картографических элементов, команды порядка извлечения представляют предписанный порядок извлечения множества элементов для соответствия либо характеристикам клиентского устройства 102, либо пользовательскому поведению пользователя 101. Другими словами, команды порядка извлечения персонализированы по меньшей мере либо для клиентского устройство 102, либо для пользователя 101 для того, чтобы извлекать приоритетные картографические элементы и дополнительные картографические элементы в предписанном порядке извлечения. Это значит, что команды порядка извлечения могут определять приоритезацию извлечения картографических элементов в течение процедур извлечения, выполняемых приложением 103 клиентского устройства 102 на основе того, являются ли данные картографические элементы приоритетными картографическими элементами или дополнительными картографическими элементами.
[83] В некоторых вариантах осуществления настоящей технологии для передачи команд порядка извлечения на клиентское устройство 102 сервер 106 может быть выполнен с возможностью объединять команды порядка извлечения в документ HTML. Таким образом, сервер 106 может создавать модифицированный документ HTML, который включает в себя выполняемый на компьютере код для отрисовки карты и команды порядка извлечения для извлечения множества картографических элементов в предписанном порядке извлечения. Также сервер 106 может быть выполнен с возможностью отправлять пакет 150 картографических данных, включающий в себя модифицированный документ HTML, на клиентское устройство по сети 110.
[84] Клиентское устройство 102 может получать пакет 150 картографических данных, включающий в себя модифицированный документ HTML. Приложение 103 может разбирать и анализировать документ HTML и может идентифицировать приоритетные картографические элементы на основе команд порядка извлечения в модифицированном документе HTML. В итоге клиентское устройство 102 может быть выполнено с возможностью создавать приоритетный запрос 160, включающий в себя информацию для извлечения приоритетных картографических элементов. Приоритетный запрос 160 может быть отправлен по сети 110 на сервер 106. После получения приоритетного запроса 160 сервером 106 сервер 106 может быть выполнен с возможностью извлекать приоритетные картографические элементы из хранилища 104. Сервер 106 может создавать пакет 170 приоритетных данных, включающий в себя приоритетные картографические элементы, и может отправлять пакет 170 приоритетных данных по сети 110 на клиентское устройство 102.
[85] В ответ на получение пакета 170 приоритетных данных клиентским устройством 102 приложение 103 может отрисовать приоритетные картографические элементы и может отобразить пользователю 101 с помощью клиентского устройства 102 приоритетное картографическое изображение 302, показанное на Фигуре 3. Другими словами, после извлечения приоритетных фрагментов карты, приоритетных данных API и приоритетных данных ресурсов приложение 103 может быть выполнено с возможностью отрисовывать и отображать приоритетное картографическое изображение 302 с первым интерактивным элементом 208, вторым интерактивным элементом 210 и третьим интерактивным элементом 212.
[86] Приоритетное картографическое изображение 302 может быть отрисовано и отображено на основе конкретной подгруппы фрагментов карты из всех фрагментов карты, например, из всех фрагментов карты, которые были необходимы для отрисовки и отображения первого картографического изображения 202, показанного на Фигуре 2. Неотрисованная область 304, изображенная на Фигуре 3, может соответствовать области на первом картографическом изображении 202, требующей для отрисовки дополнительных фрагментов карты, которые еще не получены от сервера 106 в соответствии с предписанным порядком извлечения.
[87] Первый интерактивный элемент 208, второй интерактивный элемент 210 и третий интерактивный элемент 212 могут быть отрисованы и отображены на основе конкретной подгруппы данных API из всех данных API и основаны на конкретной подгруппе данных ресурсов из всех данных ресурсов. В данном случае, дополнительные данные API и дополнительные данные ресурсов могут быть связаны с поисковой панелью 204 и боковой панелью 206, изображенными на Фигуре 2. Поисковая панель 204 и боковая панель 206 еще не отрисованы или не отображены в приложении 103, поскольку дополнительные данные API и дополнительные данные ресурсов еще не извлечены из сервера 106 в соответствии с предписанным порядком извлечения.
[88] Во время ожидания дополнительных интерактивных элементов, таким как поисковая панель 204 и боковая панель 206, которые должны быть отображены в приложении 103, пользователь 101 может сразу же просмотреть приоритизированную часть карты, такую как приоритетное картографическое изображение 302, изображенное на Фигуре 3, с приоритезированными интерактивными элементами, такими как первый интерактивный элемент 208, второй интерактивный элемент 210 и третий интерактивный элемент 212, которые полезны и/или релевантны и/или необходимы для пользователя 101.
[89] После извлечения приоритетных картографических элементов из сервера 106 клиентское устройство 102 может быть выполнено с возможностью создавать дополнительный запрос 180 данных, включающий в себя информацию для извлечения дополнительных картографических элементов. В некоторых вариантах осуществления настоящей технологии клиентское устройство 102 может быть выполнено с возможностью создавать дополнительный запрос 180 данных после того как приоритетное картографическое изображение 302, первый интерактивный элемент 208, второй интерактивный элемент 210 и третий интерактивный элемент 212 отрисованы в приложении 103. В других вариантах осуществления настоящей технологии клиентское устройство 102 может быть выполнено с возможностью создавать дополнительный запрос 180 данных после того как приоритетное картографическое изображение 302, первый интерактивный элемент 208, второй интерактивный элемент 210 и третий интерактивный элемент 212 отображены в приложении 103. Дополнительный запрос 180 может быть отправлен по сети 110 на сервер 106. В ответ на получение дополнительного запроса 180 сервером 106 сервер 106 может быть выполнен с возможностью извлекать дополнительные картографические элементы из хранилища 104. Сервер 106 может создавать пакет 190 дополнительных данных, включающий в себя дополнительные картографические элементы, и может отправлять пакет 190 дополнительных данных по сети 110 на клиентское устройство 102.
[90] В ответ на получение пакета 190 дополнительных данных клиентским устройством 102 приложение 103 может отрисовать дополнительные картографические элементы и может отобразить пользователю 101 с помощью клиентского устройства 102 дополнительную область карты, соответствующую дополнительных фрагментам карты, связанным с неотрисованной областью 304 и дополнительными интерактивными элементами, такими как поисковая панель 204 и боковая панель 206, в соответствии с изображением на Фигуре 3.
[91] В других вариантах осуществления настоящей технологии в ответ на определение приоритетных картографических элементов в множестве картографических элементов и дополнительных картографических элементов в множестве картографических элементов сервер 106 может быть выполнен с возможностью создавать команды порядка извлечения и команды порядка отрисовки на основе приоритетных картографических элементов и дополнительных картографических элементов. В общем случае команды порядка отрисовки могут предоставлять указания приложениям, например, приложению 103, на отрисовку множества картографических элементов в предписанном порядке отрисовки.
[92] Сервер 106 также может быть выполнен с возможностью передавать на клиентское устройство команды порядка отрисовки, которые необходимы для инициирования отрисовки клиентским устройством 102 множества картографических элементов в предписанном порядке отрисовки. Например, предписанный порядок отрисовки может указывать клиентскому устройству 102 на отрисовку приоритетных картографических элементов сразу после того, как приоритетные картографические элементы были извлечены. В другом примере, предписанный порядок отрисовки может указывать клиентскому устройству 102 на отрисовку приоритетных картографических элементов перед дополнительными картографическими элементами.
[93] В некоторых вариантах осуществления настоящей технологии для передачи команд порядка отрисовки на клиентское устройство 102 сервер 106 может быть выполнен с возможностью объединять команды порядка отрисовки в документ HTML. Таким образом, сервер 106 может создавать модифицированный документ HTML, который включает в себя выполняемый на компьютере код для отрисовки карты, команды порядка извлечения для извлечения множества картографических элементов в предписанном порядке извлечения и команды порядка отрисовки для отрисовки множества картографических элементов в предписанном порядке отрисовки. Также сервер 106 может быть выполнен с возможностью отправлять пакет 150 картографических данных, включающий в себя модифицированный документ HTML, на клиентское устройство по сети 110.
[94] Например, в ответ на получение пакета 170 приоритетных данных клиентским устройством 102 команды порядка отрисовки могут указать приложению 103 на отрисовку приоритетных картографических элементов. В другом примере в ответ на получение пакета 190 дополнительных данных клиентским устройством 102 команды порядка отрисовки могут указать приложению 103 на отрисовку дополнительных картографических элементов. Это означает, что данные команды отрисовки могут быть инициированы получением данного пакета данных клиентским устройством 102 от сервера 106.
[95] В некоторых вариантах осуществления настоящей технологии команды порядка отрисовки могут указывать приложению 103 на отрисовку приоритетных картографических элементов в ответ на указание командами порядка отрисовки приложению 102 на извлечение дополнительных картографических элементов. Это означает, что данная команда порядка отрисовки может быть инициирована данной командой порядка извлечения и/или передачей данного запроса, такого как дополнительный запрос 108, клиентским устройством 102 серверу 106.
[96] В дополнительных вариантах осуществления технологии в ответ на определение конкретной подгруппы фрагментов карты во фрагментах карты сервер 106 может быть выполнен с возможностью извлекать приоритетные фрагменты карты из хранилища 104 для их отрисовки. Сервер 106 может отрисовывать приоритетные фрагменты карты и объединять их в документ HTML. Другими словами, сервер 106 может создавать модифицированный документ HTML, который включает в себя выполняемый на компьютере код для отрисовки карты, отрисованные приоритетные фрагменты карты, команды порядка извлечения для извлечения множества картографических элементов за исключением приоритетных фрагментов карты в предписанном порядке извлечения и команды порядка отрисовки для отрисовки множества картографических элементов за исключением приоритетных фрагментов карты в предписанном порядке отрисовки.
[97] В данном случае команды порядка извлечения могут быть необходимы для инициирования извлечения клиентским устройством 102 по меньшей мере либо приоритетных данных API, либо приоритетных данных ресурсов в предписанном порядке извлечения, поскольку приоритетные фрагменты карты уже были отрисованы и включены в состав модифицированного документа HTML.
[98] В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью выполнять способ 400 отрисовки карты, как показано на Фигуре 4.
[99] ЭТАП 402: Получение данных устройства и пользовательских данных
[100] Способ 400 начинается на этапе 402, когда сервер 106 получает данные устройства и пользовательские данные. Данные устройства указывают на характеристики клиентского устройства 102, а пользовательские данные указывают на поведение пользователя 101. В некоторых вариантах осуществления настоящей технологии после получения начального запроса 120 сервер 106 может быть выполнен с возможностью запрашивать данные устройства, связанные с клиентским устройством 102, и пользовательские данные, связанные с пользователем 101. В результате сервер 106 может быть выполнен с возможностью создавать серверный запрос 130 для извлечения данных устройства и пользовательских данных. В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью создавать первый северный запрос и второй серверный запрос вместо серверного запроса 130 для извлечения данных устройства и пользовательских данных, соответственно.
[101] Серверный запрос 130 может быть отправлен в хранилище 104 для извлечения данных устройства и пользовательских данных. В других вариантах осуществления настоящей технологии серверный запрос 130 может быть отправлен на клиентское устройство 102 для извлечения данных устройства и пользовательских данных. После получения серверного запроса 130 клиентское устройство 102 может быть выполнен с возможностью создавать пакет 140 клиентских данных, включающий в себя данные устройства и пользовательские данные. Клиентское устройство 102 может затем отправить пакет 140 клиентских данных по сети 110 серверу 106.
[102] В дополнительном варианте осуществления настоящей технологии начальный запрос 120 может включать в себя данные устройства и пользовательские данные. Например, при создании начального запроса 120 клиентское устройство 102 может быть выполнено с возможностью включать данные устройства и пользовательские данные в начальный запрос 120. В этом случае сервер 106 может извлекать данные устройства и данные пользователей с помощью начального запроса 120 без создания серверного запроса 130.
[103] ЭТАП 404: Определение приоритетных картографических элементов и дополнительных картографических элементов
[104] Способ 400 продолжается на этапе 404, на котором сервер 106 определяет приоритетные картографические элементы и дополнительные картографические элементы в множестве картографических элементов на основе по меньшей мере либо данных устройства, либо пользовательских данных. Приоритетные картографические элементы включают в себя приоритетные фрагменты карты и по меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов.
[105] В некоторых вариантах осуществления настоящей технологии сервер 106 может быть выполнен с возможностью осуществления предварительного анализа данных устройства перед определением приоритетных картографических элементов и дополнительных картографических элементов. Предварительный анализ данные устройства и пользовательских данных сервером 106 может дать возможность серверу 106 определять, какой режим отрисовки карты нужно инициировать на клиентском устройстве 102: стандартный режим отрисовки карты или приоритетный режим отрисовки карты. Следовательно, в некоторых вариантах осуществления настоящей технологии сервер 106 может избирательно инициировать стандартный режим отрисовки или приоритетный режим отрисовки. Однако в других вариантах вариантах осуществления технологии сервер 106 может напрямую инициировать приоритетный режим отрисовки.
[106] В случае инициации сервером 106 приоритетного режима отрисовки карты сервер 106 может быть выполнен с возможностью определять приоритетные картографические элементы и дополнительные картографические элементы в множестве картографических элементов. Сервер 106 может определять приоритетные картографические элементы и дополнительные картографические элементы на основе по меньшей мере либо данных устройства, либо пользовательских данных.
[107] В общем случае, сервер 106 может определить, какие картографические элементы в множестве картографических элементов являются приоритетными картографическими элементами и какие картографические элементы в множестве картографических элементов являются дополнительными картографическими элементами для того, чтобы дать клиентскому устройству 102 инструкции на извлечение приоритетных картографических картографических элементов перед дополнительными картографическими элементами.
[108] ЭТАП 406: Создание команд порядка извлечения
[109] Способ 400 продолжается на этапе создания сервером 106 команд порядка извлечения на основе приоритетных картографических элементов и дополнительных картографических элементов. В общем случае команды порядка извлечения могут предоставлять указания приложениям, например, приложению 103, на извлечение множества картографических элементов в предписанном порядке извлечения. Например, предписанный порядок извлечения может указывать клиентскому устройству 102 на извлечение приоритетных картографических элементов перед дополнительными картографическими элементами.
[110] В некоторых вариантах осуществления технологии команды порядка извлечения могут быть персонализированы для клиентского устройства 102. В других вариантах осуществления технологии команды порядка извлечения могут быть персонализированы для пользователя 101. Однако в дополнительных вариантах осуществления технологии команды порядка извлечения могут быть персонализированы для клиентского устройства 102 и для пользователя 101.
[111] В других вариантах осуществления технологии сервер 106 может быть выполнен с возможностью отрисовывать команды порядка извлечения на основе приоритетных картографических элементов и дополнительных картографических элементов. В общем случае команды порядка отрисовки могут предоставлять указания приложениям, например, приложению 103, на отрисовку множества картографических элементов в предписанном порядке отрисовки. Например, предписанный порядок отрисовки может указывать клиентскому устройству 102 на отрисовку приоритетных картографических элементов сразу после того, как приоритетные картографические элементы были извлечены. В другом примере, предписанный порядок отрисовки может указывать клиентскому устройству 102 на отрисовку приоритетных картографических элементов перед дополнительными картографическими элементами.
[112] В некоторых вариантах осуществления технологии команды порядка отрисовки могут быть персонализированы для клиентского устройства 102. В других вариантах осуществления технологии команды порядка отрисовки могут быть персонализированы для пользователя 101. Однако в дополнительных вариантах осуществления технологии команды порядка отрисовки могут быть персонализированы для клиентского устройства 102 и для пользователя 101.
[113] ЭТАП 408: Передача команд порядка извлечения на клиентское устройство
[114] Способ 400 завершается на этапе 408, на котором сервер 106 передает команды порядка извлечения на клиентское устройство 102. Команды порядка извлечения необходимы для инициирования извлечения клиентским устройством 102 множества картографических элементов в предписанном порядке извлечения. Например, предписанный порядок извлечения может указывать клиентскому устройству 102 на извлечение приоритетных картографических элементов перед дополнительными картографическими элементами.
[115] В некоторых вариантах осуществления настоящей технологии для передачи команд порядка извлечения на клиентское устройство 102 сервер 106 может быть выполнен с возможностью объединять команды порядка извлечения в документ HTML. Таким образом, сервер 106 может создавать модифицированный документ HTML, который включает в себя выполняемый на компьютере код для отрисовки карты и команды порядка извлечения для извлечения множества картографических элементов в предписанном порядке извлечения. Также сервер 106 может быть выполнен с возможностью отправлять пакет 150 картографических данных, включающий в себя модифицированный документ HTML, на клиентское устройство по сети 110.
[116] Клиентское устройство 102 может получать пакет 150 картографических данных, включающий в себя модифицированный документ HTML. Приложение 103 может разбирать и анализировать модифицированный документ HTML, и клиентское устройство 102 может быть выполнено с возможностью создавать приоритетный запрос 160, включающий в себя информацию для извлечения приоритетных картографических элементов. Приоритетный запрос 160 может быть отправлен по сети 110 на сервер 106. После получения приоритетного запроса 160 сервером 106 сервер 106 может быть выполнен с возможностью извлекать приоритетные картографические элементы из хранилища 104. Сервер 106 может создавать пакет 170 приоритетных данных, включающий в себя приоритетные картографические элементы, и может отправлять пакет 170 приоритетных данных по сети 110 на клиентское устройство 102.
[117] После получения пакета 170 приоритетных данных клиентским устройством 102 приложение 103 может разобрать и проанализировать команды порядка отрисовки в модифицированном документе HTML. В итоге команды порядка отрисовки могут указывать, должно ли приложение 103 отрисовать и отобразить приоритетные картографические элементы.
[118] После извлечения приоритетных картографических элементов из сервера 106 клиентское устройство 102 может быть выполнено с возможностью создавать дополнительный запрос 180 данных, включающий в себя информацию для извлечения дополнительных картографических элементов. Приоритетный запрос 160 может быть отправлен по сети 110 на сервер 106. После получения дополнительного запроса 180 сервером 106 сервер 106 может быть выполнен с возможностью извлекать дополнительные картографические элементы из хранилища 104. Сервер 106 может создавать пакет 190 дополнительных данных, включающий в себя дополнительные картографические элементы, и может отправлять пакет 190 дополнительных данных по сети 110 на клиентское устройство 102.
[119] После получения пакета 190 дополнительных данных клиентским устройством 102 приложение 103 может разобрать и проанализировать команды порядка отрисовки в модифицированном документе HTML. В итоге команды порядка отрисовки могут указывать, должно ли приложение 103 отрисовать и отобразить дополнительные картографические элементы.
[120] В некоторых вариантах осуществления настоящей технологии сервер 106, выполняющий способ 400, может дать возможность снизить количество вычислений, проводимых клиентским устройством 102 для отображения приоритезированной части карты с приоритезированными интерактивными элементами. Способ 400 дает возможность клиентскому устройству 102 селективно отображать приоритезированную часть карты с приоритезированными интерактивными элементами без необходимости обрабатывать данные, связанные со всей картой и всеми интерактивными элементами на ней.
[121] Важно иметь в виду, что не все упомянутые здесь технические результаты могут проявляться в каждом варианте осуществления настоящей технологии. Например, варианты осуществления настоящей технологии могут быть реализованы без проявления некоторых технических результатов, а другие варианты могут быть реализованы с проявлением других технических результатов или вовсе без них.
[122] Специалисты в данной области техники поймут, что в настоящем описании выражение «получение данных» от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран компьютерного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал включает в себя данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
[123] Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптоволоконного соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
[124] Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
[125] Таким образом, с одной точки зрения, варианты осуществления настоящей технологии, описанные выше, можно изложить следующим образом, структурированно, пронумерованными пунктами.
[126] ПУНКТ 1. Способ (400) отрисовки карты, причем карта включает в себя множество картографических элементов, клиентское устройство (102), связанное с пользователем (101), способ (400) выполняется на сервере (106), способ (400) включает в себя:
- получение (402) сервером (106) данных устройства и пользовательских данных, причем данные устройства указывают на характеристики клиентского устройства (102), а пользовательские данные указывают на поведение пользователя (101);
- определение (404) сервером (106) приоритетных картографических элементов и дополнительных картографических элементов в множестве картографических элементов на основе по меньшей мере либо данных устройства, либо пользовательских данных, причем приоритетные картографические элементы включают в себя приоритетные фрагменты карты и по меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов;
- создание (406) сервером (106) команд порядка извлечения на основе приоритетных картографических элементов и дополнительных картографических элементов; и
- передачу (408) сервером (106) команд порядка извлечения на клиентское устройство (102), причем команды порядка извлечения необходимы для инициирования извлечения клиентским устройством (102) множества картографических элементов в предписанном порядке извлечения, причем приоритетные картографические элементы извлекаются перед дополнительными картографическими элементами.
[127] ПУНКТ 2 Способ (400) по п. 1, способ (400) дополнительно включает в себя передачу сервером (106) множества картографических элементов в предписанном порядке извлечения на клиентское устройство (102).
[128] ПУНКТ 3 Способ (400) по п. 1 и 2, в котором дополнительные картографические элементы включают в себя дополнительные фрагменты карты.
[129] ПУНКТ 4 Способ (400) по п. 3, в котором дополнительные картографические элементы дополнительно включают в себя по меньшей мере либо дополнительные данные API, либо дополнительные данные ресурсов.
[130] ПУНКТ 5 Способ (400) по п. 4, в котором определение (404) приоритетных картографических элементов и дополнительных картографических элементов дополнительно включает в себя определение сервером (106) конкретной подгруппы картографических элементов,
причем конкретная подгруппа картографических элементов включает в себя приоритетные картографические элементы,
конкретная подгруппа картографических элементов необходима для отрисовки карты на основе по меньшей мере либо характеристик клиентского устройства (102), либо поведения пользователя (101).
[131] ПУНКТ 6 Способ (400) по п. 4, в котором определение (404) приоритетных картографических элементов и дополнительных картографических элементов дополнительно включает в себя определение сервером (106) конкретной подгруппы фрагментов карты, по меньшей мере либо конкретного набора данных API, либо конкретного набора данных ресурсов,
причем конкретная подгруппа фрагментов карты включает в себя приоритетные фрагменты карты, конкретная подгруппа данных API включает в себя приоритетные данные API, а конкретная подгруппа данных ресурсов включает в себя приоритетные данные ресурсов,
конкретная подгруппа фрагментов карты и по меньшей мере либо конкретная подгруппа данных API, либо конкретная подгруппа данных ресурсов необходима для отрисовки карты на основе характеристик клиентского устройства (102) и поведения пользователя (101).
[132] ПУНКТ 7 Способ (400) по п. 1-6, в котором передача (408) включает в себя, в ответ на запрос (120) от клиентского устройства (102) на отрисовку карты:
- объединение сервером (106) команд порядка извлечения в документ html, причем документ html включает в себя исполняемый на компьютере код для отрисовки карты; и
- отправку сервером (106) документа html на клиентское устройство (102) для отрисовки карты на клиентском устройстве (102).
[133] ПУНКТ 8 Способ (400) по п. 7, в котором объединение команд порядка извлечения дополнительно включает в себя:
- отрисовку сервером (106) приоритетных фрагментов карты; и
- объединение сервером (106) отрисованных приоритетных фрагментов карты в документе html,
команды порядка извлечения необходимы для инициирования извлечения клиентским устройством (102) по меньшей мере либо приоритетных данных API, либо приоритетных данных ресурсов в предписанном порядке извлечения, причем по меньшей мере либо приоритетные данные API, либо приоритетные данные ресурсов извлекаются перед дополнительными картографическими элементами.
[134] ПУНКТ 9 Способ (400) по п. 1-8, в котором способ (400) дополнительно включает в себя:
- создание сервером (106) команд порядка отрисовки на основе приоритетных картографических элементов и дополнительных картографических элементов; и
- передачу сервером команд порядка отрисовки на клиентское устройство (102), причем команды порядка извлечения необходимы для инициирования отрисовки клиентским устройством (102) множества картографических элементов в предписанном порядке отрисовки, причем приоритетные картографические элементы отрисовываются перед дополнительными картографическими элементами.
[135] ПУНКТ 10 Сервер (106) для отрисовки карты, причем карта включает в себя множество картографических элементов, клиентское устройство (102), связанное с пользователем (101), сервер (106) выполнен с возможностью выполнять способ (400) по пп. 1-9.