Область техники, к которой относится изобретение
Изобретение относится к области обработки картографических данных.
Уровень техники
Известно, что при отображении карты на мониторе вычислительного устройства происходит группировка объектов на карте (например, мест повышенного интереса (POI)) в соответствии с масштабом приближения карты. Например, API Яндекс. Карты (http://api.vandex.com/maps) ООО "ЯНДЕКС" (Россия) предлагает платформу, позволяющую применять различные подходы к сгруппированным объектам на карте (http://api.vandex.ru/maps/features/?p=cluster). Подобная группировка может указывать на определенное количество мест повышенного интереса на одном уровне приближения в пределах данной территории, а на следующем уровне приближения указывать на их конкретное расположение.
В заявке США №US 20120316782, опубл. 13.12.2012 описано отображение карты на первом уровне приближения и отображение увеличенной части карты на втором уровне приближения. Увеличители карты могут отображаться на маршрутных точках вдоль маршрута, на маркерах карты, соответствующих местам повышенного интереса, или на местах, связанных с результатами поиска.
В заявке США №US 20130338918, опубл. 19.12.2013 описан модуль поиска маршрута, выполненный с возможностью определять на карте основной маршрут из начальной точки в конечную. Модуль поиска маршрута дополнительно выполнен с возможностью производить одно или несколько изменений на карте в зависимости от основного маршрута. Модуль модификации выполнен с возможностью использовать основной маршрут и одну или несколько основных модификаций на карте. Одна или несколько модификаций включают в себя по меньшей мере одно из: а) добавление на карту первого объекта, который не был бы включен в карту, если бы к ней не применялся основной маршрут, и b) удаление с карты второго объекта, который был бы добавлен на карту, если бы к ней не применялся основной маршрут.
Раскрытие изобретения
Объектом настоящей технологии является способ обработки картографических данных. Способ обработки картографических данных включает следующее. На первом этапе предоставление маршрута, содержащего по меньшей мере одну последовательность транспортных сегментов, которая располагается между начальной и конечной точками на карте. На втором этапе анализ потенциальных мест отображения графических представлений, относящихся к индивидуальным транспортным сегментам в пределах последовательности для каждого уровня приближения карты. На третьем этапе предоставление объединенного графического представления соседних индивидуальных транспортных сегментов вместо обычных графических представлений индивидуальных транспортных сегментов при пересечении потенциальных мест для отображения графических представлений соседних индивидуальных транспортных сегментов. На четвертом этапе отображение по меньшей мере упомянутого объединенного графического представления на фрагменте упомянутой карты на упомянутом уровне приближения.
Возможен вариант осуществления, в котором на первом этапе: получают маршрут, включающий в себя множество сегментов; и группируют сегменты в по меньшей мере одну упомянутую последовательность транспортных сегментов.
Возможен вариант осуществления, в котором упомянутое группирование включает в себя предоставление одной или нескольких частей последовательности в пределах упомянутого маршрута, и каждая часть последовательности относится к одному типу транспорта, второй и третий этапы способа выполняют для каждой из частей последовательности.
Возможен вариант осуществления, в котором каждый из второго третьего и четвертого этапов выполняют при запросе пользователя на изменение уровня приближения упомянутой карты; либо при изменении пользователем упомянутого маршрута.
Возможен вариант осуществления, в котором упомянутые графические представления индивидуальных транспортных сегментов предварительно включают в себя по меньшей мере графический компонент и текстовый компонент, и преимущественно каждая объединенная графическая презентация основана на комбинации только графических компонентов для упомянутых индивидуальных транспортных сегментов.
Возможен вариант осуществления, в котором каждое объединенное графическое представление основано на комбинации данных для упомянутых соседних индивидуальных транспортных сегментов.
Возможен вариант осуществления, в котором каждое объединенное графическое представление основано на комбинации данных для упомянутых соседних индивидуальных транспортных сегментов.
Возможен вариант осуществления, в котором в пределах упомянутого объединенного графического представления предоставляют указание на последовательность упомянутых соседних индивидуальных транспортных сегментов в рамках упомянутого маршрута.
Возможен вариант осуществления, в котором при потенциальном пересечении упомянутого потенциального отображения мест для графических представлений соседних индивидуальных транспортных сегментов, удаляют текстовый компонент по меньшей мере из одной графической презентации; и повторяют второй этап.
Возможен вариант осуществления, в котором упомянутый маршрут включает в себя по меньшей мере одну указанную пользователем маршрутную точку, и в котором каждая из упомянутых начальной и конечной точек и упомянутая по меньшей мере одна маршрутная точка связаны с графическими представлениями, каждое из которых обладает потенциальным местом отображения, и в котором упомянутый способ далее выполняют позиционирование и ориентирование упомянутые графические представления для упомянутых начальной и конечной точек маршрута и упомянутой по меньшей мере одной маршрутной точки для минимизации пересечения с местами других графических представлений маршрута.
Возможен вариант осуществления, в котором позиционирование и ориентирование выполняют до и/или после второго и третьего этапов.
Возможен вариант осуществления, в котором дополнительно анализируют соответствующие потенциальные места отображения для каждого графического представления для упомянутых начальной и конечной точек и по меньшей мере одной упомянутой маршрутной точки; и по меньшей мере частично уменьшают упомянутое графическое представление в ответ на то, что потенциальное место отображения одного из упомянутых графических представлений потенциально пересекает графическое представление для любого другого сегмента на упомянутом маршруте.
Возможен вариант осуществления, в котором упомянутый маршрут включает в себя один или несколько пешеходных сегментов, каждый пешеходный сегмент содержит потенциальное место отображения для соответствующего графического представления, и в котором дополнительно анализируют соответствующие потенциальные места отображения для каждого упомянутого графического представления каждого пешеходного сегмента; и по меньшей мере частично уменьшают графическое представление упомянутого пешеходного сегмента в ответ на то, что потенциальное место отображения пешеходного сегмента потенциально пересекает графическое представление любого другого сегмента на упомянутом маршруте.
Возможен вариант осуществления, в котором при упомянутом по меньшей мере частичном уменьшении удаляют текстовый компонент из упомянутого графического представления.
Возможен вариант осуществления, в котором на указанном третьем этапе дополнительно предоставляют объединенные данные для упомянутых соседних индивидуальных транспортных сегментов, и в котором дополнительно отображают упомянутые объединенные данные в ответ на взаимодействие пользователя с соответствующим отображаемым объединенным графическим представлением.
Возможен вариант осуществления, в котором перемещают информацию о сегменте из одной упомянутой части последовательности в другую в ответ на взаимодействие пользователя с первым отображаемым объединенным графическим представлением для части последовательности сегментов маршрута и со вторым объединенным графическим представлением для соседней части последовательности по меньшей мере одного сегмента маршрута.
Возможен вариант осуществления, в котором маршрут может быть предоставлен в ответ на взаимодействие пользователя с приложением - указания начальной и конечной точки.
Возможен вариант осуществления, в котором одна или несколько частей последовательности транспортных сегментов могут быть представлены в пределах маршрута, каждая часть последовательности относится к одному и тому же типу транспорта, и к каждой части применяются процедуры анализа и объединения.
Возможен вариант осуществления, в котором способ выполняют в ответ на запрос пользователя изменить уровень приближения карты или в ответ на определение пользователем изменения в маршруте.
Возможен вариант осуществления, в котором типы транспорта могут включать в себя: общественный и личный транспорт.
Возможен вариант осуществления, в котором маршрут может включать в себя по меньшей мере один сегмент, указывающий на пересадку на общественном транспорте.
Возможен вариант осуществления, в котором способ может далее включать в себя предоставление объединенных данных для соседних индивидуальных транспортных сегментов и в ответ на взаимодействие пользователя с соответствующим отображаемым объединенным графическим представлением отображение объединенных данных. Объединенные данные могут включать в себя либо статические, либо динамические данные.
Возможен вариант осуществления, в котором способ может далее включать в себя перемещение информации о сегменте из одной части последовательности в другую в ответ на взаимодействие пользователя с первым отображаемым объединенным графическим представлением для части последовательности сегментов на маршруте и вторым графическом представлением для соседних частей по меньшей мере одного сегмента на маршруте.
Настоящая технология полезна для цифровых приложений карт для предоставления возможности четкого и удобного планирования маршрута с увеличением эргономики пользовательского интерфейса.
В контексте настоящего описания, если конкретно не указано иное, термин «используемый компьютером носитель компьютерной информации» подразумевает под собой носитель абсолютно любого типа и характера, включая ОЗУ, ПЗУ, диски (компакт диски, DVD-диски, дискеты, жесткие диски и т.д.), USB флеш-накопители, твердотельные накопители, накопители на магнитной ленте и т.д.
В контексте настоящего описания, если конкретно не указано иное, «сервер» подразумевает под собой компьютерную программу, работающую на соответствующем оборудовании, которая способна получать запросы (например, от электронных устройств) по сети и выполнять эти запросы или инициировать выполнение этих запросов. Оборудование может представлять собой один физический компьютер или одну физическую компьютерную систему, но ни то, ни другое не является обязательным для данной технологии. В контексте настоящей технологии использование выражения «сервер» не означает, что каждая задача (например, полученные инструкции или запросы) или какая-либо конкретная задача будет получена, выполнена или инициирована к выполнению одним и тем же сервером (то есть одним и тем же программным обеспечением и/или аппаратным обеспечением); это означает, что любое количество элементов программного обеспечения или аппаратных устройств может быть вовлечено в прием/передачу, выполнение или инициирование выполнения любого запроса или последствия любого запроса, связанного с клиентским устройством, и все это программное и аппаратное обеспечение может являться одним сервером или несколькими серверами, оба варианта включены в выражение «по меньшей мере один сервер».
В контексте настоящего описания, если конкретно не указано иное, термин «база данных» подразумевает под собой любой структурированный набор данных, не зависящий от конкретной структуры, программного обеспечения по управлению базой данных, аппаратного обеспечения компьютера, на котором данные хранятся, используются или иным образом оказываются доступны для использования. База данных может находиться на том же оборудовании, которое выполняет процесс, который сохраняет или использует информацию, хранящуюся в базе данных, или же она может находиться на отдельном оборудовании, например выделенном сервере или множестве серверов.
В контексте настоящего описания, если конкретно не указано иное, термин «компонент» подразумевает под собой программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для выполнения конкретной(ых) указанной(ых) функции(й).
В контексте настоящего описания, если конкретно не указано иное, слова «первый», «второй», «третий» и т.д. используются в виде прилагательных исключительно для того, чтобы отличать существительные, к которым они относятся, друг от друга, а не для целей описания какой-либо конкретной связи между этими существительными. Так, например, следует иметь в виду, что использование терминов "первый сервер" и "третий сервер " не подразумевает какого-либо порядка, отнесения к определенному типу, хронологии, иерархии или ранжирования (например) серверов/между серверами, равно как и их использование (само по себе) не предполагает, что некий "второй сервер" обязательно должен существовать в той или иной ситуации. В дальнейшем, как указано здесь в других контекстах, упоминание "первого" элемента и "второго" элемента не исключает возможности того, что это один и тот же фактический реальный элемент. Так, например, в некоторых случаях "первый" сервер и "второй" сервер могут являться одним и тем же программным и/или аппаратным обеспечением, а в других случаях они могут являться разным программным и/или аппаратным обеспечением.
В контексте настоящего описания, если конкретно не указано иное, «электронное устройство» подразумевает под собой аппаратное устройство, способное работать с программным обеспечением, подходящим к решению соответствующей задачи. Примерами электронных устройств среди прочего являются персональные компьютеры (настольные компьютеры, ноутбуки и т.д.), смартфоны и планшеты и устройства спутниковой навигации. Следует иметь в виду, что устройство, ведущее себя как электронное устройство в настоящем контексте, может вести себя как сервер по отношению к другим электронным устройствам. Использование выражения «электронное устройство» не исключает возможности использования множества электронных устройств для получения/отправки, выполнения или инициирования выполнения любой задачи или запроса, или же последствий любой задачи или запроса, или же этапов любого вышеописанного метода.
Каждый вариант осуществления настоящей технологии включает, по меньшей мере, одну из вышеупомянутых целей и/или объектов. Следует иметь в виду, что некоторые объекты данной технологии, полученные в результате попыток достичь вышеупомянутой цели, могут удовлетворять и другим целям, отдельно не указанным здесь.
Специалисты в данной области техники поймут, что в настоящем описании выражение "получение данных" от пользователя подразумевает получение электронным устройством данных от пользователя в виде электронного (или другого) сигнала. Кроме того, специалисты в данной области техники поймут, что отображение данных пользователю через графический интерфейс пользователя (например, экран электронного устройства и тому подобное) может включать в себя передачу сигнала графическому интерфейсу пользователя, этот сигнал содержит данные, которые могут быть обработаны, и по меньшей мере часть этих данных может отображаться пользователю через графический интерфейс пользователя.
Некоторые из этих этапов, а также передача-получение сигнала хорошо известны в данной области техники и поэтому для упрощения были опущены в конкретных частях данного описания. Сигналы могут быть переданы-получены с помощью оптических средств (например, оптического соединения), электронных средств (например, проводного или беспроводного соединения) и механических средств (например, на основе давления, температуры или другого подходящего параметра).
Дополнительные и/или альтернативные характеристики, варианты осуществления и преимущества вариантов осуществления настоящей технологии станут очевидными из последующего описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
Далее будут описаны различные примеры осуществления технологии со ссылками на соответствующие чертежи, где:
На Фиг. 1 показана схема системы, включающая клиентское устройство, на котором установлено приложение для обработки картографических данных, приложение реализовано в соответствии с неограничивающими вариантами осуществления настоящей технологии;
На Фиг. 2 показана блок-схема, иллюстрирующая работу оператора тегов, относящегося к приложению на Фиг. 1; и
На Фиг. 3-5 показан примерный набор наложений, которые могут возникать на различных уровнях приближения отдельной части карты.
Осуществление изобретения
На Фиг. 1 показана система, включающая в себя электронное устройство 100 и сервер 140. Важно иметь в виду, что система является только одним из вариантов осуществления настоящей технологии. Таким образом, все последующее описание представлено только как описание иллюстративного примера настоящей технологии. Это описание не предназначено для определения объема или установления границ настоящей технологии. Некоторые полезные примеры модификаций системы также могут быть охвачены нижеследующим описанием.
Целью описания является также исключительно помощь в понимании, а не определение объема и границ настоящей технологии. Эти варианты осуществления не представляют собой исчерпывающий список, и специалистам в данной области техники будет понятно, что возможны и другие варианты. Кроме того, это не должно интерпретироваться так, что там, где не были изложены варианты осуществления, никакие другие варианты осуществления невозможны, и/или что-то, что описано, является единственным вариантом осуществления этого элемента настоящей технологии. Как будет понятно специалисту в данной области техники, это, скорее всего, не так. Кроме того, следует иметь в виду, что система представляет собой в некоторых конкретных проявлениях достаточно простой вариант осуществления настоящей технологии, и в подобном случае представлен здесь с целью облегчения понимания. Как будет понятно специалисту в данной области техники, многие варианты осуществления настоящей технологии будут обладать гораздо большей сложностью.
Клиентское электронное устройство 100 включает в себя экран 120 для обработки информации от приложения 130, по меньшей мере часть которой включает в себя карту 105. На примере с Фиг. 1 приложение 130 представляет собой клиентское приложение, которое связывается с сервером 140 через сеть 150, например Интернет. Одним типом клиентского приложения является браузерное приложение, которое связывается с сервером 140 через прикладной программный интерфейс (API) 160, например API Яндекс.Карты, который упоминался выше. Обычно сервер 140 включает в себя доступ к картографической базе данных (не показана) для того, чтобы предоставлять карте или маршруту запросы от приложения 130 через API 160.
Общий вариант осуществления устройства 100 известен из области техники и поэтому не будет здесь подробно описан. Достаточно сказать, что электронное устройство 100 содержит пользовательский интерфейс ввода (на чертежах не показан), например клавиатуру, мышь, сенсорную панель, сенсорный экран и т.п.) для получения пользовательского ввода. Вышеупомянутый экран 120 (например, экран, сенсорный экран, принтер и т.п.) для предоставления визуального или звукового вывода пользователю; интерфейс сетевой связи (на чертеже не показан) (например, модем, сетевую карту и т.п.) для двусторонней связи по сети 150 передачи данных; и процессор (на чертеже не показан), соединенный с пользовательским интерфейсом ввода, пользовательским интерфейсом вывода и интерфейсом сетевой связи, который выполнен с возможностью выполнять различные операции, включая те, что описаны ниже. С этой целью процессор может сохранять или иметь доступ к машиночитаемым командам, выполнение которых инициирует процессор выполнять различные описанные здесь процедуры.
Когда приложение, например приложение 130, запрашивает карту через API 160, например, путем уточнения необходимого места на карте и уровня или масштаба приближения, создается элемент объекта карты и любая его часть может быть обработана приложением 130 на экране 120, например, как в случае с вариантом части карты 105, показанным на Фиг. 1.
Как и с обычными картографическими данными (которые можно рассматривать как "объекты материнской карты"), которые могут быть запрошены и обработаны приложением 130 на экране 120, различные объекты дочерней карты могут быть добавлены к объекту материнской карты для расширения отображения карты и, например, для предоставления возможности взаимодействия конечному пользователю электронного устройства 100.
Пример такого дочернего объекта также упоминается как "географический объект". Такие объекты обычно обладают двумя признаками: графической геометрией и мета-данными. Геометрия может быть различного типа, например графического, точечного, линейного, полилинейного (линия, состоящая из нескольких сегментов), полигонального и так далее, и, как правило, она определяет то, как объект будет графически представлен на экране 120. Например, географический объект для улицы может представлять собой геометрические линейные или полилинейные данные, которые могут быть использованы для наложения или перекрытия соответствующей линии на перекрываемом изображении карты (которая может быть создана из других географических объектов). Географический объект для создания может содержать полигональные данные, которые могут быть использованы для наложения контура здания на перекрываемое изображение карты.
Географический объект также может включать в себя простую метку, например метка "Кафе Старбакс" может обладать точечной геометрией и данными, которые включают в себя часы работы, адрес, тип объекта и так далее. Это позволяет приложению 130 потенциально показывать точку на карте вместе с текстовыми данными, например: кафе, открыто ежедневно и круглосуточно, адрес и так далее.
В настоящем примере графическое представление для дочернего объекта карты, который будет показан на карте, рассматривается как "наложение" объекта (Наложение любого географического объекта может быть реализовано как дочерний объект самого географического объекта или как признак географического объекта). Наложение объекта может включать в себя любую комбинацию текста или графики для объекта или наложение объекта может быть отмечено как скрытое, если оно не должно отображаться по каким-либо причинам. Данные для включения в наложение географического объекта могут быть статическими и перманентно связанными с географическим объектом, например адрес или название улицы; или информация может быть динамической и приходить из источников данных, например: время отправления географического объекта, такого как автобусный или железнодорожный сегмент, или срочное сообщение для дорожного сегмента.
На Фиг. 1 наложение 110 для точечного географического объекта было добавлено для отображения на части карты, и это наложение 110 включает в себя графическую точку и текст, указывающий на имя города.
Может существовать несколько классов наложений, доступных для каждого типа географического объекта, например метки для точечных ориентиров или точек начала и конца маршрута могут сопровождаться отличительными графическими наложениями, а маршрутные точки вдоль маршрута могут быть обозначены другими графическими наложениями. Наложение для любого географического объекта может изменяться в зависимости от уровня приближения карты.
Карта и ее наложения могут предоставляться приложению 130 в виде, например, языка разметки гипертекста (HTML) или масштабируемого векторного рисунка (SVG) для обработки в приложении 130. Следует отметить, что может быть использован любой подходящий формат.
Одним компонентом картографического API 160 является API 165 маршрутизатора. Он позволяет приложению запрашивать маршрут от начальной точки к конечной через одну или несколько маршрутных точек.
API 165 маршрутизатора может выводить объект маршрута, включающий в себя упорядоченную последовательность географических объектов, соединяющих объект, который соответствует начальной точке, с объектом, который соответствует конечной точке, через серию сегментных и маршрутных объектов.
Маршрут может включать в себя различные типы транспорта, включая движение пешком и различные типы непешеходного транспорта - общественного или личного - и каждый сегмент связан с конкретным типом транспорта. "Пешеходный сегмент" может включать в себя полилинейные данные для улицы или части маршрута, которые необходимо пройти, а также мета-данные, включающие в себя название улицы, протяженность, время, необходимое для прохождения улицы и так далее. "Транспортный сегмент" может опять же включать в себя полилинейные данные, а также подробности об автобусах, трамваях, метро или даже паромах, которые обслуживают данную часть маршрута. В альтернативных вариантах осуществления технологии транспортный сегмент может соответствовать дорожному сегменту маршрута, который включает в себя несколько сегментов на разных дорогах. Другие географические объекты, которые включены в маршрут, могут включать в себя отметки, указывающие на пересадку в метро или на трамвай.
Стоит отметить, что необходимо выполнять обработку наложений для маршрута, чтобы обеспечить удобное отображение информации пользователю без загромождения экрана и без перекрывания картографических данных. Необходимо выполнять это аккуратно, а также адаптировать с учетом смены уровня приближения карты и взаимодействия пользователя с картой. Если на меньшем уровне приближения пользователю может быть предоставлена более полезная информация, то не будет необходимости приближать карту, что может привести к потере общего контекста маршрута. Аналогичным образом пользователь может взаимодействовать с отображаемым маршрутом, например, путем перемещения, добавления или удаления маршрутных точек, для чего может потребоваться удобная и умная реорганизация отображения карты, предоставляющая пользователю подобную опцию.
В настоящем примере картографический API 160 включает в себя оператор 170 тегов. Оператор 170 тегов предоставляет возможность контролировать отображаемую информацию для мест и маршрутных точек на протяжении маршрута, а также информацию для сегментов, включая пешеходные и транспортные сегменты маршрута.
В общем случае оператор 170 тегов контролирует следующее:
1. Наличие перекрытых важных текстовых меток для точек и сегментов на протяжении маршрута.
2. Позицию и ориентацию наложенного текста и/или графики, которые относятся к маршрутной точке или сегменту. Например, первая точка маршрута может быть расположена слева от второй точки. В данном случае наложение для первой точки может быть расположено слева от первой точки, а наложение для второй точки может быть расположено справа от второй точки, чтобы не мешать отображению маршрута между точками. Естественно возможны и более сложные сценарии, и работа оператора 170 тегов для подобных сценариев будет объяснена далее более подробно.
3. Объединение информации в наложении для последовательности транспортных сегментов в рамках одного маршрута.
Также следует отметить, что в любой конкретный момент может существовать несколько маршрутов, связанных с конкретной частью карты. Оператор 170 тегов может учитывать требования для отображения информации для соответствующих маршрутов относительно друг друга при определении указанных характеристик, что будет более подробно описано ниже.
На Фиг. 2 представлена блок-схема, иллюстрирующая обработку, выполняемую примером оператора 170 тегов.
Оператор 170 тегов работает, когда по меньшей мере один маршрут был запрошен приложением 130, и маршрут был получен от серверного приложения 140 через API 165 маршрутизатора. Оператор 170 тегов может быть связан с каждым маршрутом, отображаемым на карте, или оператор 170 тегов может обрабатывать отображаемую информацию для всех маршрутов в пределах конкретной области на карте.
На этапе 200 оператор 170 тегов отвечает либо на запрос от пользователя изменить уровень приближения карты или на запрос от пользователя изменить маршрут, например, когда было завершено добавление, перемещение или изменение позиции точек начала и конца маршрута или маршрутных точек вдоль него.
Исходя из представленного ниже описания будет ясно, что при изменении маршрута или уровня приближения могут потребоваться значительные изменения в наложениях для географических объектов маршрута. Оператор 170 тегов в настоящем примере полностью обновляет наложения для маршрута каждый раз, когда к нему обращаются, и соответственно к оператору 170 тегов, не обращаются в момент создания маршрута, а только в момент, когда пользователь явно запрашивает изменения уровня приближения или же подтверждает обновления маршрута. В настоящем примере это уменьшает нагрузку на сервер 140, обрабатывающий API запросы от множества потенциальных клиентских приложений (показано только одно), тем не менее следует отметить, что в тех случаях, когда доступна возможность обработки или, например, в других отдельных вариантах осуществления обращение к оператору 170 тегов происходит постоянно по мере изменения маршрута.
На этапе 210 оператор 170 тегов восстанавливает начальное состояние наложений для маршрута. Таким образом, если информация для последовательности сегментов была объединена в предыдущей итерации оператором 170 тегов, то, как описано ниже на этапе 240, подобные объединенные наложения будут удалены. Любые текстовые метки для сегментов, которые были скрыты в предыдущей итерации оператором 170 тегов, как описано ниже на этапах 230, 240 и 260, будут отмечены флагами, чтобы стать потенциально видимыми.
На этапе 220 оператор 170 тегов определяет соответствующие позицию и ориентирование для каждого наложения, связанного с маршрутной точкой (включая начальную и конечную точки), относительно положения маршрутной точки. Например, если маршрутная точка на маршруте расположена справа от предыдущей маршрутной точки, наложение для предыдущей маршрутной точки может быть расположено слева от предыдущей маршрутной точки, при этом наложение для следующей маршрутной точки в идеале будет расположено справа от расположения маршрутной точки, чтобы обеспечить максимально хорошее отображение маршрута между двумя точками. Тем не менее, в тех местах, где маршрут поворачивает, или где необходимо учитывать другие наложения, будет усложняться критерий позиционирования и ориентирования наложений, соответствующих расположению маршрутных точек.
В настоящем примере для каждого наложения для маршрутных точек (включая начальную и конечные точки) оператор 170 тегов проверяет каждую возможную позицию и ориентацию, чтобы определить сумму наложений в области пересечения с существующими наложениями других географических объектов на маршруте и любых других маршрутах или других наложений, связанных с фрагментов карты. Позиционирование и ориентация обеспечивают наименьшее число пересечений, выбранное для наложения маршрутных точек. Для начала следует отметить, что наложение для маршрутных точек включает в себя графический и текстовый компоненты. Решение касательно того, следует ли сохранять текстовый компонент, будет принято позднее на этапе 260, и тем не менее в настоящем примере, по меньшей мере для конкретного маршрута, графический компонент для маршрутной точки всегда отображается, и ему отдается приоритет над другими наложениями, т.е. маршрутные точки отображаются всегда, насколько это возможно.
На Фиг. 3-5, как видно в данном случае, наложение маршрутной точки для начальной точки А (улица Адмирала Лазарева, 19) располагается под его графическим компонентом, указывающим на расположение начальной точки. На Фиг. 3 наложение маршрутной точки В (улица Льва Толстого, 16) сначала расположено справа от расположения маршрутной точки, но по мере того как пользователь увеличивает уровень приближения на Фиг. 4 и Фиг. 5, наложение перемещается под расположение маршрутной точки. Наложение для конечной точки С (Оборонная улица, 6) сначала расположено над точкой, а затем перемещается под точку и в положение справа от нее по мере того, как пользователь увеличивает уровень приближения на Фиг. 4 и Фиг. 5.
На этапе 230 (фиг. 2) оператор 170 тегов определяет степень того, насколько важно отображать наложения для пешеходных сегментов. Для каждого пешеходного сегмента на маршруте оператор 170 тегов определяет пересечения наложений пешеходных сегментов с другими наложениями на маршруте, а также возможные другие маршруты, связанные с фрагментом карты. Если существуют такие пересечения, то любой текстовый компонент для пешеходного маршрута отмечается как скрытый, удаляется или сворачивается из наложения, а оператор 170 тегов далее пересчитывает область для пересечения с тем же наложением, пересечение с которым было определено. Если область пересечения равна нулю, оставшийся текст сворачивается, и оператор 170 тегов продолжает определять остальные наложения. Если остается пересечение или есть пересечение с последующими наложениями (несмотря на то, что текст был скрыт/удален/свернут), наложение для пешеходного сегмента отмечается как полностью скрытое.
На маршруте, показанном на Фиг. 3-5, существуют пешеходные сегменты между начальной точкой А и первым транспортным сегментом (метро Бульвар Адмирала Ушакова) и между последним транспортным сегментом (метро Бабушкинская) и конечной точкой С. Следует обратить внимание, что из-за потенциального пересечения между наложениями для географических объектов, включая начальные и конечные точки, а также первый и последний транспортные сегменты соответственно, текстовые компоненты для наложения пешеходных сегментов не показаны на Фиг. 3-5. С другой стороны, если пользователь увеличивает уровень приближения относительно того, который представлен на Фиг. 5, возможно, что названия улиц для этих пешеходных сегментов будут отображаться.
На этапе 240 (фиг. 2) оператор 170 тегов анализирует наложения для последовательностей транспортных сегментов, чтобы определить, следует ли их отображать, и необходимо ли потенциальное объединение этих наложений, чтобы информация для части последовательности транспортных сегментов могла одновременно отображаться до некоторой степени на конкретном уровне приближения, вместо того, например, чтобы информация о транспортном сегменте обладала приоритетом над другой.
Если маршрутные объекты не сгруппированы в последовательность на протяжении маршрута, например, через API 165 маршрутизатора, то оператор 170 тегов в первую очередь группирует по меньшей мере транспортные сегменты для маршрута, этап 242. Это может быть выполнено путем совпадения начальной и конечной точек сегментов с другими сегментами и маршрутными точками или при использовании любых других подходящих способов. В вариантах, представленных на Фиг. 3-5, транспортные сегменты начинаются на следующих точках: Метро Бульвар Адмирала Ушакова и метро Бульвар Дмитрия Донского, а завершаются на метро Тургеневская и метро Бабушкинская. Представлено также два промежуточных транспортных сегмента, связанных с метрополитеном, текст которых не показан на Фиг. 3-5.
В этом случае транспортные сегменты представляют собой единую последовательность. Если транспортные сегменты, тем не менее, разделены пешеходными сегментами или транспортными сегментами другого типа, то части последовательностей транспортных сегментов одного и того же типа будут проанализированы по отдельности, что описано ниже.
На примерах, представленных на Фиг. 3-5, оператор 170 тегов начинает с первого транспортного сегмента в последовательности и по умолчанию обладает наложением, которое включает в себя графический и текстовый компоненты, т.е. символ метро и "Бульвар Адмирала Ушакова", оператор 170 тегов проверяет наличие пересечений с наложением на следующий транспортный сегмент, т.е. символ метро и "Бульвар Дмитрия Донского", этап 243. На уровнях приближения, представленных на Фиг. 3-4, эти наложения будут пересекаться.
Если есть пересечение, оператор 170 тегов проверяет, является ли текущее наложение объединенным наложением, этап 249. Если текущее наложение не является объединенным, то оператор 170 тегов сворачивает текстовый компонент наложения, этап 244, и снова проверяет наличие пересечений с наложением для следующего транспортного сегмента, этап 245.
Если пересечения нет, например, когда текстовый компонент для третьего транспортного сегмента удаляется на уровне приближения, представленном на Фиг. 4, это помогает избежать пересечения с другими наложениями, включая наложения для четвертого транспортного сегмента, и оператор 170 тегов переходит к обработке следующего транспортного сегмента, этап 246, и повторяет описанные выше этапы.
С другой стороны, если только графическое наложение транспортного сегмента пересекается с наложением следующего сегмента, оператор 170 тегов создает объединенное наложение для этих двух транспортных сегментов и отмечает наложения для индивидуальных транспортных сегментов как скрытые, этап 247. Объединенное наложение может быть основано на любой комбинации данных для соседних индивидуальных транспортных сегментов, которые были объединены для обеспечения объединенного наложения, и в настоящем примере объединенное наложение включает в себя только графические компоненты из оригинальных транспортных сегментов. Оператор 170 тегов далее создает объединенное наложение, этап 248, и продолжает сверять объединенное наложение со следующим транспортным сегментом при следующей итерации на этапе 243.
В примере, представленном на Фиг. 3, на второй итерации на этапе 243 наложение третьего сегмента метро может быть зафиксировано как пересекающееся с объединенным наложением для первого и второго транспортных сегментов, и графический компонент третьего транспортного сегмента объединен с объединенным наложением для первого и второго транспортных сегментах, и индивидуальное наложение для третьего транспортного сегмента отмечено как скрытое на второй итерации этапа 247.
С другой стороны, на уровне приближения, показанном на Фиг. 3, на второй итерации этапа 243 индивидуальное наложение для третьего транспортного сегмента не пересекается с объединенным наложением для первого и второго транспортных сегментов, и соответственно оператор 170 тегов на этапе 246 переходит от объединенного наложения для первого и второго транспортных сегментов к анализу того, необходимо ли объединять наложение для третьего сегмента с наложением следующего транспортного сегмента.
На уровне приближения, показанном на Фиг. 3, на третьей итерации на этапе 243 наложение для четвертого транспортного сегмента (включая графику и текст) не будет пересекать объединенные наложения для первого, второго и третьего сегментов, и соответственно оператор 170 тегов анализирует потенциальное пересечение между четвертым транспортным сегментом и пятым транспортным сегментом метро Тургеневская.
Тем не менее в данном случае вне зависимости от того, будет ли удален текстовый компонент четвертого транспортного сегмента, его наложение будет перекрывать наложение для пятого транспортного сегмента метро Тургеневская, и соответственно на этапе 247 появляется второе объединенное наложение для этих транспортных сегментов, а индивидуальные наложения для этих сегментов становятся скрытыми.
Процессы на этапах 242 и 249 продолжаются до последнего транспортного сегмента в последовательности и последней последовательности их в маршруте. Как будет видно на примерах на Фиг. 3-5, на минимальном уровне приближения на Фиг. 3 два объединенных наложения были созданы из транспортных сегментов 1-3 и 4-6 соответственно. С другой стороны, на промежуточном уровне приближения на Фиг. 4 объединенные наложения создаются из первого и второго и из четвертого и пятого транспортных сегментов соответственно, но следует отметить, что шестой транспортный сегмент не пересекается с другими наложениями транспортных сегментов, его индивидуальное наложение отображается с графикой и текстом "Метро Бабушкинская".
Позиция объединенных наложений для Фиг. 3 и 4 может быть вычислена как точка, наиболее приближенная к центру позиции транспортных сегментов для объединенного наложения.
Также следует отметить, что возможно проанализировать, можно ли избежать пересечения соседних позиций наложения для любого транспортного сегмента - вне зависимости от того, свернут ли текст или нет на этапах 243 и 245 - с наложением для других транспортных сегментов маршрута, устранив тем самым необходимость объединения наложений.
Следует отметить, что существуют различные способы отображения объединенных наложений для транспортных сегментов. В примерах, представленных на Фиг. 3 и 4, графика отображается в формате строк в каждом объединенном наложении. Тем не менее возможны и другие варианты.
Следует отметить, что в примерах, представленных на Фиг. 3 и 4, объединенные наложения указывают на последовательность компонентов индивидуальных транспортных сегментов, которые были объединены в объединенные наложения, путем отображения графики компонентов транспортных сегментов слева направо в объединенных наложениях. Для обеспечения этого указания могут быть использованы другие известные способы.
Возможен вариант осуществления, в котором любые данные от индивидуальных транспортных сегментов могут быть скомбинированы для создания объединенных наложений, включая текстовые, растровые или векторные графические данные от индивидуальных транспортных сегментов. Также стоит отметить, что в настоящем примере данные являются статическими (включающими только символы метро) и соответственно объединенное наложение также является статичным, но объединенные наложения могут быть динамически обновляемыми путем отметки объединенного наложения в качестве перехватчика соответствующих потоков данных, которые связаны с индивидуальными транспортными сегментами, которые были объединены в объединенное наложение. Таким образом, например, объединенное наложение может изменять цвет, если с линией метро возникли проблемы.
В любом случае, как будет видно далее, наложения для объединенных транспортных сегментов будут расположены графически на плоскости z под маршрутными точками А, В, С, и, таким образом, даже если они пересекаются до некоторой степени, и это может быть оптимизировано, наложения для маршрутных точек могут отображаться поверх наложений транспортных сегментов.
После определения всех наложений транспортных сегментов, и поскольку при унификации наложений транспортных сегментов могут образоваться скрытые и перемещенные наложения, на этапе 250 оператор 170 тегов снова анализирует позицию и ориентацию маршрутных точек, как описано на этапе 220.
Наконец, на этапе 260 оператор 170 тегов проверяет, пересекается ли текстовой компонент наложения для маршрутных точек с другими наложениями. Наложение для каждой маршрутной точки проверяется на наличие пересечений с другими наложениями, включая объединенные наложения с этапа 240. Если есть пересечение с другим наложением, оператор 170 тегов сворачивает текст наложения маршрутной точки и пересчитывается область пересечения с другим наложением. Если область пересечения стала меньше, текст наложения маршрутной точки остается свернутым. Если нет, текстовый компонент для наложения маршрутной точки размещается таким образом, что никаких преимуществ от сворачивания текстовой части наложения маршрутной точки не будет.
Далее будет видно, что обработка наложений для нескольких маршрутов, отображаемых на одном фрагменте карты, может происходить несколькими различными способами. Если один маршрут обладает приоритетом над другими, например, если он заранее был выбран пользователем как предпочтительный, то наложениям для этого маршрута будет отдан приоритет в отображении по отношению к наложениям для других маршрутов.
Одним из способов управления несколькими маршрутами является работа с оператором 170 тегов для каждого маршрута, и каждому оператору 170 тегов известен приоритет или преимущество его маршрута по отношению к другим операторам 170 тегов. Каждый оператор 170 тегов может соответственно располагать наложения своих маршрутов на последовательности в z-плоскостях в порядке возрастания их приоритета.
В альтернативном варианте осуществления наложения для соответствующих маршрутов могут отображаться в прозрачном виде, и степень прозрачности будет обратно пропорциональна уровню их приоритета.
В альтернативном варианте осуществления одиночный диспетчер 170 тегов может отвечать за наложения для нескольких маршрутов, одновременно учитывая преимущества и приоритет одного маршрута над другими на этапах, указанных выше.
В любом случае, на этапе 270 после определения всех наложений для всех маршрутов для данного фрагмента карты, как было описано, приложение может заново обрабатывать наложения и/или часть карты, как на примерах на Фиг. 3-5.
Будет видно, что подход, описанный выше, предлагает вариант отображения карты, на котором отображаемые наложения для географических объектов на любом уровне приближения могут включать в себя любое сочетание скрытых, графических и/или текстовых компонентов, которые объединены с наложениями для других географических объектов в объединенные наложения. Это сделано для того, чтобы на любом уровне приближения пользователю предоставлялся оптимальный объем информации, и устранить необходимость пользователю дополнительно приближать или удалять карту для того, чтобы понять контекст маршрута и получить необходимую информацию о сегментах маршрута.
В случае объединенных наложений для транспортных сегментов их данные могут быть объединены таким образом, чтобы, например, при наведении курсора или нажатии пользователем на объединенное наложение отображалась более подробная информация, относящаяся к последовательности транспортных сегментов.
Опять же, подробная информация может быть статичной (например, список автобусных маршрутов или расписаний), но также подробная информация для объединенных наложений может быть динамически обновляемой путем отметки объединенного наложения в качестве перехватчика соответствующих потоков данных, которые связаны с индивидуальными транспортными сегментами, и которые были объединены в объединенное наложение. Таким образом, например, подробное отображение объединенного наложения может включать в себя ближайший автобус или метро или же информацию о чрезвычайных ситуациях.
В уточнение к описанному выше примеру, пользователь может получить один набор информации, относящейся к различным комбинациям транспортных сегментов, которые были изначально вычислены в соответствии с этапом 240.
В этом уточнении любые объединенные наложения для соответствующих последовательностей транспортных сегментов сделаны в ответ на взаимодействие пользователя, таким образом, например, если пользователь сначала нажимает на объединенное наложение и перетаскивает его на целевое объединенное наложение для соседней последовательности транспортных сегментов, транспортный сегмент, который связан с первым нажатым объединенным наложением, соседним с целевым объединенным наложением, будет перемещен из первого нажатого наложения в целевое объединенное наложение.
Таким образом, например, в случае на Фиг. 3, если пользователь нажал на объединенное наложение для первого, второго и третьего транспортных сегментов и перетаскивает его на объединенное наложение для четвертого, пятого и шестого транспортных сегментов, то информация для третьего транспортного сегмента будет перемещена в объединенное наложение для третьего, четвертого, пятого и шестого транспортных сегментов. Теперь, если пользователь наводит курсор на второе объединенное наложение, он может получить боле подробную информацию о третьем, четвертом, пятом и шестом транспортных сегментах за один щелчок. Пользователи могут копировать и использовать эту информацию в других местах.
Другие способы использования пользовательского интерфейса, отличные от механики "щелкни и перетащи", могут включать в себя простое нажатие на объединенное наложение и щелчок с зажатой клавишей «Ctrl» или двойной щелчок по целевому наложению, или же в случае сенсорного экрана - использование подходящих жестов, указывающих на намерения пользователя.
Также ясно, что при использовании данного способа пользователь может выбирать наложение для одиночного транспортного сегмента и перетаскивать его в соседнее объединенное наложение. Например, на Фиг. 4, пользователь может выбрать наложение для третьего транспортного сегмента и перетаскивать его в объединенное наложение для четвертого и пятого транспортных сегментов.
Фактически, наложения для индивидуальных транспортных сегментов, равно как и любые сегменты с Фиг. 5, могут быть объединены вручную с помощью этого способа; или же в некоторых случаях объединенные наложения могут быть разъединены обратно до определенной степени.
В любом случае эта функция обычно доступна в тех случаях, когда объединенные вложения относятся к одному типу транспортного сегмента.
Следует отметить, что представленное выше описание настоящей технологии поддерживает последовательную группировку географических объектов в рамках маршрута, который может включать в себя неоднородные части последовательности транспортных сегментов.
Обычно, при уменьшении уровня приближения части карты некоторая часть информации о транспортных сегментах опускается.
Вышеприведенный пример был описан в условиях устройства 100 общего назначения, на котором выполняется клиентское приложение 130, но тем не менее настоящая технология может быть реализована большим числом других способов, включая отдельное приложение или конкретные устройства, например устройства спутниковой навигации.
Технология также была описана в условиях объектно-ориентированной реализации, тем не менее следует отметить, что для реализации технологии может применяться любой другой подходящий способ программирования.
Модификации и улучшения вышеописанных вариантов осуществления настоящей технологии будут ясны специалистам в данной области техники. Предшествующее описание представлено только в качестве примера и не несет никаких ограничений. Таким образом, объем настоящей технологии ограничен только объемом прилагаемой формулы изобретения.
Изобретение относится к области обработки картографических данных. Способ обработки картографических данных, включающий: отображение маршрута, содержащего последовательность транспортных сегментов, которая располагается между начальной и конечной точками на карте, анализ потенциальных мест отображения графических представлений, относящихся к индивидуальным транспортным сегментам в пределах последовательности для каждого уровня приближения карты, отображение объединенного графического представления соседних индивидуальных транспортных сегментов вместо обычных графических представлений индивидуальных транспортных сегментов при пересечении потенциальных мест для отображения графических представлений соседних индивидуальных транспортных сегментов и отображение объединенного графического представления на фрагменте упомянутой карты на упомянутом уровне приближения. Изобретение предоставляет возможность чёткого и удобного планирования маршрута. 15 з.п. ф-лы, 5 ил.
1. Способ обработки картографических данных, включающий:
на первом этапе предоставляют маршрут, содержащий, по меньшей мере, одну последовательность транспортных сегментов, расположенную между начальной и конечной точками на карте;
на втором этапе анализируют потенциальные места отображения графических представлений, относящихся к транспортным сегментам в пределах последовательности для каждого уровня приближения карты;
на третьем этапе предоставляют объединенное графическое представление соседних транспортных сегментов вместо графических представлений транспортных сегментов при пересечении потенциальных мест для отображения графических представлений соседних транспортных сегментов, и
на четвертом этапе отображают, по меньшей мере, упомянутое объединенное графическое представление на фрагменте упомянутой карты на упомянутом уровне приближения.
2. Способ по п. 1, в котором на первом этапе: получают маршрут, включающий в себя множество сегментов; и группируют сегменты в по меньшей мере одну упомянутую последовательность транспортных сегментов.
3. Способ по п. 2, в котором при упомянутом группировании осуществляют предоставление одной или нескольких частей последовательности в пределах упомянутого маршрута, при этом каждая часть последовательности относится к одному типу транспорта, второй и третий этапы способа выполняют для каждой из частей последовательности.
4. Способ по п. 1, в котором каждый из второго, третьего и четвертого этапов выполняют при запросе пользователя на изменение уровня приближения упомянутой карты; либо при изменении пользователем упомянутого маршрута.
5. Способ по п. 1, в котором упомянутые графические представления транспортных сегментов предварительно включают в себя, по меньшей мере, графический компонент и текстовый компонент, и преимущественно каждое объединенное графическое представление основано на комбинации только графических компонентов для упомянутых транспортных сегментов.
6. Способ по п. 1, в котором каждое объединенное графическое представление основывают на комбинации данных для упомянутых соседних транспортных сегментов.
7. Способ по п. 5, в котором каждое объединенное графическое представление основывают на комбинации данных для упомянутых соседних транспортных сегментов.
8. Способ по п. 1, в котором в пределах упомянутого объединенного графического представления предоставляют указание на последовательность упомянутых соседних транспортных сегментов в рамках упомянутого маршрута.
9. Способ по п. 5, в котором при потенциальном пересечении упомянутого потенциального отображения мест для графических представлений соседних транспортных сегментов удаляют текстовый компонент, по меньшей мере, из одной графической презентации и повторяют второй этап.
10. Способ по п. 1, в котором упомянутый маршрут включает в себя, по меньшей мере, одну указанную пользователем маршрутную точку, и в котором каждая из упомянутых начальной и конечной точек и упомянутая, по меньшей мере, одна маршрутная точка связаны с графическими представлениями, каждое из которых обладает потенциальным местом отображения, и в котором далее выполняют позиционирование и ориентирование упомянутого графического представления для упомянутых начальной и конечной точек маршрута и упомянутой, по меньшей мере, одной маршрутной точки для минимизации пересечения с местами других графических представлений маршрута.
11. Способ по п. 10, в котором позиционирование и ориентирование выполняют до и/или после второго и третьего этапов.
12. Способ по п. 10, в котором дополнительно анализируют соответствующие потенциальные места отображения для каждого графического представления для упомянутых начальной и конечной точек и по меньшей мере одной упомянутой маршрутной точки; и по меньшей мере частично уменьшают упомянутое графическое представление в ответ на то, что потенциальное место отображения одного из упомянутых графических представлений потенциально пересекает графическое представление для любого другого сегмента на упомянутом маршруте.
13. Способ по п. 1, в котором упомянутый маршрут включает в себя один или несколько пешеходных сегментов, каждый пешеходный сегмент содержит потенциальное место отображения для соответствующего графического представления, и в котором дополнительно анализируют соответствующие потенциальные места отображения для каждого упомянутого графического представления каждого пешеходного сегмента; и по меньшей мере частично уменьшают графическое представление упомянутого пешеходного сегмента в ответ на то, что потенциальное место отображения пешеходного сегмента потенциально пересекает графическое представление любого другого сегмента на упомянутом маршруте.
14. Способ по любому из пп. 12-13, в котором при упомянутом, по меньшей мере, частичном уменьшении удаляют текстовый компонент из упомянутого графического представления.
15. Способ по п. 1, в котором на указанном третьем этапе дополнительно предоставляют объединенные данные для упомянутых соседних транспортных сегментов, и в котором дополнительно отображают упомянутые объединенные данные в ответ на взаимодействие пользователя с соответствующим отображаемым объединенным графическим представлением.
16. Способ по п. 1, в котором перемещают информацию о сегменте из одной упомянутой части последовательности в другую в ответ на взаимодействие пользователя с первым отображаемым объединенным графическим представлением для части последовательности сегментов маршрута и со вторым объединенным графическим представлением для соседней части последовательности, по меньшей мере, одного сегмента маршрута.
Установка для тарирования и градуировки динамометров и других силоизмерительных приборов | 1956 |
|
SU111929A1 |
СПОСОБ СОЗДАНИЯ КАРТОГРАФИЧЕСКИХ ДАННЫХ | 2008 |
|
RU2498220C2 |
УСТРОЙСТВО И СИСТЕМА ДЛЯ КЛАССИФИКАЦИИ ОКРУЖАЮЩЕЙ СРЕДЫ ТРАНСПОРТНОГО СРЕДСТВА | 2007 |
|
RU2423665C2 |
US 2006178807 A1, 10.08.2006. |
Авторы
Даты
2016-04-10—Публикация
2014-10-17—Подача