ES2373095T3 - Sistema y procedimiento para la abstracción y visualización de un mapa de ruta. - Google Patents

Sistema y procedimiento para la abstracción y visualización de un mapa de ruta. Download PDF

Info

Publication number
ES2373095T3
ES2373095T3 ES01920430T ES01920430T ES2373095T3 ES 2373095 T3 ES2373095 T3 ES 2373095T3 ES 01920430 T ES01920430 T ES 01920430T ES 01920430 T ES01920430 T ES 01920430T ES 2373095 T3 ES2373095 T3 ES 2373095T3
Authority
ES
Spain
Prior art keywords
point
elements
map
route map
route
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
ES01920430T
Other languages
English (en)
Inventor
Maneesh Agrawala
Chris Stolte
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Priority claimed from PCT/US2001/008440 external-priority patent/WO2001071485A1/en
Application granted granted Critical
Publication of ES2373095T3 publication Critical patent/ES2373095T3/es
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/34Route searching; Route guidance
    • G01C21/36Input/output arrangements for on-board computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Automation & Control Theory (AREA)
  • Processing Or Creating Images (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Studio Circuits (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)

Abstract

Un sistema de ordenador (620), que comprende: una unidad de procesamiento central (662); una memoria (688), acoplada a dicha unidad de procesamiento central (662); una región de visión (640) para representar un mapa de ruta; incluyendo dicha memoria (668) un módulo de programa, ejecutable por dicha unidad de procesamiento central (662), comprendiendo dicho módulo de programa: instrucciones para preparar el mapa de ruta para su representación sobre dicha región de visión; instrucciones para obtener una trayectoria desde un comienzo a un final, comprendiendo dicha trayectoria un conjunto inicial de elementos, incluyendo cada uno de dichos elementos información suficiente para determinar una dirección y cortando cada uno de dichos elementos al menos otro elemento en dicho conjunto inicial de elementos; incluyendo un primer elemento en dicho conjunto inicial de elementos dicho comienzo e incluyendo un segundo elemento en dicho conjunto inicial de elementos dicho final; instrucciones para aplicar de forma independiente un factor de escala diferente a cada uno de al menos dos elementos en dicho conjunto inicial de elementos troceando los elementos del conjunto inicial de elementos en intervalos consecutivos y escalando los elementos de forma diferente dependiendo del intervalo en el que caigan, en donde los elementos más pequeños se escalan para ser más largos y los elementos más largos se escalan para ser más cortos; de modo que la aplicación de dicho factor de escala diferente a cada uno de dichos, al menos dos elementos produce un conjunto escalado de elementos. instrucciones para estimar una altura total y una anchura total de una presentación de cada uno de dichos elementos en dicho conjunto escalado de elementos; instrucciones para seleccionar, en base a una función de dicha altura total y dicho ancho total, la región de visión; e instrucciones para sacar una presentación de cada uno de los elementos en dicho conjunto escalado de elementos a dicha región de visión; instrucciones para encajar una colección de puntos de referencia en dicho mapa de ruta con una función de distribución de probabilidad, correspondiendo cada uno de dichos puntos de referencia a una posición de una intersección en dicho mapa de ruta, en donde la distribución de probabilidad define ejes y extensiones a lo largo de esos ejes para la ruta, de modo que la caja delimitadora más estrecha (1704) que contiene la ruta completa es determinable a partir de estos ejes; instrucciones para deducir: (i) una posición media de dicha colección de puntos de referencia; (ii) una primera posición más lejana en la cual un miembro de la colección de puntos de referencia se extiende en una primera dirección lejos de la posición media; y (iii) una segunda posición más lejana a la cual se extiende un miembro de dicha colección de puntos de referencia en una dirección que es ortogonal a un vector entre dicha posición media y dicha primera posición más lejana; instrucciones para calcular la caja delimitadora (1704), en donde se determina un tamaño y una orientación de dicha caja delimitadora (1704) por dicha posición media, dicha primera posición más lejana y dicha segunda posición más lejana; instrucciones para determinar una dirección del eje longitudinal de dicha caja delimitadora (1704); instrucciones para girar dicho mapa de ruta, en una cantidad que es suficiente para reorientar dicho eje longitudinal de modo que dicho eje longitudinal descansa en una orientación predeterminada, para formar un mapa de ruta girado; e instrucciones para presentar una porción de dicho mapa de ruta girado sobre dicha región de visión, optimizando por lo tanto dicha representación de dicho mapa de ruta.

Description

Sistema y procedimiento para la abstracción y visualización de un mapa de ruta
La presente revelación se refiere, en general, a un sistema y procedimiento para generar un mapa de ruta. Más particularmente la invención se refiere a un sistema y un procedimiento para aplicar un factor de escala único a cada una de las carreteras en un mapa de rutas y para optimizar las posiciones de las etiquetas en el mapa de rutas. Además, se desvela un procedimiento para representar la apariencia de las carreteras en el mapa de ruta.
Antecedentes
Los mapas de rutas, cuando están bien diseñados, son un dispositivo efectivo para la visualización y comunicación de las direcciones. Tales mapas han existido en diversas formas durante siglos, y la reciente disponibilidad de bases de datos geográficas detalladas a través de la Internet ha conducido a un amplio uso de los mapas de rutas generados por ordenador. Los servicios de mapeo en línea típicamente proporcionan direcciones como un conjunto de mapas complementados con descripciones de texto. Sin embargo, tales mapas generados en línea por ordenador no son satisfactorios, debido a que los algoritmos usados para generar los mapas ignoran muchos de las técnicas y principios usados por los cartógrafos.
El uso eficaz de un mapa de rutas generalmente requiere dos actividades distintas: (i) seguir una vía hasta que se alcanza un punto crítico y (ii) cambiar la orientación en ese punto para seguir otra vía. De este modo, uno de los tipos más importantes de información que pueden comunicar los mapas de rutas son los puntos de reorientación, esto es, los puntos a lo largo de la ruta donde alguien debe girar conscientemente de una vía a otra. Sin embargo, los mapas de rutas generados por ordenador existentes fallan en la comunicación eficaz de los puntos de reorientación porque escalan todas las carreteras en el mapa por un factor de escala constante. El escalamiento de las carreteras en un mapa de rutas con un factor de escala constante se denomina en el presente documento como un escalamiento uniforme. Como resultado de un escalamiento uniforme, para las rutas de cualquier longitud razonable, el escalamiento uniforme frecuentemente requiere que algunas carreteras sean muy cortas. Pero a menudo son precisamente estas carreteras muy cortas las que conectan puntos de giro críticos. De este modo el escalamiento uniforme puede dar como resultado una pérdida de parte de la información más crítica encontrada en un mapa de ruta.
Otro defecto en los mapas de rutas generados por ordenador de la técnica anterior es que representan innecesariamente la longitud precisa, el ángulo y la curvatura de cada una de las carreteras en la ruta. Tales representaciones precisas se realizan a expensas de la legibilidad del mapa. Investigaciones sicológicas indican que la mayor parte de la gente distorsiona las distancias, los ángulos y las curvaturas cuando dibuja mapas de rutas. Véase por ejemplo, "Cómo el espacio estructura el lenguaje" de Tversky y Lee, Cognición Espacial: Un enfoque interdisciplinar para la representación y procesamiento del conocimiento espacial (eds.) Freska, Habel, y Wender, 1998, 157-175; "Herramientas Pictóricas y Verbales para Conducir Rutas", de Tversky y Lee, COSIT 99, Conferencia de Procedimientos, Stade, Alemania 1999, 51-64. Otros estudios sicológicos indican que la gente mantiene tales distorsiones en sus propias representaciones mentales de una ruta. Véase por ejemplo , "Distorsiones en Mapas Cognitivos" de Tversky, Geoforum 23, 1992, 131-138. De este modo, la adherencia a longitudes y ángulos precisos en los mapas generados por ordenador de la técnica anterior funcionan en contra de cómo las personas conceptualizan las rutas.
Los mapas de rutas generados por ordenador pueden clasificarse en cuatro principales estilos de mapeo: mapas de realzado de rutas, mapas de planificación de viajes (Trip Tik) de visión general/detalle, y mapas de dos dimensiones de distorsión no lineal. Los mapas de realzado de rutas simplemente realzan la ruta sobre un mapa general de carreteras de la región, como se muestra en la FIG. 1. Como el propósito de los mapas generales de carreteras es proporcionar un entendimiento de todo el sistema de carreteras en una región, tales mapas típicamente emplean factores de escala constantes y representan detalles extraños a lo largo del mapa. El escalamiento constante como se exhibe en la FIG. 1, generalmente causa uno de dos problemas. O se pierde información detallada de los giros porque el factor de escala es demasiado grande, o el factor de escala es suficientemente pequeño para mostrar el detalle, pero el mapa es muy grande. Como los mapas generales de carreteras no están optimizados para mostrar cualquier ruta particular, un mapa de ruta realzado a menudo sufrirá tanto del factor de escala grande como del inconveniente del tamaño. La claridad de la ruta en un mapa de realzado de ruta depende del estilo de realzado ya que es la única propiedad que diferencia la ruta de las otras carreteras. Usualmente la ruta se colorea de forma distinta, pero debido a que los mapas generales de carreteras proporcionan información del contexto sobre todo el mapa, el mapa está desordenado con información extraña que hace difícil percibir la ruta y los puntos de reorientación particulares.
Los mapas Trip Tik son similares a los mapas de realzado de ruta, pero están especialmente diseñados para comunicar una ruta particular. Como se muestra en la FIG. 2, un mapa Trip Tik usualmente se extiende sobre múltiples páginas rectangulares, y cada una de las páginas está orientada de modo que la ruta corre aproximadamente hacia abajo del centro de la página. Cada una de las páginas de Trip Tik emplea escalamiento constante, pero el factor de escala difiere a través de las páginas. El cambio del factor de escala de una página a otra permite que el Trip Tik muestre con mayor detalle la información de giros cuando se necesita. Sin embargo, como el mapa se extiende sobre muchas páginas y la orientación y el factor de escala varía de página a página, es difícil formar un entendimiento general de la ruta global.
Los mapas de vista general/detalle combinan múltiples mapas presentados a diferentes escalas para presentar una ruta única, como se muestra en la FIG. 3. Uno de los mapas (por ejemplo, la FIG. 3A) está escalado por un factor grande de modo que proporciona una visión general de toda la ruta. Como un factor de escala grande reduce la legibilidad de los detalles de giros locales, se proporcionan mapas que muestran la información giro a giro (por ejemplo, la FIG. 3B). Se usa un factor de escala constante para cada uno de los mapas, pero el factor de escala difiere entre los mapas. Aunque un mapa de visión general/detalle puede parecer una combinación efectiva, tales mapas no son satisfactorios en la práctica. El mapa de visión general raramente presenta más de la dirección global y el contexto de la ruta. Aunque los mapas proporcionan información detallada giro a giro para cada giro, el uso de mapas distintos para cada giro, a menudo con diferentes orientaciones y escalas, hace difícil entender cómo los mapas se corresponden entre sí. Por lo tanto, el navegador tiene dificultad en la formación del modelo cognitivo de la ruta.
Otra técnica de representación de rutas se describe en el documento US 5.945.927, que describe una visión a ojo de pájaro de un mapa de carreteras que rodea la posición actual de un vehículo en el cual se coloca un punto de visión en una posición predeterminada sobre el cielo en una dirección opuesta al destino fijado con la posición presente del vehículo como referencia y tiene una línea de visión que mira hacia abajo sobre el mapa de carreteras de modo que la parte del mapa de carreteras que rodea la presente posición del vehículo puede verse en forma de una escala ampliada y la parte restante del mapa de carreteras remoto de la presente posición y más cerca del destino fijado puede verse en una forma de escala que se reduce gradualmente.
Para asegurar una comunicación clara de todos los puntos de reordenación, algunas partes de una representación de la ruta pueden requerir un factor de escala pequeño mientras que otros requieren un gran factor de escala. Los investigadores han descrito intentos de usar técnicas de distorsión de imagen no lineales de dos dimensiones sobre los mapas generales de carreteras para proporcionar una vista de, enfoque más contexto (Véase, por ejemplo, "Superficies Flexibles de Tres Dimensiones: Para la Presentación Eficaz de Información Visual" de Carpendale y otros, Procedimientos del Simposio de ACM sobre Software y Tecnología de la Interfaz de Usuario, UIST 95, 1995, 217-226; "El Problema de Generalizado Detalle en Contexto" de Keahey, Procedimientos del Simposio de IEEE sobre Visualización de Información, Visualización IEEE 1998). Estas técnicas permiten a los usuarios elegir regiones del mapa que quieren enfocar y a continuación aplicar un aumento no lineal tal como una distorsión esférica, para aumentar estas regiones enfocadas. Tal distorsión de dos dimensiones permite representar información detallada sólo donde es relevante y a menudo produce mapas generales del área que pueden representarse convenientemente sobre una página única. Sin embargo, el principal problema con la distorsión de dos dimensiones no lineal es que las regiones de los bordes entre las porciones aumentada y no aumentada del mapa sufren una distorsión extrema.
En un mapa de rutas eficaz, todos los componentes esenciales de la ruta, especialmente las carreteras, son fácilmente identificables. La ruta está claramente marcada y es fácilmente evidente incluso en un vistazo general. El mapa contiene sólo tanta información como es necesaria y es fácil de transportar y manipular. Como objetivos adicionales de tal diseño, el contenido de los mapas, la precisión, y el estilo de presentación deben optimizarse cuidadosamente. El contenido de los mapas incluye parámetros importantes tales como el comienzo y final de la ruta, así como los puntos de reorientación. Aunque todos los mapas son representaciones abstractas de una ruta, hay un intervalo de estilos que pueden usarse para representar un mapa, con asociaciones que varían de precisión y realismo. Un estilo de presentación apropiado puede afectar enormemente a la legibilidad y la claridad de un mapa. Las propiedades de retina tales como el color y el grosor de la línea se usan para llamar la atención en características importantes del mapa. El estilo de presentación puede ayudar también al usuario en la interpretación de cuán estrechamente el mapa se corresponde con el mundo real. Otro objetivo importante del diseño del mapa es el uso adecuado de la información de contexto. La cantidad de información del contexto incluida en el mapa afecta enormemente a la utilidad del mapa. La información de contexto útil incluye etiquetas o nombres para una vía sobre la ruta así como información de contexto a lo largo de la ruta tal como edificios, semáforos, o señales de stop. Cuando se dibuja un mapa de ruta a mano, la mayor parte de la genta comúnmente usa información de contexto para indicar puntos de reorientación y, menos frecuentemente, para comunicar el progreso a lo largo de una carretera.
Estudios sicológicos ambientales han demostrado que los mapas de rutas generados por personas contienen distorsión, hay tres tipos principales de distorsión: (1) longitudes de las vías imprecisas, (2) ángulos de giro e intersecciones incorrectos, y (3) forma de la carretera simplificada. Por ejemplo Tversky y Lee, COSIT 99 Conferencia de Procedimientos, 1999, 51-64 pidió a un grupo de estudiantes esquematizar un mapa de carreteras entre dos localizaciones cerca del campus de la Universidad de Stanford. Aunque animaba a los participantes en su estudio para representar las vías y las intersecciones con precisión, la mayor parte no lo hicieron. La mayor parte de las intersecciones se dibujaron en ángulos rectos independientemente de su ángulo real y el setenta y uno por ciento de los participantes usaron simples curvas genéricas y líneas rectas para representar las carreteras. Incluso cuando los participantes intentaron comunicar la forma o la longitud de la carretera con precisión, típicamente representaron estos atributos incorrectamente. Tal distorsión en el mapa es en efecto, beneficiosa porque aumenta la flexibilidad disponible para el realizador del mapa en el diseño y el trazado del mapa. El escalamiento variable de la longitud de cada una de las carreteras permite al realizador del mapa asegurar que todos los puntos de reordenación son visibles, aunque la flexibilidad en la elección de los ángulos de giro y la curvatura de la carretera permite simplificar el mapa. Tales distorsiones pueden mejorar simultáneamente la legibilidad y la conveniencia del mapa de ruta con el pequeño efecto adverso sobre su claridad y terminación.
Los mapas de carreteras dibujados a mano a menudo presentan una buena combinación de legibilidad, claridad, terminación y conveniencia, como se muestra en la FIG. 4. En lugar de usar un factor de escala constante, los mapas dibujados a mano sólo mantienen el ordenamiento relativo de las carreteras por longitud. Aunque esto asegura que las carreteras más largas aparecen más largas que las carreteras más cortas en el mapa, cada una de las carreteras está escalada por un factor diferente. A menudo el diseñador del mapa no conoce la longitud exacta de las carreteras y sólo conoce sus longitudes relativas entre sí. La flexibilidad del escalamiento relativo permite a los mapas dibujados a mano que quepan dentro de un tamaño manejable y permanecer legibles.
Los mapas de rutas dibujados a mano típicamente eliminan la mayor parte de la información del contexto que no se encuentra directamente a lo largo de la ruta. Esta estrategia reduce el desorden global y mejora la claridad. Los ángulos de intersección en los mapas dibujados a mano son generalmente incorrectos, la forma precisa de las carreteras a menudo está mal representada, y las carreteras se representan típicamente como líneas genéricas rectas o curvas. Estas distorsiones hacen el mapa más simple y sólo eliminan información innecesaria. Los mapas de rutas dibujados a manos se presentan en un estilo típico "esquemático" de garabato de pluma y tinta. Muchos navegadores son familiares con tales mapas dibujados a mano y el estilo esquemático es un indicador sutil de la imprecisión en el mapa.
Para mejorar la claridad del mapa de ruta, se han desarrollado muchos algoritmos para suavizar, interpolar y simplificar las carreteras en un mapa de ruta. En el área de la representación de mapas los algoritmos de simplificación más conocidos son los "Algoritmos para la reducción del número de puntos requeridos para representar una línea digitalizada o su caricatura" de Douglas & Peucker, el Cartógrafo Canadiense 10(2), 1973, 112-22; "Un enfoque iterativo para la aproximación poligonal de curvas planas cerradas" de Ramer, Gráficos de Ordenador y Procesamiento de Imagen. 1, 1972, 244-56; "Generalización de líneas por eliminación repetida de puntos" de Visvalingam & Whyatt, Diario de Cartografía. 30(1), 1993, 46-51; y "Esquematización de mapas: Simplificación de la forma geográfica por revolución de curvas discretas" de Barkowsky, Latecki, y Richter, en Freksa, Brauer, Hable y Wender (eds.): Cognición Espacial II, Springer-Verlag, Berlín, en la prensa. Dada una línea curva a trozos como un conjunto de puntos de forma, todos estos procedimientos eliminan un subconjunto de los puntos de forma para producir una curva más simple. Ejemplos de puntos de forma 3302 y puntos de giro 3306 se proporcionan en la FIG. 33A. Cada uno de estos procedimientos usa diferentes criterios/métricas para decidir qué puntos de forma eliminar y cuáles retener. A medida que las carreteras se hacen más simples aumentan tanto los beneficios de percepción como la velocidad de procesamiento. La forma más extrema de simplificación reemplaza la carretera de líneas a trozos con un único segmento de línea desde el primer punto de la forma al último punto de la forma. Aunque este enfoque extremo produce una buena aproximación en la mayor parte de los casos, puede causar que el mapa se convierta en erróneo. Los algoritmos de la técnica anterior para la simplificación de carreteras en un mapa de carreteras pueden generar tres tipos de resultados no deseables:
(i)
Falsas Intersecciones. Carreteras que no se cruzaban antes de la simplificación, se cruzan falsamente después de la simplificación. Un ejemplo de falsa intersección 3310 se encuentra en la FIG. 33A.
(ii)
Perdida de Intersecciones. Carreteras que se cruzaban antes de la simplificación ya no se cruzan después de la simplificación. Un ejemplo de pérdida de intersección 3312 se encuentra en la FIG. 33B.
(iii) Ángulos de Giro Inconsistentes: El ángulo de giro entre carreteras puede cambiar sustancialmente, incluso hasta el punto de que un giro a la izquierda puede aparecer como un giro a la derecha. Un ejemplo de ángulo de giro equivocado 3314 se encuentra en la FIG. 33C.
En base a los antecedentes anteriores es evidente que es necesario en la técnica un sistema y un procedimiento mejorados para la realización de mapas generados por ordenador. También se necesita en la técnica un sistema y un procedimiento para la realización de mapas generados por ordenador que evite las dificultades encontradas en los algoritmos de realización de mapas existentes, tales como el uso de información extraña y escalamiento constante.
Sumario de la invención
La presente invención proporciona un sistema y un procedimiento mejorados para la realización de mapas generados por ordenador como se define en las reivindicaciones adjuntas. En la presente invención, cada una de las carreteras en una ruta se escala de forma individual. El factor de escala para cada una de las carreteras se optimiza usando una función objetivo que considera varios factores tales como el número de falsas intersecciones y el número de carreteras que son más cortas que una longitud umbral mínima. De este modo, la ruta escalada entra en una región de visión predeterminada sin pérdida de información acerca de los giros importantes. El refinamiento frente a la función objetivo se realiza por uno de muchos posibles algoritmos de búsqueda tales como las búsquedas codiciosas, programas de recocido simulado, o descensos de gradiente. Los algoritmos de búsqueda codiciosa se describen en la Introducción a los Algoritmos de Cormen y otros, eds. Cormen, Leiserson, & Rivest, La Prensa de MIT, Cambridge, Massachusetts, 1990, 329-355. El recocido simulado se desveló por primera vez por Kirkpatrick y otros, en el artículo "Optimización por Recocido Simulado". Ciencia 220, 1983, 671-680. A diferencia de los procedimientos de la técnica anterior, algunas realizaciones de la presente invención proporcionan algoritmos de simplificación que aseguran que no ocurren problemas tales como las falsas intersecciones, la pérdida de intersecciones, y los ángulos de giro inconsistentes en el mapa de ruta escalado final.
Se elimina el desorden del mapa en el mapa escalado refinando las posiciones de las etiquetas frente a una nueva función objetivo que minimiza el número de carreteras que cortan las etiquetas, el número de etiquetas que se cortan entre sí, y la distancia a lo largo de la ruta entre una etiqueta y el centro de una carretera que corresponde a la etiqueta. En una realización, se usa el recocido simulado para encontrar una solución a la nueva función objetivo. El mapa de rutas escalado final se presenta de modo que tiene la apariencia de un mapa dibujado a mano. El mapa representado claramente comunica cada punto de reorientación en una forma legible y conveniente.
Una realización de la presente invención proporciona un procedimiento para girar el mapa de rutas para el mejor ajuste de la proporción de aspecto de la pantalla. En este procedimiento, se define una colección de puntos de referencia en el mapa de rutas. Cada uno de los puntos de referencia en la colección corresponde a una posición de una intersección en el mapa de rutas. La colección de los puntos de referencia forma una distribución en un espacio de dos dimensiones. Por lo tanto, pueden ajustarse con una función de distribución de probabilidad que define la posición media de la colección de puntos de referencia en el espacio de dos dimensiones así como la posición más lejana en el cual un miembro de la colección de puntos de referencia se extiende en una primera dirección lejos de la posición media (por ejemplo, una primera extensión) así como la posición más lejana a la cual se extiende un miembro de la colección de puntos de referencia en una dirección que es ortogonal con el vector entre la posición media y la posición de la primera extensión (es decir, una segunda extensión). La primera extensión media y la segunda extensión proporcionan una descripción de la frontera exterior de los puntos de referencia y se calcula una caja delimitadora que denota esta frontera exterior. La caja delimitadora se centra sobre la posición media y los lados de la caja delimitadora se determinan por las posiciones de la primera extensión y la segunda extensión. La orientación de la caja delimitadora se determina por el vector entre la posición media y la posición de la primera extensión. En base a esta orientación, el mapa de rutas se gira una cantidad que es suficiente para reorientar la caja delimitadora en una orientación predeterminada, formando de este modo un mapa de rutas girado. Una porción del mapa de rutas girado se presenta a continuación, optimizando por lo tanto la representación del mapa de rutas.
Otra realización de la presente invención proporciona un procedimiento para la colocación de una anotación o etiqueta en un mapa de ruta. En el procedimiento, el mapa de ruta se divide en una cuadrícula inicial. La cuadrícula está compuesta de celdas de la cuadrícula. Se identifican las celdas candidatas de la cuadrícula, dentro de las cuales puede colocarse la anotación o etiqueta. Cada una de las celdas candidatas de la cuadrícula está libre de objetos asociados con el mapa de ruta. Cuando la anotación o etiqueta no cabe en una única celda candidata de la cuadrícula, se conduce una búsqueda de celdas de la cuadrícula que tienen suficientes celdas adyacentes de la cuadrícula libres de objetos. Esta búsqueda está sujeta al requisito de que la celda candidata de la cuadrícula, y una
o más de las celdas de cuadrícula adyacentes libres de objetos, deben poder acomodar la anotación o etiqueta. Cuando no se encuentra ninguna celda candidata de la cuadrícula durante las etapas de identificación o búsqueda, se realiza un esquema de subdivisión de la cuadrícula. El esquema de subdivisión de la cuadrícula subdivide una porción de las celdas de la cuadrícula, en la cuadrícula inicial, para formar una nueva cuadrícula. A continuación, se repiten las etapas de identificación y búsqueda usando la nueva cuadrícula. Cuando se encuentran múltiples celdas candidatas de la cuadrícula se califica cada una de las celdas candidatas de la cuadrícula en base a la densidad de objetos en las celdas de la cuadrícula que bordean cada una de las celdas candidatas de la cuadrícula. La celda candidata de la cuadrícula que bordea celdas de la cuadrícula que tienen la densidad más baja de objetos se selecciona como la celda candidata de la cuadrícula y se descartan las otras celdas candidatas de la cuadrícula. La anotación o etiqueta se posiciona en la celda candidata de la cuadrícula, colocando por lo tanto la anotación o etiqueta en el mapa de ruta.
En otra realización de la presente invención, se posicionan una pluralidad de etiquetas en un mapa de rutas. Para cada una de las etiquetas en la pluralidad de etiquetas, se realizan las siguientes etapas:
(i)
Una pluralidad de definiciones de restricciones se asocian con la etiqueta. Cada una de las definiciones de restricciones en la pluralidad de definiciones de restricciones define de forma única una caja delimitadora, la orientación de la etiqueta y el estilo de la disposición.
(ii)
Se selecciona una definición de restricción inicial a partir de la pluralidad de definiciones de restricciones.
(iii) se posiciona un centro de la etiqueta en una localización dentro de la caja delimitadora definida por la definición de restricción inicial de acuerdo con la orientación de la etiqueta y el estilo de disposición definida por la definición de la restricción inicial.
El procedimiento comprende además la elección de una etiqueta de la pluralidad de etiquetas y determinar una primera puntuación (S1) usando una función objetivo. La función objetivo se determina por la posición de la etiqueta elegida en el mapa de ruta. A continuación, se selecciona la definición de restricción de la pluralidad de definiciones de restricciones asociadas con la etiqueta seleccionada. La definición de restricción seleccionada se aplica a continuación. La aplicación de la definición de restricción incluye la etapa de reposicionamiento del centro de la etiqueta en el interior de la caja delimitadora definida por la definición de restricción, de acuerdo con la orientación de la etiqueta y el estilo de disposición definido por la definición de la restricción. Se calcula una segunda puntuación (S2) usando una función objetivo que considera la posición de la etiqueta reposicionada. La nueva posición para la etiqueta se acepta de acuerdo con una función que se determina por una comparación de S1 y S2. Las etapas de elección, determinación, aplicación, cálculo y aceptación se repiten hasta que se da una primera ocurrencia de condición de salida. Las condiciones de salida de ejemplo incluyen la consecución de una puntación baja adecuada
o la ocurrencia de un número predeterminado de repeticiones de las etapas de elección, determinación, aplicación, cálculo y aceptación.
Otra realización más de la presente invención proporciona un procedimiento de preparación de un mapa de ruta que describe una trayectoria entre un comienzo y un final. En este procedimiento, se obtiene la trayectoria desde el comienzo hasta el final. La trayectoria comprende un conjunto inicial de elementos. Cada uno de los elementos incluye suficiente información para determinar una dirección. Además, cada elemento corta al menos otro elemento en el conjunto inicial de elementos. Un primer elemento en el conjunto inicial de elementos incluye un elemento de comienzo y un segundo elemento en el conjunto incluye el final. Un factor de estala diferente se aplica independientemente a cada uno de los al menos dos elementos en el conjunto inicial de elementos. La aplicación del factor de escala diferente a cada uno de los, al menos dos elementos produce un conjunto escalado de elementos. Se estima la altura total y el ancho total de la representación de cada uno de los elementos en el conjunto escalado de elementos. A continuación, se selecciona una componente de imagen en base a una función de la altura total y el ancho total. Finalmente, se forma una imagen del mapa de ruta escalado representando cada uno de los elementos en el conjunto escalado de elementos.
Otra realización de la presente invención incluye un procedimiento de añadir una calle de cruce, y una etiqueta de la calle de cruce asociada con la calle de cruce, a un mapa de ruta que incluye una vía principal. En el procedimiento, se determina un punto de intersección en el cual la calle de cruce corta la vía principal. La calle de cruce se coloca en el mapa de ruta con la restricción de que la calle de cruce corta la vía principal en una primera posición de prueba que se elige aleatoriamente a partir de un segmento de la vía principal que incluye el punto de intersección. La etiqueta de la calle de cruce se posiciona en una segunda posición de prueba dentro de un área predeterminada. El área predeterminada incluye el punto de intersección. La longitud de la calle de cruce se ajusta de modo que la calle de cruce pasa por debajo de la etiqueta de la calle de cruce y corta la vía principal. La primera o segunda posición de prueba se perturba por una cantidad aleatoria y se obtiene una puntuación de una función, es decir, una función de puntuación. El tamaño de la cantidad aleatoria usada para perturbar la primera o segunda posiciones de prueba es típicamente un aumento pequeño que se diseña para ver si un "pellizco" en la primera o segunda posiciones de prueba conduce a una puntuación mejorada. Sin embargo, en ocasiones, el tamaño de la cantidad aleatoria usada para perturbar la primera o segunda posiciones de prueba es considerablemente mayor, para impedir que la función de puntuación quede atrapada en un mínimo local. La función de puntuación se determina por la localización de la calle de cruce y la etiqueta de la calle de cruce en el mapa de ruta. Las etapas de perturbación y obtención se repiten hasta que la puntuación alcanza un valor umbral o las etapas de perturbación y obtención se han ejecutado un número predeterminado de veces. La calle de cruce y la etiqueta de la calle de cruce se añaden al mapa de ruta cuando la puntuación alcanza el valor umbral. Además, la calle de cruce y la etiqueta de la calle de cruce no se añaden al mapa de ruta cuando se han ejecutado las etapas de perturbación, obtención y determinación el número predeterminado de veces antes de que la puntuación haya alcanzado el valor umbral.
En otra realización más de la presente invención, se proporciona un procedimiento de preparación de un mapa de ruta que describe una trayectoria entre un comienzo y un final. En este procedimiento, se obtiene la trayectoria desde el comienzo al final. La trayectoria comprende un conjunto inicial de elementos. Cada uno de los elementos incluye suficiente información para determinar una dirección y cada uno de los elementos corta al menos a otro elemento en el conjunto inicial de elementos. Un primer elemento en el conjunto inicial de elementos incluye el comienzo y un segundo elemento en el conjunto inicial de elementos incluye el final. Un factor de escala diferente se aplica independientemente a cada uno de los, al menos dos elementos en el conjunto inicial de elementos. La aplicación del factor de escala diferente a cada uno de los, al menos dos elementos produce un conjunto escalado de elementos. Se crea una presentación de cada uno de los elementos en el conjunto escalado de elementos para formar un mapa intermedio. Un conjunto de N puntos de ruptura se identifica en el mapa intermedio. Cada uno de los puntos de ruptura en el conjunto de N puntos de ruptura se produce en un elemento en el conjunto escalado de elementos, y se determina un valor mínimo para N por la expresión:
N � S/M
donde,
S es el número de elementos en el conjunto escalado de elementos; y
M es el número máximo predeterminado de elementos.
El mapa intermedio se divide a continuación en un conjunto de N mapas de elementos, incluyendo cada uno de los mapas de segmentos un punto de ruptura diferente. El conjunto de N mapas de segmentos comprende por lo tanto el mapa de ruta.
Otra realización de la presente invención proporciona un procedimiento para la simplificación de una carretera en un mapa de ruta. En el procedimiento, la carretera se aproxima como una línea curva a trozos que incluye una pluralidad de puntos de forma. Se marca cada uno de los puntos de la forma en la pluralidad de puntos de la forma está conectado por un segmento lineal a un punto de forma respectivo en la pluralidad de puntos de la forma. Al menos un punto en el que la carretera corta a otra carretera en el mapa de ruta se añade a la pluralidad de puntos de forma como un punto de intersección. Cada uno de los puntos de la forma en la pluralidad de puntos de la forma que no es (i) un primer punto de la forma, (ii) un último punto de la forma, o (iii) un punto de intersección. Se realiza una comprobación para la detección de falsas intersecciones entre la carretera y otra carretera en el mapa de rutas y, cuando se encuentra una falsa intersección, se desmarca el primer punto de la forma marcado y el último punto de la forma marcado en la pluralidad de puntos la forma. La etapa de comprobación se repite hasta que no se encuentra ninguna falsa intersección o no hay ningún punto de la forma marcado en la pluralidad de puntos de la forma. Cuando se marca un punto de la forma, la línea curva a trozos se modifica reemplazando el punto marcado de la forma y cada uno de los segmentos lineales conectados al punto marcado de la forma con un nuevo segmento lineal que tiene origen en un punto de la forma o punto de intersección inmediatamente precedente al punto marcado de la forma y termina con un punto de la forma o punto de intersección inmediatamente posterior al punto marcado de la forma. Cuando se ha desmarcado un punto de la forma, se modifica la línea curva a trozos reemplazando el nuevo segmento lineal asociado con el punto de la forma con (i) un primer segmento lineal que está delimitado por el punto de la forma o punto de intersección inmediatamente precedente al punto de la forma marcado y el punto de la forma y (ii) un segundo segmento lineal que está delimitado por el punto de la forma o punto de intersección posterior al punto marcado de la forma y el punto de la forma. De este modo, la línea curva a trozos representa una carretera suavizada que corresponde con la carretera en dicho mapa de ruta.
Breve descripción de los dibujos
La FIG. 1 es un mapa de realzado de ruta de la técnica anterior.
La FIG. 2 es un mapa Trip Tik de la técnica anterior.
La FIG. 3 es un mapa de Vista General/Detalle de la técnica anterior.
La FIG. 4 es un mapa dibujado a mano de la técnica anterior.
La FIG. 5 es un mapa que se genera de acuerdo con una realización de la presente invención.
La FIG. 6 ilustra un sistema para la generación de un mapa de ruta de acuerdo con una realización de la presente invención.
La FIG. 7 ilustra las etapas de procesamiento utilizadas para optimizar la longitud de las carreteras individuales en un mapa de rutas usando un algoritmo codicioso, de acuerdo con una realización de la presente invención.
La FIG. 8 ilustra las etapas de procesamiento utilizadas para optimizar la longitud de las carreteras individuales en un mapa de rutas usando un programa de recocido simulado, de acuerdo con una realización de la presente invención.
La FIG. 9 ilustra las etapas de procesamiento utilizadas para optimizar las posiciones de las etiquetas en un mapa de rutas usando un programa de recocido simulado, de acuerdo con una realización de la presente invención.
La FIG. 10 ilustra un mapa antes y después de la realización de las extensiones de la carretera de modo que las etiquetas están asociadas de forma óptima con las carreteras correspondientes.
Las FIG. 11A, 11B, y 11C ilustran las etapas conceptuales utilizadas para identificar el eje más largo de una ruta y para girar este eje en una dirección predeterminada, de acuerdo con una realización de la presente invención.
La FIG. 12 ilustra un problema generalizado de colocación de las anotaciones sobre un mapa de ruta.
La FIG. 13 ilustra las etapas de procesamiento asociadas con una solución al problema generalizado de colocación de las anotaciones en un mapa de ruta de acuerdo con una realización de la presente invención.
La FIG. 14 ilustra la subdivisión espacial de un mapa de ruta para identificar regiones del mapa de ruta que son adecuadas para la colocación de anotaciones así como de etiquetas.
La FIG. 15 ilustra un problema generalizado, que se presenta en un enfoque de subdivisión espacial para la colocación de una etiqueta o anotación en un área restringida, en la cual no puede encontrarse ninguna celda de la cuadrícula vacía.
La FIG. 16 ilustra cómo se usa una subdivisión no uniforme para resolver el problema de usar la subdivisión espacial para colocar una etiqueta o anotación en un área restringida.
Las FIG. 17A y 17B ilustran el uso de cajas delimitadoras y las FIG. 18A y 18C ilustran el uso de vectores de orientación que se presentan en algunas definiciones de restricciones de acuerdo con una realización de la presente invención.
Las FIG. 18A, 18B, 18C, 18D, 18E y 18F ilustran diversos estilos de disposición que se presentan en algunas definiciones de restricciones de acuerdo con una realización de la presente invención.
La FIG. 19 ilustra las etapas de procesamiento usadas para optimizar las posiciones de etiquetas en un mapa de ruta usando un programa de recocido simulado que incluye el uso de definiciones de restricciones, de acuerdo con una realización de la presente invención.
La FIG. 20 proporciona una visión general de una realización de un módulo de disposición 688 que hace uso de las definiciones de restricciones expandidas, de acuerdo con una realización de la presente invención.
La FIG. 21 ilustra las componentes de una imagen de ejemplo y cajas de texto usadas para componer formas, de acuerdo con una realización de la presente invención.
Las FIG. 22A, 22B, y 22C ilustran diversas formas de salida de acuerdo con una realización de la presente invención.
La FIG. 23 ilustra un mapa de ruta escalado con calles de cruce de acuerdo con una realización de la presente invención.
La FIG. 24 ilustra el problema general de determinación de una cantidad de desorden visual en una imagen basada en puntos de imagen de un mapa de ruta.
La FIG. 25 ilustra un mapa de ruta con varios puntos de características, tales como números de salidas, localizaciones de restaurantes, y nombres de ciudades incluidas de acuerdo con una realización de la presente invención.
La FIG. 26 ilustra un mapa de ruta desordenado que sería difícil de usar mientras se conduce.
La FIG. 27 ilustra el mapa de ruta de la FIG. 26 dividido en dos mapas de segmentos que, tomados conjuntamente, comprenden el mapa de ruta de la FIG. 26.
Las FIG. 28A, 28B, 28C y 28D ilustran diversos mapas intermedios y de segmentos de acuerdo con una realización de la presente invención.
La FIG. 29 ilustra un mapa de ruta con una inserción correspondiente de acuerdo con una realización de la presente invención.
La FIG. 30 ilustra cómo el uso de una inserción puede usarse para evitar la distribución de un mapa de ruta predominantemente Norte-Sur o Este-Oeste de acuerdo con una realización de la presente invención.
La FIG. 31 ilustra cómo el uso de una inserción puede usarse para asociar etiquetas legibles a carreteras que no tienen etiquetas legibles en un mapa de ruta principal correspondiente, de acuerdo con una realización de la presente invención.
La FIG. 32A ilustra un mapa de ruta antes de la simplificación de curvas (carreteras o elementos) y la FIG. 32B ilustra el mapa de ruta de la FIG. 32A después de la simplificación de las curvas, de acuerdo con una realización de la presente invención.
Las FIG. 33 ilustran cómo la simplificación de la carretera puede introducir falsas intersecciones (33A), pérdida de intersecciones (33B), y ángulos de giro inconsistentes (33C).
La FIG. 34 ilustra cómo se trata una carretera como un conjunto de puntos de la forma dentro de los cuales se introducen los puntos de intersección, de acuerdo con una realización de la presente invención.
La FIG. 35 ilustra la intersección de las carreteras r1 y r2 en el punto 3502.
Las FIG. 36A y 36B ilustran respectivamente dos procedimientos diferentes para la identificación de puntos de la forma para eliminar o retener carreteras en un mapa de carreteras que no son parte de una rampa, de acuerdo con una realización de la presente invención.
La FIG 37 ilustra aspectos de puntos de la forma en una rampa que se miden para evaluar la relevancia de un punto particular de la forma en una rampa en un mapa de ruta durante un procedimiento de simplificación, de acuerdo con una realización de la presente invención.
La FIG. 38 ilustra puntos de la forma en una rampa en un mapa de ruta, de acuerdo con una realización de la presente invención.
La FIG. 39 ilustra cómo se realiza una comprobación de la consistencia de un ángulo de giro cuando se considera dejar una rampa a partir de un mapa de carreteras, de acuerdo con una realización de la presente invención.
Las FIG. 40A y 40C ilustran porciones de un mapa de ruta sin escala mientras que las FIG. 40B y 40D muestran los mapas de rutas escalados correspondientes que ilustran respectivamente cómo puede conducir el escalamiento a falsas intersecciones y pérdidas de intersecciones.
La FIG. 41A ilustra cómo se puntúa una pérdida de intersección y la FIG. 41B ilustra cómo se puntúa una intersección fuera de lugar de acuerdo con una realización de la presente invención.
Las FIG. 42A, 42B, y 42C ilustran varios escenarios de falsas intersecciones, mostrando para cada uno de los puntos falsos de intersección en qué dirección debe viajar el punto final más próximo para eliminar el nudo formado por ese punto de falsa intersección.
La FIG. 43 ilustra un nudo que se produce por una falsa intersección cuando se escala un mapa de ruta.
Las FIG. 44A y 44B ilustran procedimientos para la resolución de falsas intersecciones, de acuerdo con las diversas realizaciones de la presente invención.
Las FIG. 45A y 45B ilustran dos tipos de pérdida de intersecciones que surgen durante el escalamiento del mapa de ruta.
Las FIG. 46A y 46B ilustran procedimientos para la resolución de pérdidas de intersecciones, de acuerdo con las diversas realizaciones de la presente invención.
Las FIG. 47A y 47B ilustran la utilidad de usar intersecciones extendidas, de acuerdo con una realización de la presente invención.
La FIG. 48 ilustra cómo puede funcionar una intersección extendida frente a la resolución de una falsa intersección durante el refinamiento del mapa de ruta.
La FIG. 49 ilustra un modo para determinar qué intersecciones extendidas añadir a la puntuación de refinamiento, de acuerdo con una realización de la presente invención.
Referencias numéricas iguales se refieren a las partes correspondientes a lo largo de las diversas vistas de los dibujos.
Descripción detallada de la invención
La presente invención proporciona un sistema y un procedimiento para la generación de mapas que tienen los beneficios y las características de un mapa dibujado a mano. La generación automática de mapas de ruta de este estilo es compleja. Aspectos de la distorsión de los mapas puede acentuar los puntos de reorientación, pero también puede tener efectos perjudiciales tales como la introducción de falsas intersecciones. La creación de un mapa de ruta eficaz requiere la búsqueda de un gran espacio de disposiciones del mapa posibles para una disposición óptima. Se desvela un algoritmo multi etapa eficaz que acopla un módulo de refinamiento de la disposición de carreteras con un módulo de colocación de etiquetas y anotaciones. El mapa resultante se presenta usando señales perceptivas sutiles, tales como un estilo ondulado hecho a mano para el dibujo de las vías, para comunicar la distorsión de la escala y la forma.
Los objetivos del diseño de la presente invención son:
(i)
Las carreteras deberían escalarse de forma variable de modo que todas las carreteras y los puntos de reorientación sean claramente visibles y fácilmente etiquetados.
(ii)
Si la carretera A es más larga que la carretera B, entonces la carretera A debería ser notoriamente más larga que la carretera B en el mapa.
(iii) La representación de una carretera sólo necesita conducir la curvatura general y los cambios significativos en la orientación.
(iv)
El ángulo preciso de la intersección de dos carreteras no es importante; en cambio es suficiente comunicar claramente la acción a tomar (giro a la izquierda, giro a la derecha) y una orientación generalizada.
(v)
El comienzo y el final de la ruta debería estar claramente marcados.
(vi)
Debería usarse un estilo "esquemático" para presentar una carretera para representar una imprecisión de la escala y la orientación.
(vii) El mapa resultante debería ajustarse en la región de visión deseada, tal como una simple hoja de papel, una pantalla de ordenador y/o una ventana en una interfaz gráfica de usuario.
La generación de un mapa basado en ordenador de acuerdo con los objetivos de diseño identificados anteriormente es más difícil que la generación de un mapa en los estilos convencionales basados en ordenador. El escalamiento variable de las carreteras proporciona alguna flexibilidad en la elección de la longitud de cada una de las carreteras para producir un mapa claro y legible. Sin embargo, el ordenamiento relativo de las carreteras por longitud debe mantenerse fijo y no deberían introducirse falsas intersecciones en el mapa. El espacio de todas las disposiciones de mapas de ruta posibles es extremadamente grande, y por lo tanto no es factible una búsqueda a ciegas de una disposición que satisfaga los objetivos de diseño de la presente invención. En cambio, se usa un enfoque de multifase heurística de generación y prueba para obtener un mapa que satisfaga los principios de diseño de la presente invención. La FIG. 5 ilustra un mapa generado usando los procedimientos de la presente invención.
Arquitectura general
Volvemos ahora la atención a la FIG. 6, que es un sistema de acuerdo con una realización de la presente invención. La FIG. 6 ilustra una red 620 que se opera de acuerdo con la presente invención. La red 620 incluye al menos un ordenador de usuario 622 y al menos un ordenador servidor 624. El ordenador de usuario 622 y el ordenador del servidor 624 se conectan por el canal de transmisión 626, que puede ser cualquier canal de transmisión cableado o inalámbrico.
El ordenador de usuario 622 es cualquier dispositivo que incluye una Unidad de Procesamiento Central (CPU) 630 conectado a una memoria de acceso aleatorio 650, una conexión de red 634, y uno o más dispositivos de entrada/salida de usuario ("i/o") 638 incluyendo un medio de salida 640. En algunas realizaciones, la memoria del sistema 650 incluye una memoria de sólo lectura (ROM). El medio de salida 640 es cualquier dispositivo capaz de comunicar con una persona e incluye, por ejemplo, un monitor, interfaces de voz del usuario, y/o un medio gráfico integrado tal como una mini-pantalla presente en los teléfonos de Web. Típicamente, el ordenador de usuario 622 incluye una unidad de almacenamiento no volátil principal 636, preferentemente un controlador de disco duro, para el almacenamiento de software y de datos. Además, el ordenador de usuario 622 incluye uno o más buses internos 632 para la interconexión de los elementos antes mencionados. En una realización típica, la memoria 650 incluye un sistema operativo 652 y un buscador de internet 654.
En algunas realizaciones de la presente invención, el ordenador de usuario 622 es un dispositivo de mano tal como una Palm Pilot. Por consiguiente, en tales realizaciones, es posible que el ordenador de usuario 622 no tenga disco 636 y el buscador 654 esté integrado sin problemas en el sistema operativo 652.
El ordenador servidor 624 incluye componentes de servidor normalizados, incluyendo un dispositivo de conexión de red 660, una CPU 662, una unidad de almacenamiento no volátil principal 664, y una memoria de acceso aleatorio
668. Además el ordenador servidor 624 incluye uno o más buses internos 666 para interconectar los elementos mencionados anteriormente. La memoria 668 almacena un conjunto de programas de ordenador, módulos y datos para implementar el procesamiento asociado con la invención. En particular, una realización preferida de la memoria 668 incluye un sistema operativo 680 y un servidor de HTTP 682. La memoria 668 incluye además el analizador de direcciones 684, el módulo de disposición de carreteras 686, el módulo de disposición de etiquetas 688, el módulo de anotaciones 690, y un módulo de representación de mapas 692. En algunas realizaciones de la presente invención, la memoria 668 también incluye una base de datos de direcciones 694 y/o una base de datos de contextos 696. Como se tratará más adelante con detalle adicional, el ordenador servidor 624 incluye además un módulo de simplificación de formas 697 para suavizar las carreteras en un mapa de ruta, el módulo de puesta en vertical del mapa 698 para la optimización de las dimensiones de un mapa de ruta escalado a las dimensiones de la región de visión usada para representar el mapa de ruta escalado, y un módulo de división del mapa 699 para trocear un mapa de ruta escalado complejo en una pluralidad de mapas de segmentos.
El analizador de direcciones 684 lee direcciones de una fuente, tal como un fichero, una base de datos externa al servidor 624, o una base de datos residente en el servidor 624. El analizador de direcciones 684 traduce las direcciones a un gráfico. Los nodos en el gráfico representan intersecciones, y los bordes representan las carreteras que conectan las intersecciones. En una realización, el sistema 620 no contiene una base de datos de las carreteras. En cambio, toda la información acerca del mapa se obtiene de las direcciones de texto almacenadas fuera de la instalación. En otra realización, el servidor 624 contiene la base de datos de direcciones 694, que se usa para identificar una ruta adecuada entre un origen y un destino.
Después de que se han analizado las direcciones por el analizador de direcciones 684, las carreteras en el mapa de ruta se escalan con el módulo de disposición de carreteras 686. En una realización, el módulo de disposición de carreteras 686 aplica un factor de escala constante a todo el mapa de modo que encaja el mapa en la región de visión que tiene unas dimensiones predeterminadas. Como resultado de este escalamiento uniforme, el mapa a menudo contiene muchas carreteras que son demasiado pequeñas para verse o etiquetarse. Para remediar esto, cada una de las carreteras en el mapa, empezando con las carreteras más pequeñas, se escalan por el módulo de disposición de carreteras 686 hasta que las carreteras en el mapa son claramente visibles. Como en esta etapa sólo se aumenta la longitud de las carreteras, el mapa termina siendo mayor que el tamaño de la región de visión. De este modo, en las etapas posteriores, se reducen ciertos aspectos del mapa para obtener un mapa que se adapta a las dimensiones de la región de visión deseada.
En una realización de la presente invención, el tamaño del mapa se reduce inicializando repetidamente un procedimiento de trazado. En esta realización, el módulo de disposición de carreteras 686 ejecuta el procedimiento de trazado hasta que se ha trazado toda la ruta sin identificar una carretera que exceda las dimensiones de la región de visión. En el procedimiento de trazado, se examina cada una de las sucesivas carreteras en la ruta, comenzando en el origen de la ruta, hasta que una carretera se extiende fuera de la región de visión, es decir, se identifica una carretera ofensiva. Cuando se identifica una carretera ofensiva, se examina cada una de las carreteras que se han trazado para ver si se puede acortar. Una carretera candidata se puede acortar si es (i) más larga que una longitud mínima especificada, (ii) el orden relativo de las carreteras por longitud permanece fijo incluso después de que la candidata se haya acortado, y (iii) se evitan las falsas intersecciones. En un aspecto de esta realización, el módulo de disposición de carreteras 686 acorta las carreteras candidatas usando un enfoque codicioso de modo que el candidato se acorta el máximo posible, en orden desde la más larga a la más corta, hasta que la carretera ofensiva se devuelve al interior de la región de visión.
El módulo de disposición de etiquetas 688 se usa para colocar las etiquetas sobre el mapa escalado producido por el módulo de disposición de carreteras 686. Hasta la fecha, el etiquetado adecuado de las carreteras individuales ha sido un problema insoluble. El módulo de disposición de etiquetas 688 resuelve este problema refinando una nueva función objetivo que usa un programa de recocido simulado. El recocido simulado se ha usado para refinar posiciones de etiquetas en los procedimientos de la técnica anterior. Edmondson y otros en Cartografía 33, 1997, 12-23, Sin embargo, a diferencia de Edmondson, que usa un conjunto limitado de posiciones discretas de las etiquetas, la presente invención considera un intervalo continuo de posiciones para la colocación de las etiquetas, y las colocaciones de etiquetas no están limitadas a las posiciones que están directamente por encima o por debajo de la carretera. Además, la presente invención usa una función objetivo más exhaustiva que considera el número de carreteras que corta cada etiqueta, el número de etiquetas que corta cada etiqueta, la distancia a la que está la etiqueta desde el centro de la carretera asociada con la etiqueta, y si la etiqueta está por encima o por debajo de la carretera asociada. Finalmente, la presente invención es ventajosa porque las carreteras se extienden cuando la etiqueta correspondiente a la carretera es larga.
El modulo de recocido 690 añade decoraciones, tales como extensiones de carreteras, al mapa de rutas de la presente invención. Además, el módulo 690 añade un icono para los puntos de comienzo de la ruta y final. Las extensiones de la carretera acentúan los puntos de reorientación y permiten que se considere un intervalo más largo de las posiciones de las etiquetas. En esta fase, todas las carreteras se extienden una pequeña cantidad fija. A continuación sólo las carreteras que se necesita extender para el patrón de etiquetado elegido se alargan adicionalmente. La FIG. 10 ilustra las ventajas de la aplicación de extensiones de carreteras. En la FIG. 10, 1002 representa un mapa de carreteras anterior a la extensión de la carretera mientras que 1004 representa el mismo mapa de carreteras después de la extensión de la carretera. Las etiquetas ahora se ajustan a las correspondientes carreteras y el mapa es más fácil de leer. La información de contexto geográfico y/o comercial se añade al mapa de la ruta por el módulo de anotación 690 para ayudar a guiar al usuario a través de la ruta deseada. En una realización, tal información de contexto se obtiene a partir de la base de datos de contexto 696.
El módulo de presentación del mapa 692 presenta el mapa de ruta escalado. En esta fase, se aplica un estilo "esquemático" de pluma y tinta a cada una de las carreteras en el mapa de ruta. Esto es, en lugar de dibujar las carreteras como líneas rectas, se introduce una variación en la curva y el ancho de cada una de las carreteras para generar una apariencia de dibujado a mano. En un enfoque similar al de Markosian y otros, Conferencia de Procedimientos SIGGRAPH 97, 1997, 415-420, cada una de las carreteras se rompe en segmentos pequeños y la posición de cada uno de los puntos se desplaza ligeramente tanto en la dirección de la tangente como la normal a la dirección del segmento. Estos puntos se unen a continuación con una línea de ajuste b (b-spline) racional no uniforme (NURB) para crear el trazo final. Una NURB es una curva que interpola los datos. De este modo, dado un conjunto de puntos se genera una curva que pasa a través de todos los puntos. El grosor de las carreteras se ajusta a continuación para enfatizar la carretera y des-enfatizar las extensiones de la carretera generadas por el módulo de anotación 690.
Ahora que se ha desvelado una visión general de la invención, son evidentes varias ventajas de las presentes invenciones. En primer lugar, la presente invención desvela un procedimiento para la generación automática de un mapa de ruta que tiene la claridad de un mapa dibujado a mano. Tal mapa se produce usando una nueva función de escalamiento en la cual cada una de las carreteras se escala de forma individual usando los criterios de diseño de la presente invención. Además, se desvela un nuevo procedimiento para el posicionamiento de etiquetas sobre el mapa. Las posiciones refinadas de las etiquetas ayudan a proporcionar un mapa de ruta que tiene una claridad mejorada.
Escalamiento de mapas
Ahora volvemos la atención a las realizaciones detalladas del módulo de disposición de carreteras 686. La presente invención contempla varias implementaciones diferentes del módulo de disposición de carreteras 686. Las diferentes realizaciones del módulo de disposición de carreteras contempladas por la presente invención incluyen pero sin limitarse a estas, el escalamiento uniforme, el escalamiento fijo no uniforme, así como el refinamiento de factores de escala individuales usando una búsqueda codiciosa o el programa de recocido simulado.
En las realizaciones de escalamiento uniforme, se calcula un factor de escala único que permite al gráfico creado por el analizador de dirección 684 encajarlo en una región de visión deseada. Para regiones de visión que se han definido por una disposición de x por y puntos de imagen (pixel), se calcula un factor de escala único de pixelPorMilla, por una asignación tal como:
pixelPorMilla = CalcularPixelPorMilla ();
en la cual, la función CalcularPixelPorMilla () determina el máximo número de pixel por milla de una carretera que puede tener sin causar que la ruta global exceda la región de visión deseada basada en pixel. Un especialista en la técnica apreciará que pueden calcularse un factor de escala único para la regiones de visión que están basada en métricas distintas que los pixel usando funciones análogas a CalcularPixelPorMilla (). Una vez que se ha identificado un factor de escala uniforme por una función tal como CalcularPixelPorMilla (), se aplica el factor de escala uniforme a la longitud de cada una de las carreteras y se actualizan los puntos de intersección entre pares consecutivos de carreteras para reflejar el cambio en la longitud de las carreteras. Para regiones de visión basadas en pixel, la aplicación del factor de escala uniforme a cada una de las carreteras se reduce una conversión de millas a pixel. De este modo, en tales realizaciones, la aplicación del factor de escala constante a cada una de las carreteras toma la forma:
(101) para cada Carretera r {
(102) r.longitudPxls ) r.longitudMillas * pixelPorMilla;
(103) }
(104) FijarPuntosIntersecciónCarretera ();
En las realizaciones de escalamiento fijo no uniforme, el módulo de disposición de carreteras 686 incluye una función de reescalarPorIntervalo () que trocea el intervalo de longitudes de carretera (0, infinito) encontrado en la ruta en N intervalos consecutivos [0, x1), [x1, x2), …[xN-1, xN), [xN, infinito). La función escala a continuación las carreteras de forma diferente dependiendo del intervalo en el que caigan. Las pequeñas carreteras, que caen en los primeros intervalos, se escalan más grandes, mientras que las carreteras más largas se escalan para ser más cortas. En una realización, las carreteras que caen en el intervalo final se captan en alguna longitud máxima. En otra realización, las carreteras que caen en el primer intervalo no tienen permitido caer por debajo de una longitud mínima. En otra realización más, el factor de escala que se elige para cada uno de los intervalos está sujeto a la restricción de que el orden relativo de las carreteras por longitud permanece fijo. En realizaciones en las que la ruta se escala a una región de visión basada en pixel, cada carretera se escala por el factor de escala uniforme calculado por la función CalcularPixelPorMilla () descrita en la realización de escalamiento uniforme. De este modo, una implementación de acuerdo con la realización de escalamiento no uniforme, tiene las etapas:
(201) DisposiciónCarreteras ()
(202) {
(203) para cada Carretera r {
(204) r.longitudMillas = reescalarPorIntervalo (r.longitudMillas);
(205) r.longitudPixels = r.longitudMillas*pixelPorMilla;
(206) }
(207) FijarPuntosIntersecciónCarretera ();
(208) }
Ahora volvemos la atención a la FIG. 7 que ilustra una realización de la presente invención en la cual el módulo de disposición de carreteras 686 refina la longitud de las carreteras en el mapa usando un algoritmo de búsqueda codiciosa. En la etapa de procesamiento 702, el módulo de disposición de carreteras 686 en primer lugar calcula un factor de conversión de pixel por millas y aplica este factor a cada una de las carreteras en el mapa de modo que el mapa encaja en la región de visión deseada. A continuación, en la etapa de procesamiento 704, las carreteras se acortan en longitud. El orden relativo de las carreteras, en términos de longitud, en el mapa como se determina en la etapa de procesamiento 704 se mantiene a lo largo de las etapas de procesamiento restantes ilustradas en la FIG.
7. En algunas realizaciones se permiten desviaciones en este ordenamiento relativo pagando una penalización. En la etapa de procesamiento 706, todas las carreteras pequeñas se aumentan hasta que cada una de las carreteras es más larga que una longitud mínima fijada. Debido a que la etapa de procesamiento 706 sólo alarga las carreteras, el mapa de ruta es probable que no quepa en la región de visión deseada después de que se haya ejecutado la etapa de procesamiento 706.
Para reducir el mapa de modo que encaje dentro de la región de visión deseada, se realiza una búsqueda de carreteras que pueden acortarse. En la etapa de procesamiento 708, la ruta se recorre desde el origen de la ruta. Se examina cada una de las carreteras en la ruta (710 – 714) hasta que se identifica una carretera que se extiende fuera de la región de visión (carretera ofensiva). Cuando se identifica tal carretera (710 – Si) se recoge una lista de carreteras candidatas en la porción de la ruta que se ha recorrido antes de identificar la carretera ofensiva (720). Para calificar una carretera como candidata, una carretera recorrida debe poder acortarse sin cambiar el orden relativo de las carreteras por longitud y sin caer por debajo de una longitud mínima de carretera. Además, una carretera candidata debe poder acortarse sin crear ninguna falsa intersección entre carreteras. Finalmente, la carretera candidata debería orientarse dentro de ± 90 grados de la carretera ofensiva. Una vez que se ha generado un conjunto de carreteras candidatas, se ordenan por longitud, desde la más larga a la más corta (722).
Una vez que las carreteras candidatas se han ordenado, se inicia un procedimiento de acortamiento. El procedimiento de acortamiento tiene la ventaja de la eficacia de cálculo de un algoritmo codicioso para el acortamiento de las carreteras (724). El procedimiento de acortamiento circula a través de cada una de las carreteras candidatas en el conjunto ordenado de carreteras candidatas y acorta la candidata tanto como es posible
(726) antes de avanzar a la siguiente candidata en el conjunto ordenado (732). Después de que se aplica el algoritmo codicioso a una carretera candidata, se realiza una comprobación para ver si la carretera ofensiva se ha devuelto al interior de la región de visión (728). Si la carretera ofensiva se ha vuelto dentro de la región de visión (728 - No), el procedimiento de acortamiento termina y vuelve el control a la etapa de procesamiento 708.
Cuando se ha aplicado el algoritmo codicioso a cada una de las carreteras candidatas en el conjunto ordenado sin devolver satisfactoriamente la carretera ofendida dentro de la región de visión (730 – Si), el procedimiento de acortamiento repite el procedimiento de aplicar el algoritmo codicioso a cada una de las carreteras en la lista de candidatas (724) hasta que la carretera ofensiva se devuelve dentro de la región de visión (728 – No). El procedimiento en la FIG. 7 continúa hasta que puede recorrerse toda la ruta sin identificar una carretera que exceda las dimensiones de la región de visión (714 – Si, 780). Si tal recorrido falla, se ejecuta el procedimiento de acortamiento de las etapas 720 – 732 y se inicia un nuevo intento de recorrer la ruta 708.
A veces, una carretera identificada que coincide con los requisitos de candidata indicados anteriormente no se añadirá al conjunto de carreteras candidatas porque hay alguna otra carretera en la ruta que es de la misma longitud. Las carreteras que tienen la misma longitud que la carretera identificada se denominan carreteras de bloqueo. Si hay una carretera de bloqueo, la carretera identificada no puede añadirse al conjunto de carreteras candidatas porque, si se acortase, el ordenamiento relativo de las carreteras por longitud, como se identificó en la etapa de procesamiento 704, se destruiría. La ocurrencia de carreteras de bloqueo es de interés porque, en algunas circunstancias, impiden que las etapas de procesamiento de 724-732 devuelvan la carretera ofensiva dentro de la región de visión (728 – No). En algunas realizaciones, cuando un cierto número de iteraciones de las etapas de procesamiento de 724 a 732 falla para efectuar una solución (728 – No) se acortan una o más carreteras de bloqueo usando el algoritmo codicioso tratado anteriormente. A continuación, si la carretera ofensiva aún excede las dimensiones de la región de visión, se genera un nuevo conjunto de carreteras candidatas (720) y se ejecutan las etapas de procesamiento de de 724 a 732 hasta que la carretera ofensiva ya no excede las dimensiones de la región de visión (728 – No).
La FIG. 8 ilustra otra realización del módulo de disposición de carreteras 686 en la cual la longitud de las carreteras en el mapa se refina con un programa de recocido simulado. En la etapa de procesamiento 802, se aplica un único factor de escala a cada una de las carreteras en el mapa de ruta. En una realización, que está de acuerdo con este aspecto de la invención, se usa el factor de escala para dimensionar el mapa producido por el analizador de direcciones 684 de modo que cabe dentro de las dimensiones de la región de visualización deseada. En otra realización, el mapa se dimensiona de modo que cada una de las carreteras en el mapa es más larga que una longitud mínima seleccionada de modo que cada una de las carreteras en el mapa es legible en la región de visión deseada.
En la segunda fase de la etapa de procesamiento 802, se elige un parámetro inicial t. El uso de un parámetro t para obtener mejores soluciones heurísticas para un problema de optimización combinatoria tiene sus raíces en el trabajo de Kirkpatrick y otros, Ciencia 220, 4598, (1983). Kirkpatrick y otros indicaron los procedimientos usados para encontrar el estado de baja energía de un material, en el cual un cristal único del material se funde en primer lugar aumentando la temperatura del material. A continuación, la temperatura del material se baja lentamente a la proximidad del punto de congelación del material. En este modo, se determina el estado verdadero de baja energía del material, en lugar de algún estado de alta energía tal como un cristal. Kirkpatrick y otros indicaron que los procedimientos para encontrar el estado de baja energía de un material pueden aplicarse a otros problemas de optimización combinatoria si puede desarrollarse una analogía adecuada con la temperatura así como una función probabilística apropiada, que se conduce por esta analogía con la temperatura. La técnica ha denominado la analogía con la temperatura una temperatura efectiva. Por lo tanto, el parámetro t se denominará a partir de ahora una temperatura efectiva. Se apreciará que puede elegirse cualquier temperatura efectiva t en la etapa de procesamiento 802. Un especialista en la técnica apreciará además que el refinamiento de una función objetivo que usa el recocido simulado es más eficaz cuando se eligen temperaturas efectivas altas. No hay ningún requisito de que la temperatura efectiva se adhiera a cualquier dimensión física tal como grados Celsius, etc. En realidad, las dimensiones de la temperatura efectiva usada en la programación de recocido simulado adopta las mismas unidades que la función objetivo que es el tema de la optimización.
En una realización, se elige una temperatura efectiva de comienzo que se reduce fácilmente un diez por ciento sobre una base periódica, tal como 1,0 / log(3)*3. En otra realización, el valor de comienzo de t está basado en una función de una o más características de la ruta a escalar, tales como el número de carreteras en la ruta, el número de intersecciones den la ruta, y/o la longitud de la ruta. En otra realización, el valor de t de comienzo se selecciona en base a la cantidad de recursos disponibles para calcular la programación de recocido simulado. Por ejemplo, el valor de comienzo de t se reduce por debajo de un valor por defecto especificado previamente cuando el programa de recocido es para correr sobre un servidor que está actualmente refinando varias rutas distintas o sobre un cliente relativamente más lento. En otra realización más, el valor de comienzo de t se relaciona con la forma de la función de probabilidad usada en la etapa de procesamiento 814. Se ha encontrado, de hecho, que la temperatura efectiva no tiene que ser muy grande para producir una probabilidad sustancial de mantener una puntuación peor. Por lo tanto, en algunas realizaciones, la temperatura efectiva de comienzo t no es grande.
Una vez que se ha aplicado un único factor de escala a cada una de las carreteras en el mapa de ruta y se ha asignado una temperatura inicial efectiva de comienzo, comienza un procedimiento iterativo. Se inicializa un contador en la etapa de procesamiento 804 y, en la etapa de procesamiento 806, se evalúa la calidad del mapa (E1) usando una función objetivo. Se apreciará que la utilidad del mapa producido por el programa de recocido simulado es dependiente del desarrollo de una función objetivo que equilibra con precisión las diversas características del mapa que se necesita optimizar. En una realización, la función objetivo es dependiente del número de falsas intersecciones que hace cada una de las carreteras en la ruta, el número de carreteras en la ruta que no ya no tienen la misma longitud relativa que tenían antes de que se iniciase el programa de recocido simulado, y el número de carreteras en la ruta que caen por debajo de una longitud mínima. Una función objetivo de acuerdo con esta realización es:
en el que,
w1, w2, y w3 son ponderaciones seleccionadas de forma independiente; falsa_intersección, es el número de falsas intersecciones que hace la carretera i; N es el número de carreteras en la ruta; Num_w/o_rel_long es el número de carreteras que ya no tienen la misma longitud relativa que tenían antes de que se iniciase el programa de recocido simulado; y
25 num_carret_cortas es el número de carreteras que son más cortas que un umbral mínimo de longitud.
Después de que se ha medido la calidad (E1) del mapa usando la función objetivo, se genera un factor de escala de forma aleatoria y se aplica a una carretera seleccionada aleatoriamente (808). En una realización, el factor de escala se elige aleatoriamente de un intervalo permisible, tal como de cero a dos. De este modo, en tal realización, se usa un generador de números aleatorios para identificar un número en el intervalo de cero a dos, tal como "0,6893". El número aleatorio se aplica a continuación a una carretera seleccionada aleatoriamente en la ruta como una escala constante. Por ejemplo, si el número es "0,6893" y la carretera seleccionada aleatoriamente es la carretera de índice j en el mapa de ruta, la carretera de índice j se acorta un 31,07 por ciento. En otra realización, el intervalo permisible para el número aleatorio es de -0,1 a 0,1 y por lo tanto, en tales realizaciones, la aplicación de la constante de escala elegida aleatoriamente es capaz de alterar la longitud de la carretera de índice j en no más del diez por
35 ciento.
Después de que se ha ajustado la longitud de la carretera de índice j por el factor de escala, se calcula la calidad del mapa (E2) usando la misma función objetivo usada en la etapa de procesamiento 806 (810). Cuando la calidad del mapa ha mejorado (E2 < E1) (812 – Si), entonces el cambio realizado en la longitud de la carretera de índice j se acepta (830). Cuando la calidad del mapa no ha mejorado (E2 > E1) (812 – No) el cambio realizado para la longitud de la carretera de índice j se acepta con la probabilidad de:
1 – exp – [(iE) / k *t] (1)
A partir de la forma de ecuación (1), se apreciará que la probabilidad de que el cambio se acepte, cuando (E2 > E1), es menor a temperaturas efectiva más bajas t. La ecuación (1) se implementa según las etapas de procesamiento de 814 a 818 en la FIG. 8. En la etapa de procesamiento 814, se calcula exp – [(iE) / k*t]. En la etapa de procesamiento
45 816, se genera un número Pran en el intervalo de 0 a 1. Si Pran es menor que exp – riE) / k*t)] (818 – Si), el cambio realizado para la carretera de orden j en la etapa de procesamiento 808 se acepta (830). Si Pran es mayor que exp – [(iE) / k't] (818 – No), el cambio realizado en la carretera de índice j en la etapa de procesamiento 808 se rechaza (840). Se apreciará que las funciones de probabilidad distintas de la tratada en la ecuación (1) están dentro del alcance de la presente invención.
La aceptación de las condiciones de (E2 > E1) sobre una base probabilística limitada es ventajosa ya que proporciona al sistema de refinamiento con la capacidad de escapar de las trampas de mínimos locales que no representan una solución global a la función objetivo. Un especialista en la técnica apreciará, por lo tanto, que las funciones de probabilidad distintas que la de la ecuación (1) avanzarán los objetivos de la presente invención. Las funciones de probabilidad representativas incluyen, por ejemplo, funciones que dependen de forma lineal o
55 logarítmica de la temperatura efectiva, mejor que las dependientes exponencialmente de la temperatura efectiva como se describe en la ecuación (1).
Las etapas de procesamiento de 806 a 840 representan una iteración en el procedimiento de refinamiento. En la etapa de procesamiento 842 se avanza una cuenta de iteraciones. Cuando la cuenta de iteraciones no excede la cuenta máxima de iteraciones, el procedimiento continúa en la etapa 806 (844 – No). Cuando la cuenta de iteraciones se iguala con el indicador de iteraciones máximas (844 – Si), se reduce la temperatura efectiva t (846). Un especialista en la técnica apreciará que hay muchos tipos diferentes de programaciones que se usan para reducir la temperatura efectiva t en diversas realizaciones de la etapa de procesamiento 846. Todas estas programaciones están dentro del alcance de la presente invención. En una realización, la temperatura efectiva t se reduce un diez por ciento. En otra realización, la temperatura efectiva t se reduce un valor constante. Por ejemplo, la temperatura efectiva de comienzo fijada en la etapa de procesamiento 802 podría ser de 20.000 y esta temperatura efectiva podría reducirse en 300 cada vez que se ejecuta la etapa de procesamiento 846. En otra realización el porcentaje de descenso en la temperatura efectiva se calcula en la etapa de procesamiento 846 como una función del número de carreteras a escalar.
Cuando la temperatura efectiva se ha reducido en una cantidad en la etapa de procesamiento 846, se realiza una comprobación para determinar si debería terminarse el programa de recocido simulado (848). En la realización ilustrada en la FIG. 8, el procedimiento se termina (848 – Si, 850) cuando la temperatura efectiva t ha caído por debajo del umbral bajo de temperatura efectiva o E2 cae por debajo de un umbral de calidad bajo predeterminado. El umbral de temperatura efectiva baja es cualquier temperatura eficaz elegida adecuadamente que permite un suficiente número de iteraciones del ciclo de refinamiento a temperaturas efectivas relativamente bajas. Cuando se determina que el programa de recocido no debería terminar (848 – No), el procedimiento continúa en la etapa 804 con la reiniciación de la cuenta de iteraciones i.
En otra realización de la presente invención, se usa una condición de salida distintivamente diferente de la ilustrada en la FIG. 8. En esta realización alternativa, se mantiene un contador separado. Este contador, que podría denominarse como un contador de etapas, se aumenta cada vez que se reduce t en la etapa 846. Cuando el contador de etapas ha excedido un valor predeterminado, tal como quince, el procedimiento de recocido simulado termina (850). En otra realización más, un contador sigue el número de veces consecutivas que se rechaza el factor de escala arbitrario (840). Cuando se ha rechazado un número fijado de cambios arbitrario en una fila, el mapa de ruta se considera optimizado y el procedimiento termina (850).
Anotación del mapa
En una realización, el módulo de anotación 690 se usa para colocar información de contexto de forma determinista sobre el mapa después de que el mapa se ha escalado por el módulo de disposición de carreteras 686. En un aspecto de esta realización, la información de contexto representa puntos geográficos de interés y ayuda a guiar al usuario a través de la ruta al destino. En otra realización, la información de contexto representa una forma de anuncio que se paga por los abonados. En un ejemplo de acuerdo con tales realizaciones, el abonado es una cadena de comida rápida y las marcas representan la localización de cada una las franquicias de comida rápida que está asociada con la cadena de comida rápida. Se apreciará que una ventaja importante de la presente invención es que los mapas de ruta no contienen contenido superfluo. De este modo, los mapas de ruta de la presente invención están particularmente bien adaptados para su uso en conjunción con las marcas geográficas sobre el terreno que se pagan por los abonados. En una realización de la presente invención, la memoria 668 del servidor 624 incluye una base de datos de contexto 696 que se puebla con información de contexto que se proporciona y se paga por los anunciantes.
Refinamiento de etiquetas
La identificación de una posición óptima para cada una de las etiquetas en el mapa de rutas mejora la calidad del mapa porque se reduce el desorden y el solapamiento de objetos. La presente invención optimiza la posición de etiquetas minimizando una nueva función objetivo que puntúa la posición de una etiqueta usando un conjunto único de parámetros de etiquetas. De forma importante, en lugar de considerar un pequeño número de posiciones discretas para la colocación de la etiqueta, se considera un intervalo continuo de posiciones dentro de una región alrededor del centro de la carretera que se va a etiquetar. Esta región incluye posiciones que no están directamente por encima o por debajo de la carretera que se está etiquetando. Cuando se selecciona una posición que no está directamente por encima o por debajo de la carretera, la carretera se extiende a la posición de la etiqueta.
En una realización, se optimiza la función objetivo usando un programa de recocido simulado. La FIG. 9 ilustra una realización de acuerdo con la presente invención. En la etapa de procesamiento 900, cada una de las etiquetas se coloca en el centro de la carretera correspondiente a la etiqueta y se selecciona una temperatura efectiva inicial t. Se apreciará que la temperatura efectiva t puede fijarse en un amplio intervalo de posibles temperaturas efectivas en la etapa de procesamiento 900. En una realización, se elige una temperatura efectiva de comienzo que se reduce fácilmente en base a un diez por ciento periódico, tal como 1,0 / log (3)*3. En otra realización, la temperatura efectiva de comienzo está basada en una función de una o más características de la ruta a optimizar, tal como el número de etiquetas en la ruta, la cantidad de información de contexto a lo largo de la ruta, y/o la longitud de la ruta. En otra realización, se selecciona la temperatura efectiva de comienzo en base a la cantidad de recursos disponibles para realizar los cálculos del recocido simulado. Por ejemplo, la temperatura efectiva inicial se fija a un valor bajo cuando el programa de recocido está corriendo sobre un servidor que está actualmente refinando varias otras rutas o un cliente con una unidad de procesamiento central relativamente lenta. En otra realización más, la temperatura efectiva de comienzo t se determina por la naturaleza de la función de probabilidad que se usa para aceptar puntuaciones que tienen S2 > S1.
En la etapa de procesamiento 902 el contador de etapas se fija a cero. El contador de etapas se aumenta cada vez que se ha reducido la temperatura efectiva t. Una vez que se han realizado las etapas de inicialización de la etapa de procesamiento 900, el contador i se fija a uno (902) y la etiqueta j se selecciona de forma aleatoria (904). La calidad de la posición de la etiqueta de índice j (S1) se mide usando una función objetivo, que se diseña para medir la calidad de la posición de la etiqueta, en la etapa de procesamiento 906 y en la etapa de procesamiento 908 la etiqueta de índice j se reposiciona por una cantidad aleatoria. En la etapa 908, se mide la calidad de la etiqueta de índice j reposicionada (S2). Una ventaja importante de la presente invención es que la etiqueta de índice j se reposiciona dentro de cualquier intervalo continuo de valores en lugar de un número limitado de posiciones discretas. Además, la función objetivo usada para calcular S1 y S2 proporciona un procedimiento mejorado para evaluar la calidad de una posición de etiqueta. En una realización la función objetivo incluye los siguientes componentes:
(301) recoger todos los objetos que cortan a la etiqueta de índice j
(302) para cada uno de los objetos que cortan {
(303) caso CARRETERA:
(304) puntuación + = PENALIZACIÓN_CARRETERA;
(305) caso ETIQUETA:
(306) puntuación + = PENALIZCIÓN_ETIQUETA;
(307) caso ANOTACIÓN:
(308) puntuación + = PENALIZACIÓN_ANOTACIÓN;}
)
En la línea 301, se recogen todos los objetos que cortan a la etiqueta de orden j. Tales objetos incluyen, por ejemplo, las carreteras, otras etiquetas, y anotaciones tales como información de contexto. La función objetivo forma un bucle a través de cada uno de los objetos recogidos (línea 302). Cuando el objeto es una carretera, se añade una penalización de carretera a la puntuación (línea 304), cuando el objeto es una etiqueta, se añade una penalización de etiqueta a la puntuación (línea 306) y cuando el objeto es una anotación, se añade una penalización de anotación a la puntuación (línea 308).
En algunas realizaciones, la función objetivo incluye uno o más componentes adicionales. Uno de tales componentes es una penalización de fuera de pantalla. Cuando la etiqueta de índice j se posiciona de modo que una porción de la etiqueta excede la frontera de la región de visión, se añade una penalización de fuera de pantalla a la puntuación. Otro componente es una &quot;penalización de la distancia desde el centro de la carretera correspondiente&quot;. Esta penalización se determina tomando el producto de una penalización de centrado y la distancia normalizada de la etiqueta de orden j al centro de la carretera. Componentes adicionales en la función objetivo representan diversas restricciones que se imponen sobre la posición de la etiqueta. Las restricciones se usan para desviaciones en las posiciones de la etiqueta que son consistentes con el criterio de diseño de la posición de etiquetas. Por ejemplo, en una realización, es preferible posicionar una etiqueta encima de la carretera en vez de por debajo de la carretera. De este modo, se añade una penalización de debajo_de_la_carretera a la puntuación de la posición de la etiqueta que está debajo de la carretera correspondiente a la etiqueta. Otra penalización de restricción pregunta si una carretera debería extenderse de modo que la carretera corra junto al lado de la etiqueta. Cuando se determina que una extensión de la carretera proporcionará una mejor correspondencia de etiqueta con la carretera, se añade una penalización de extensión de la carretera a la puntuación de la función objetivo. Otra penalización de restricción más se usa cuando la etiqueta se posiciona lejos del centro de la carretera correspondiente. En tales casos, se posiciona una flecha sobre el mapa para indicar la relación entre la etiqueta y la carretera correspondiente y se añade una penalización de la flecha a la función objetivo.
En una realización, la función objetivo tiene la forma:
(401) puntuación de flotación = 0,0
(402) // Obtener los objetos que corta a la etiqueta
(403) para cada uno de los objetos {
(404) caso CARRETERA:
(405) puntuación + = PENALIZACIÓN_CARRETERA;
(406) caso ETIQUETA:
(407) puntuación + = PENALIZACIÓN_ETIQUETA;
(408) caso ANOTACIÓN:
(409) puntuación + = PENALIZACIÓN_ANOTACIÓN;
(410) }
(411) // ¿La etiqueta es visible en la región de visión?
(412) si no {
(413) puntuación + = PENALIZACIÓN_FUERA_PANTALLA;
(414) }
(415) puntuación + = distancia normalizada desde el centro de la carretera * PENALIZACIÓN_CENTRADO;
(416) puntuación + = penalización restricción;
(417) devolver puntuación;
Cuando la calidad de la posición de índice j ha mejorado (S2 < S1) (912 – Si), la nueva posición de la etiqueta para la etiqueta de orden j se acepta (930). Cuando la calidad del mapa no ha mejorado (S2 > S1) (912 – No) hay una probabilidad
1- exp – [(.S) Ik't]
(2)
de que la nueva posición para la etiqueta de índice j se acepte. A partir de la ecuación (2) se apreciará que para los casos en los que (S2 > S1), la probabilidad de que el cambio en la posición de la etiqueta se acepte disminuye a medida que se reduce la temperatura t. La ecuación (2) se implementa según las etapas de procesamiento de 914 a 918 en la FIG. 9. En la etapa de procesamiento 914, se calcula exp – [(.S) Ik'f]. En la etapa de procesamiento 916, se genera un número Pran, en el intervalo de 0 a 1. Si Pran es menor que exp – [(.S) Ik'f] (918 – Si), se acepta (930) el cambio realizado para la posición de la etiqueta de índice j en la etapa de procesamiento 908. Si Pran es mayor que exp – [(.S) Ik*t)] (918 – No), se rechaza (940) el cambio realizado para la posición de la etiqueta de índice j en la etapa de procesamiento 908. Se apreciará que funciones de probabilidad, distintas que la función mostrada en la ecuación
(2) y la etapa de procesamiento 914 están dentro del alcance de la presente invención. En realidad, cualquier función de probabilidad que sea dependiente de la temperatura efectiva es adecuada.
Las etapas de procesamiento de 904 a 940 representan una iteración en el procedimiento de recocido. En la etapa de procesamiento 914, se aumenta una cuenta de iteraciones. Cuando la cuanta de iteraciones no excede la cuenta máxima de iteraciones (944 – No), el procedimiento continúa en la etapa 904. Cuando la cuenta de iteraciones se iguala con el indicador de iteraciones máximas (944 – Si), la temperatura efectiva t se reduce y se avanza el contador de etapas (946). Un especialista en la técnica apreciará que hay muchos tipos posibles diferentes de programaciones que se usan para reducir la temperatura efectiva t en diversas implementaciones de la etapa de procesamiento 946. Todas estas programaciones están dentro del alcance de la presente invención. En una realización, la temperatura efectiva t se reduce en un diez por ciento cada vez que se ejecuta la etapa de procesamiento 946. En otra realización el porcentaje de disminución en la temperatura efectiva t en la etapa de procesamiento 946 se calcula como una función del número de etiquetas a escalar. Después de la etapa de procesamiento 946, se realiza una comprobación para determinar si debería terminarse el programa de recocido simulado (948). Cuando se determina que el programa de recocido no debería terminarse (948 – No), el procedimiento continúa en la etapa 902 con el reinicio de la cuenta de iteraciones i.
En la realización ilustrada en la FIG. 9, el procedimiento se termina (948 – Si, 950) cuando se ha ejecutado un número máximo de etapas. En una realización el número máximo de etapas ejecutadas es de quince. En realizaciones distintas de la ilustrada en la FIG. 9, se usan criterios distintos que la cuenta de etapas en la etapa de procesamiento 948 para determinar cuando debería terminarse el procedimiento de recocido simulado. Tal criterio incluye la terminación del procedimiento cuando la temperatura efectiva t ha caído por debajo de una temperatura efectiva baja, cuando E2 o E1 caen por debajo de un umbral bajo de calidad, o cuando el número de veces consecutivas que se ha rechazado la nueva posición de la etiqueta excede un valor umbral.
Presentación de mapas
La fase final del procedimiento es la presentación de la ruta por el módulo de presentación de mapas 692. En esta fase, el mapa de ruta se humaniza. En algunas realizaciones, las técnicas usadas para humanizar el mapa incluyen el modelado de las carreteras en un estilo &quot;esquemático&quot; de pluma y tinta, añadiendo un símbolo de ruptura a las carreteras largas que se han escalado hacia abajo significativamente por el módulo de disposición de carreteras 686, proporcionando una indicación de la longitud de la carretera para carreteras largas en la ruta, añadiendo una flecha para indicar cuál es el Norte, y/o añadiendo inserciones que muestran detalles realzados de la ruta.
El módulo de presentación de mapas 692 produce el estilo &quot;esquemático&quot; rompiendo cada una de las carreteras en pequeños segmentos y desplazando ligeramente la posición de cada uno de los elementos tanto en la dirección normal al trazo como en las direcciones del trazo. Los segmentos girados se juntan a continuación con una NURB para crear el trazo final. Además, el grosor de las carreteras se ajusta para enfatizar la ruta y des-enfatizar las extensiones de las rutas. En una realización preferida, se usa una fuente de escrito a mano para las etiquetas.
Visión general de realizaciones alternativas para la abstracción y visualización de mapas de ruta
Se han descrito con detalle las realizaciones para producir mapas de ruta escalados. En las siguientes secciones, se proporcionan detalles de realizaciones alternativas para el escalamiento de los mapas de ruta. La plena apreciación de estas realizaciones alternativas se obtiene mejor proporcionando en primer lugar una visión general de las etapas básicas del procedimiento realizado por estas realizaciones alternativas.
Obtener direcciones de ruta. En primer lugar, se obtienen las direcciones por el analizador de direcciones 684 a partir de una fuente tal como la base de datos de direcciones 694 (FIG. 6). Aunque la base de datos de direcciones se representa de modo que está sobre el mismo servidor 624 que el analizador de direcciones 684, se apreciará que no hay ningún requisito para que la base de datos de direcciones 694 resida sobre el mismo servidor. En realidad, la base de datos de direcciones 694 puede tomar varias formas diferentes y residir en cualquier dirección que está en comunicación con el canal de transmisión 626.
Simplificaci6n de carreferas. Una vez que se obtienen las direcciones de las carreteras, se construye un mapa de ruta inicial. A continuación, como se describirá más adelante con detalle adicional, se realiza un paso por el módulo de simplificación de la forma de las carreteras 697 en la simplificación del mapa inicial de ruta. Si es satisfactorio, el módulo de simplificación de la forma de las carreteras 697 elimina uno o más puntos de forma de algunas de las carreteras en el mapa de ruta, reduciendo por lo tanto la complejidad del mapa de ruta sin sacrificar la legibilidad y utilidad del mapa. Además, la complejidad reducida de un mapa de ruta simplificado facilita el cálculo intensivo del refinamiento del mapa y el escalamiento que se presenta en las etapas de procesamiento posterior.
Diseño de la página del mapa. En la etapa de diseño de la página del mapa, se consideran las dimensiones de la región de visión que representará el mapa o se imprimirá. Se elige una plantilla de disposición por el módulo de disposición de carreteras 686 en base a las dimensiones de la región de visión. Además, el mapa de ruta opcionalmente se gira por el módulo de puesta en vertical de mapas 698 para optimizar las dimensiones del mapa de ruta con las dimensiones de la región de visión. Cuando el mapa de ruta incluye varias etapas, se invoca el módulo de división del mapa 699 para trocear el mapa de ruta en una pluralidad de mapas de segmentos en un modo que es consistente con la plantilla de disposición seleccionada.
Disposici6n de carreferas. En esta etapa, el modulo de disposición de carreteras 686 escala cada una de las carreteras de forma independiente (es decir, de forma no uniforme). El escalamiento no uniforme se conduce por un algoritmo de optimización tal como un recocido simulado para conseguir un mapa escalado adecuado. La función objetivo utilizada por el algoritmo de optimización utiliza una nueva estrategia de puntuación que se diseña para cuantificar la calidad de la escala del mapa.
Disposici6n de efiquefas. Una vez que se ha escalado el mapa, el mapa de ruta se puebla con las etiquetas de las carreteras por el módulo de disposición de etiquetas 688. Cada una de las etiquetas está asociada con una definición de restricción que define las fronteras en las que puede colocarse una etiqueta y el formato de la etiqueta. Usando estas definiciones de restricciones, el módulo de disposición de etiquetas 688 refina las localizaciones de las etiquetas usando un algoritmo de optimización que tiene una función objetivo que cuantifica la calidad de la posición de la etiqueta.
Anofaci6n del mapa. Los cruces de carreteras, las marcas sobre el terreno y la flecha del Norte opcional se añaden al mapa durante la etapa de anotación del mapa. El módulo de anotación 690 identifica marcas sobre el terreno adecuadas que asistirán al navegador mientras que está usando el mapa de ruta. Tales marcas sobre el terreno pueden deducirse de una fuente tal como una base de datos de contexto 606. Se apreciará que el módulo de anotación 690 puede usarse en algunas realizaciones para beneficio comercial. Por ejemplo, se visualizan los esquemas de concesión de licencias en los cuales un detallista paga para tener una localización de cada una de las franquicias posicionadas en el mapa como marcas sobre el terreno.
Presenfaci6n de mapas. Otras etapas del procedimiento de escalamiento de mapas consideran el mapa de ruta en un sentido abstracto. En la etapa de presentación de mapas, los componentes del mapa de ruta, incluyendo la ruta principal, las calles de cruce, las marcas sobre el terreno y la flecha del Norte se reducen desde un sentido abstracto a una imagen real. En una realización, esta imagen es una imagen basada en pixel. La etapa del procedimiento se realiza por un módulo de presentación de mapas 692.
Ahora que se ha proporcionado una visión general de esta serie de realizaciones alternativa, examinaremos en detalle nuevos aspectos de la serie de realizaciones.
Funciones de puntuación alternativas usadas en el refinamiento de la disposición de carreteras
Como se ha perfilado en la visión general, se realiza un aspecto importante del procedimiento de escalamiento del mapa por el módulo de disposición de carreteras 686. El módulo de disposición de carreteras 686 escala cada una de las carreteras en un mapa de ruta de un modo no uniforme. En realizaciones en las cuales el módulo de disposición de carreteras 686 incluye un programa de recocido simulado se realizan las siguientes etapas:
1.
Generar una disposición de carreteras inicial aumentando todas las carreteras cortas a una longitud mínima deseada.
2.
Obtener una puntuación inicial E para la disposición inicial de carreteras usando una función objetivo y fijar una temperatura efectiva inicial.
3.
Mientras que E sea mayor que una puntuación aceptable, el número de iteraciones sea menor que el máximo de iteraciones permitidas, y la temperatura efectiva esté por encima de un nivel bajo umbral, repetir las etapas de 4 a 8.
4.
Elegir una carretera aleatoria y aumentarla o encogerla en una cantidad aleatoria; re-escalar todas las carreteras de modo que quepan dentro de la región de visión.
5.
Obtener una nueva puntuación E para la nueva disposición de carreteras generada en la etapa cuatro.
6. Si la nueva puntuación E es menor que la puntuación inicial E, aceptar la nueva disposición de carreteras 5 generada en la etapa cuatro.
7.
Si la nueva puntuación E es mayor que la puntuación inicial E, aceptar la nueva disposición de carreteras de acuerdo con una probabilidad decreciente, para escapar de los mínimos locales.
8.
Ajustar la temperatura efectiva.
Se apreciará que el protocolo de recocido simulado perfilado anteriormente y descrito en detalle en la FIG. 8 no está
10 limitado a ninguna función específica de puntuación. En realidad, diversas realizaciones del módulo de disposición de carreteras 686 usan un amplia disposición de funciones de puntuación para determinar la puntuación inicial E1 (806 FIG. 8) así como las nuevas puntuaciones E2 (810 FIG. 8). Los solicitantes han descrito una función objetivo de acuerdo con una realización del módulo de disposición de carreteras 686 que se determina por (i) el número de falsas intersecciones que hace cada una de las carreteras i en un mapa de ruta, (ii) el número de carreteras que ya
15 no tienen la misma longitud relativa que tenían antes de que se iniciase al programa de recocido simulado, y (iii) el número de carreteras que son más cortas que una longitud umbral mínima
En otra realización del módulo de disposición de carreteras 686, las etapas de procesamiento 806 y 810 en la FIG. 8 usan una función de puntuación representada por el siguiente código representativo.
(501) Puntuación () 20 (502) Puntuación = 0,0
(503) Puntuación + = PuntuaciónIntersección ()
(504) Puntuación + = PuntuaciónBarajar ()
(505) Puntuación + = PuntuaciónLongitudCarretera ()
(506) Puntuación + = PuntuaciónProporción ()
(507) Puntuación + = PuntuaciónDirecciónPuntoFinal ()
(508) Puntuación + = PuntuaciónDistanciaPuntoFinal () 25
Cada una de las sub-puntuaciones considera un aspecto específico de la disposición de carreteras y se prioriza como sigue:
Prioridad más alta
Prioridad más baja
Intersecciones: mantenimiento de las intersecciones existentes y no introduciendo falsas intersecciones. Longitud de carretera: escalamiento de todas las carreteras para que sean legibles. Barajado: mantenimiento de las longitudes relativas de las carreteras. Dirección del punto final: mantenimiento de la orientación global de la ruta.
Proporciones: mantenimiento de las proporciones en las longitudes entre carreteras. Distancia al punto final: mantenimiento de la distancia entre los puntos de comienzo y de destino de la ruta.
En esta realización, la función de puntuación usada por el módulo de distribución de carreteras 686 asigna una
30 prioridad más alta a los aspectos de la distribución de carreteras que son más importantes de resolver. Por ejemplo, un mapa con intersecciones perdidas o falsas intersecciones puede ser engañoso. Por otra parte, el mantenimiento de la distancia global y la orientación de la ruta son útiles pero no se requieren para que un navegador siga la ruta. De este modo, a la resolución de las intersecciones se da una prioridad mayor que al mantenimiento de la distancia del punto final en esta realización del módulo de distribución de carreteras 686.
35 La línea 502 del código representativo inicializa la variable &quot;Puntuación&quot; a cero. La variable &quot;Puntuación&quot; representa a E1 (806 FIG. 8) o E2 (810). A continuación, las líneas de 503 a 508 suman potencialmente cada una cantidad al valor de la variable &quot;Puntuación&quot;. Valores más altos de la puntuación representan valores más altos de E1 y de E2 y de este modo representan soluciones pobres. Cada una de las funciones que contribuye al valor global de la &quot;Puntuación&quot; sobre las líneas de 503 a 508 se trata a continuación con más detalle.
40 Punfuaci6nlnfersecci6n (). La primera función a contribuir a la variable &quot;Puntuación&quot; en el código representativo es la función &quot;PuntuaciónIntersección ()&quot; sobre la línea 503. El mantenimiento adecuado de las intersecciones entre las carreteras es la más alta prioridad en la función de puntuación desvelada. En la inicialización del recocido, todas las carreteras en el mapa de ruta se aumentan a sus longitudes mínimas deseadas. El aumento de las carreteras puede conducir a dos problemas: pueden introducirse intersecciones entre carreteras que no deberían cortarse (falsas intersecciones), o dos carreteras que deberían cortarse ya no se cortan (pérdida de intersecciones). La FIG. 40 ilustra amos escenarios. Las FIG. 40A y 40C representan cada una un mapa original mientras que las FIG. 40B y 40D representan mapas perturbados. La FIG. 40B representa una situación en la que surge una falsa intersección 4002. La FIG. D representa una situación en donde se presenta una pérdida de intersección 4004. Ambos casos de intersecciones perdidas y falsas puede ser extremadamente engañosos y por lo tanto se penalizan severamente en cualquier distribución propuesta que tiene cualquiera de estos problemas.
El papel de la función de puntuación en el módulo de distribución de carreteras 686 es guiar el algoritmo de distribución a la distribución deseada. Un enfoque para promover este objetivo es añadir una penalización fija constante cuando existe cualquiera de estas condiciones. Sin embargo, la función de puntuación no proporciona una guía adecuada porque siempre se añade la misma penalización a la puntuación independientemente de la gravedad de la intersección perdida o falsa. Supongamos que la ruta contiene una intersección perdida como se muestra por 4004 en la FIG. 40D. Si se perturba la distribución y los puntos de intersección perdidos terminan más cerca entre sí pero no coinciden exactamente, la puntuación de intersecciones para este mapa no cambiará. El algoritmo son sabe que moviendo los puntos de intersección perdidos juntos más cerca genera una mejor distribución. En otras palabras, el algoritmo de recocido es menos probable que converja. De este modo, en esta realización, se construye una puntuación que refleja la severidad de los problemas de intersección de un modo que sugiere cómo pueden resolverse en vez de usar una penalización constante para cada una de las intersecciones perdida o falsa. Lo que sigue es una descripción de cómo se resuelven simplemente las intersecciones falsas y perdidas independientemente por la función de puntuación desvelada. A continuación, se proporciona una descripción sobre cómo debe cambiar una puntuación cuando hay tanto intersecciones falsas como perdidas en un mapa único.
Intersecciones perdidas y mal colocadas. Si dos carreteras deberían cortarse pero no lo hacen (pérdida de intersección), se añade un factor a la puntuación que se refiere a la distancia entre el punto de intersección adecuado sobre cada una de las carreteras. El punto de intersección adecuado se calcula a partir del valor paramétrico de la intersección original en el mapa sin escalar. Si las carreteras deberían cortare y se cortan pero en un punto equivocado (intersección mal colocada), también se añade un factor que está relacionado con la distancia entre el punto de intersección adecuado sobre cada una de las carreteras. La ponderación de la puntuación para una intersección desplazada es mucho menor que para una intersección perdida. Esta puntuación se ilustra en la FIG. 41. La FIG. 41A representa cómo se puntúa una pérdida de intersección mientras que la FIG. 41B representa cómo se puntúa una intersección mal colocada. Las fórmulas generales para el cálculo de las intersecciones son:
puntuación de pérdida = d * PONDERACIÓN_PUNTUACIÓN_PÉRDIDA
puntuación de mala colocación = d * PONDERACIÓN_PUNTUACIÓN_MALA_COLOCACIÓN
en el que d es la distancia Euclidea entre los dos puntos que deberían cortarse como se representa en la FIG. 41.
Intersecciones falsas únicas. Las intersecciones falsas se producen cuando la trayectoria se dobla incorrectamente sobre sí misma, formando un bucle o nudo. Para eliminar las falsas intersecciones, el nudo debe deshacerse. Para eliminar cualquier nudo individual es deseable hacer que el punto de la falsa intersección se mueva hacia el extremo del final más próximo (en pixel a lo largo de la carretera) de la trayectoria (o de forma similar hacer que el punto del final más próximo se mueva hacia el punto de falsa intersección). La FIG. 42 ilustra varios escenarios de falsas intersecciones, mostrando para cada uno de los puntos de falsa intersección en qué dirección debe viajar el punto del extremo más próximo para eliminar el nodo formado por el punto de falsa intersección. La FIG. 424A representa el caso más simple, una falsa intersección 4202. El punto del final 4204 simplemente necesita moverse a la derecha para resolver la falsa intersección. Las FIG. 42B y 42C muestran en qué dirección deberían moverse los puntos de los extremos para resolver cada uno de los puntos de falsa intersección independientemente. La FIG. 42B representa una situación en la cual múltiples puntos de falsa intersección 4208 están cerca del mismo punto del extremo 4206. Los dos puntos de falsa intersección 4208 están tirando del punto del extremo 4206 en direcciones opuestas. La FIG. 42C representa el caso de múltiples puntos de falsa intersección (4214, 4216) que están cerca de diferentes puntos finales (4210, 4212). En este caso, los puntos de falsa intersección 4214 y 4216 son enteramente independientes entre sí.
El cálculo de la puntuación para un punto de intersección falsa individual es relativamente sencillo. Es deseable mover el punto de falsa intersección hacia el punto del final más próximo de la ruta, o alternativamente mover el punto del final más próximo hacia el punto de falsa intersección. La FIG. 43 ilustra un nudo que se produce por la falsa intersección 4302. Un modo para resolver la falsa intersección 4302, es empujar el punto del final que está más cerca de la falsa intersección 4302 hacia la falsa intersección. Para determinar qué punto del final está más cerca (4304 ó 4306) de la falsa intersección 4302, se calcula la distancia entre cada uno de los puntos del final y la falsa intersección y se comparan. A continuación, el punto del final que está más cerca de la falsa intersección se mueve hacia la falsa intersección.
Viendo cada una de las falsas intersecciones independientemente, la puntuación para cada uno de los puntos de falsa intersección se calcula como la &quot;distancia en pixel a lo largo de la ruta hasta el punto del extremo más próximo&quot; multiplicado por una ponderación de la puntuación. Esto es equivalente a construir conceptualmente una colina de puntuación a lo largo de la ruta que guía el punto de falsa intersección al punto del final más próximo donde puede eliminarse. Por lo tanto, la puntuación para una única falsa intersección puede calcularse como
puntuación de falsa = d * PONDERACIÓN_PUNTUACIÓN_FALSA
donde d es la distancia en pixel al punto del final a lo largo de la ruta, en oposición a la distancia en línea recta, como se muestra en la FIG. 43. Sin embargo, como se ilustra por el escenario en la FIG. 42B, si se calcula la puntuación para cada una de las falsas intersecciones de este modo, entonces cuando hay múltiples falsas intersecciones las puntuaciones empujarán el punto del extremo en direcciones opuestas. Sin embargo, este problema se resuelve contando siempre sólo la puntuación para la falsa intersección más interior (es decir, la más lejana del punto del final). La diferencia entre contar todas las falsas intersecciones y sólo la falsa intersección más interior se muestra en la FIG. 44. La FIG. 44 ilustra la situación en la que, si se cuentan las puntuaciones para ambas falsas intersecciones 4404, se tira del punto del extremo 4402 igualmente en ambas direcciones, resultando una meseta en la función de puntuación ya que un movimiento del punto del extremo 4402 en cualquier dirección no cambia la puntuación. La FIG. 44B ilustra la situación en la que sólo se cuenta la falsa intersección más interior para cada uno de los puntos del final. En la situación descrita en la FIG. 44B, una vez que se ha resuelto la falsa intersección más interior, la falsa intersección restante se convierte en la falsa intersección más interior y se resuelve posteriormente. En situaciones tales como la de la FIG. 42C, donde hay dos falsas intersecciones pero ambas están más cerca de puntos del extremo diferentes, ambas puntuaciones se cuentan frente a estos puntos finales respectivos.
Falsas intersecciones y pérdida de intersecciones. En general, cuando se producen tanto falsas intersecciones como pérdida de intersecciones en el mismo mapa pueden puntuarse como se ha descrito anteriormente, y en la mayor parte de los casos las puntuaciones interactuarán adecuadamente para resolver ambos problemas. Sin embargo, hay una situación excepcional. Esta situación se produce cuando se produce una pérdida de intersección dentro del bucle formado por una falsa intersección. Diversas variaciones de esta situación se ilustran en la FIG. 45. En la FIG. 45A, un punto 450 de intersección perdida está dentro del bucle formado por una falsa intersección 4504. En la FIG. 45B, ambos puntos 4506 están dentro del bucle formado por la falsa intersección 4508. En ambas situaciones mostradas en la FIG. 45, una puntuación puede empujar en una dirección y la otra puntuación en la otra dirección, resultando un estancamiento en el cual no puede resolverse ninguno de los problemas. La FIG. 46 muestra las mismas rutas que la FIG. 45, pero con la flechas 4610 añadidas para indicar la dirección en la que moverían las dos puntuaciones a los puntos finales 4602 y 4604.
Un punto importante acerca de las situaciones que se presentan en la FIG. 45 es que la resolución de la intersección perdida a menudo resuelve la falsa intersección. En la FIG. 45, se supone que hay una intersección, que se produce justo entre las carreteras equivocadas. Es bastante frecuente el caso en el que se produce una pérdida de intersección dentro del bucle de una falsa intersección, que la falsa intersección es simplemente la intersección perdida mal colocada. Esta situación se resuelve con una regla adicional: si hay algún punto de intersección perdida en el interior del bucle formado por una falsa intersección se añade una penalización constante para la falsa intersección, no una puntuación basada en una colina. De este modo, ambos casos que se muestran en la FIG. 45 usarán una penalización constante para la falsa intersección, ya que ambas contienen al menos un punto de intersección perdida dentro del bucle de la falsa intersección.
Con esta introducción puede establecerse ahora un algoritmo para puntuar las intersecciones falsas y perdidas con las líneas de 601 a 633 del código ilustrativo.
(601) vacio puntuación_falsa_intersección (Carretera* propia, Carretera* distinta
(602) si (intersección_perdida_en_bucle) {
(603) // bucle de falsa intersección contiene una intersección perdida
(604) si (punto_final_más_cerca_carretera (propia, distinta)) {
(605) propia - AumentarPuntuacion (CONST_FALSA_INTERSECCIÓN):
(606) } si no {
(607) // no hay intersección perdida en bucle
(608) si (punto_final_más_cerca_carretera (propia, distinta)) {
(609) propia - AumentarPuntuacion (pixelAlPuntoFinalMasProximo '
(610) COLINA_FALSA_INTERSECCIÓN);
(611) // Calcular la puntuación intersección extendida máxima posible. Todas
(612) // las puntuaciones de falsas intersecciones deben aumentarse en la
(613) // puntuación de intersección extendida máxima para asegurar que no
(614) // hay ningún valle entre la resolución de todas las falsas intersecciones
(615) // y la introducción de intersecciones extendidas.
(616) propia - AumentarPuntuacion (PuntuacionlnterseccionExtendidaMax);
(617) } } } (618) vacío PuntuaciónIntersecciónPerdida (Carretera * propia, Carretera* distinta) {
(619) doble PuntuaciónIntersecciónPerdida = 0,0;
(620) // Conocemos dónde se deberían haber cruzado las dos carreteras en términos de T
(621) // valores a lo largo de la carretera. Calcular la distancia entre estos dos puntos.
(622) para (cada intersección perdida entre la propia y otra) {
(623) doble dist = (ptPropia – ptDistinta).longitud ();
(624) // Antes de que las carreteras toquen usar una penalización más alta. Después
(625) // de que toquen reducir la penalización constante para asegurar que el
(626) // recocido mantendrá el toque.
(627) si (no hay intersección entre la propia y la otra) {
(628) doble puntuaciónPérdida = dis * INTERSECCIÓN_PERDIDA;
(629) propia - aumentarPuntuacion (Carretera : IINTERSEC, puntPerdida);
(630) } si no {
(631) propia - aumentarPuntuacion (carretera : INTERSEC, dist *
(632) INTERSECCIÓN_MAL_COLOCADA);
(633) } } }
Examinando las líneas de 601 a 633 del seudocódigo ilustrativo en detalle, se observará que se añade una puntuación adicional &quot;PuntuaciónIntersecciónExtendidaMax&quot; para las puntuaciones de falsa intersección. Esta función se describe más adelante con una explicación del concepto de las intersecciones extendidas.
Intersecciones extendidas. Además de evitar las intersecciones reales entre carreteras, es deseable evitar tener carreteras que pasan lo suficientemente cerca entre sí que parece que se tocan. Estas situaciones se manejan en una realización del módulo de disposición de carreteras 686 usando el concepto de una intersección extendida. Las intersecciones extendidas entre dos carreteras se calculan extendiendo ambos puntos del final de cada una de las carreteras en un número fijo de pixel, y comprobando a continuación si las carreteras resultantes se cortan. Este concepto se ilustra en la FIG. 47. En particular, en la FIG. 47A, las carreteras no se cortan realmente pero están próximas entre sí. En la FIG. 47B, cuando las carreteras se extienden un número fijo de pixel, las carreteras se cortan. Si se produce una intersección extendida entre dos carreteras se puntúa de la forma siguiente para cada una de las carreteras:
(a)
si la intersección se produce en la parte extendida de la carretera, como para la carretera 4702 en la FIG. 47A, entonces se calcula el número de pixel desde el extremo de la carretera extendida y se multiplica por una constante fija.
(b)
si la intersección se produce dentro de la porción no extendida de carretera, como la carretera 470A en la FIG. 47A, entonces se añade a la puntación una constante fija, que es igual a la mayor penalización que puede asignarse para una intersección con la porción extendida de la carretera.
Hay una complicación con el manejo de las intersecciones extendidas. Cuando se trata de resolver una falsa intersección, las intersecciones extendidas a menudo causan muchos mínimos locales en el espacio de búsqueda. Esto se ilustra en la FIG. 48, donde la intersección extendida 4802 funciona contra la resolución de la falsa intersección 4804. Para reducir el número de mínimos locales en el espacio de búsqueda explorado por la función objetivo tanto como sea posible, sólo se cuentan las intersecciones extendidas hacia la puntuación cuando no están probablemente contrarrestando la resolución de una falsa intersección. La implementación de este criterio requiere dos cosas:
(a)
saber cuándo cuenta, y cuando no cuenta una intersección extendida hacia la puntuación, y
(b)
añadir la mayor puntuación posible de la intersección extendida a la puntuación base de falsa intersección. De otro modo, cuando se resuelve una falsa intersección, la función objetivo comienza contando un número de intersecciones extendidas, y su puntuación aumentada puede superar la disminución en la puntuación de la resolución de la falsa intersección. Esto puede causar un mínimo local sustancial en el espacio de búsqueda que impediría la resolución de la mayor parte de falsas intersecciones. Sin embargo, en una realización preferida el módulo de disposición de carreteras 686, se añade la puntuación máxima de la intersección extendida a cada una de las puntuaciones de falsa intersección. Esto garantiza que la resolución de una falsa intersección dará como resultado una disminución de la puntuación.
Un modo de determinar qué intersecciones extendidas añadir a la puntación es dividir la carretera en intervalos de falsa intersección. Todas las carreteras entre un punto de final del mapa y una falsa intersección, o entre un par de falsas intersecciones se consideran que están en el mismo intervalo de falsa intersección. Este concepto se ilustra en la FIG. 49. En la FIG. 49, se ilustra la misma ruta mostrada en la FIG. 48, pero la ruta está segmentada por intervalos de falsa intersección. En particular, hay tres intervalos de falsa intersección en la FIG. 49; (A) desde al punto de comienzo 4802 hasta, pero sin incluir, la primera carretera con una falsa intersección, (BCDE) que es desde la carretera con una falsa intersección hasta la siguiente carretera con una falsa intersección y (FGH) que es desde la última falsa intersección al punto del final. Las intersecciones extendidas sólo se cuentan entre carreteras en el mismo intervalo de falsa intersección. De este modo, la intersección extendida mostrada en la FIG. 48 no se contaría. Si sólo se añaden las intersecciones extendidas que se producen entre carreteras en los mismos intervalos de falsa intersección, entonces el problema representado en la FIG. 48 no se producirá.
Punfuaci6nBarajar(). La segunda función a contribuir a la variable &quot;Puntuación&quot; en el código representativo es la función &quot;PuntuaciónBarajar()&quot; sobre la línea 504. El propósito de &quot;PuntuaciónBarajar()&quot; es mantener las longitudes relativas de las diferentes carreteras en el mapa de ruta escalado igual que cuando estaban en el mapa de ruta sin escalar. En la función &quot;PuntuaciónBarajar()&quot;, para cada uno de los pares de carreteras A y B en el mapa de ruta, el ordenamiento de las carreteras por longitud en el mapa escalado se compara con el ordenamiento de las carreteras por longitud en el mapa sin escalar original. Si el ordenamiento ha cambiado, las carreteras A y B se consideran barajadas y se añade un factor a la variable &quot;Puntuación&quot; para reflejar esto. En una realización, sin embargo, las carreteras sólo se consideran barajadas cuando su diferencia en longitudes es mayor que un umbral perceptual. Típicamente, el umbral perceptual utilizado es dependiente de la resolución y el tamaño de la región de visión que se usa para visualizar el mapa de ruta así como de factores tales como si el mapa de ruta escalado total se está representando en la región de visión en oposición a un segmento escalado hacia arriba del mapa de ruta escalado. El propósito de la penalización aplicada por la función &quot;PuntuaciónBarajar()&quot; es asegurar que, siempre que sea posible, el ordenamiento relativo de las carreteras por longitud se mantienen en el mapa de ruta escalado.
En una función objetivo representativa usada por una realización del módulo de disposición de carreteras 686 &quot;PuntuaciónBarajar()&quot; se representa por la siguiente expresión:
Para cada par de carreteras (A, B)
Comparar el ordenamiento de las carreteras por longitud en el mapa actual con el ordenamiento de las carreteras por longitud en el mapa original. Si el ordenamiento ha cambiado entonces añadir una penalización constante a la puntuación para reflejar esto. Las carreteras sólo se consideran barajadas cuando su diferencia en longitud es mayor que un umbral perceptual.
Punfuaci6nLongifudCarrefera (). El objetivo global del escalamiento no uniforme de los mapas que se implementa por el módulo de disposición de carreteras 686 es hacer todas las carreteras en la ruta lo suficientemente grandes para ser legibles. Esto se sigue por la tercera función (&quot;PuntuaciónLongitudCarretera ()&quot;), que contribuye a la variable &quot;Puntuación&quot; como se encuentra en la línea 505 del código representativo. En la función &quot;PuntuaciónLongitudCarretera ()&quot;, la longitud actual de cada una de las carreteras en el mapa de ruta se compara con una longitud mínima deseada predeterminada. Si una carretera es menor que la longitud deseada mínima, entonces se añade un factor a la variable &quot;Puntuación&quot;. La magnitud de este factor es una función de la potencia de la diferencia entre la longitud actual de la carretera ofensiva y una longitud de carretera mínima aceptable predeterminada. La longitud de carretera mínima aceptable predeterminada se fija para asegurar que la carretera es suficientemente larga para ser identificable en el mapa de ruta escalado. En algunas realizaciones de la presente invención, la longitud de la carretera mínima aceptable predeterminada se diseña considerando las dimensiones de la región de visión 640 (FIG. 6) usada para representar el mapa de ruta escalado o el número de pixel en la región de visión 640. En un ejemplo, cuando la región de visión 640 es una disposición de pixel de 1024 por 768, la longitud de carretera mínima aceptable predeterminada es de 20 pixel. En otro ejemplo, la longitud de carretera mínima aceptable predeterminada se fija como un cuatro por ciento de la longitud de la dimensión más corta de la región de visión 640. De este modo, si la región de visión 640 tiene una pantalla que es de 5 por 6 centímetros, la longitud de carretera mínima aceptable predeterminada se fija a 0,2 centímetros.
En una función objetivo representativa usada por una realización del módulo de disposición de carreteras 686, &quot;PuntuaciónLongitudCarretera ()&quot; se representa por la siguiente expresión:
Para cada una de las carreteras (A)
Comparar la longitud actual con una longitud mínima deseada predeterminada. Si es menor que la longitud mínima deseada entonces añadir un factor a la puntuación. El factor está relacionado con la potencia de la diferencia entre la longitud actual y la longitud mínima deseada. La longitud mínima deseada se fija para asegurar que la carretera es lo suficientemente larga para percibirse y etiquetarse y que las longitudes relativas se conservan.
Punfuaci6nProporci6n (). La cuarta función que contribuye a la variable &quot;Puntuación&quot; es la función &quot;PuntuaciónProporción ()&quot;, que está en la línea 506 del código representativo. Una de las contribuciones de prioridad más baja a la &quot;Puntuación&quot; la función &quot;PuntuaciónProporción ()&quot; se usa para mantener las proporciones entre las diferentes longitudes de carreteras. La función &quot;PuntuaciónProporción ()&quot; examina cada una de las carreteras A en el mapa de ruta escalada cuya longitud es mayor que la longitud de carretera aceptable mínima predeterminada descrita en la descripción de la función &quot;PuntuaciónLongitudCarretera ()&quot; anterior. Para cada una de tales carreteras A en el mapa de ruta escalado, la proporción de la longitud de la carretera se compara con la siguiente carretera más corta y la siguiente carretera más larga en el mapa de ruta. Las proporciones obtenidas a partir de estas comparaciones se compaginan con las proporciones correspondientes obtenidas a partir del mapa de ruta sin escalar. Cuando la proporción entre la carretera A y la siguiente carretera más larga y la siguiente carretera más corta en el mapa de ruta difiere significativamente en los mapas de ruta, escalado y sin escalar, se añade una penalización a la variable &quot;Puntuación&quot;. El propósito de la función &quot;PuntuaciónProporción ()&quot; es preservar las proporciones de las longitudes de carreteras en el mapa de ruta escalado del mapa de ruta sin escalar que tiene espacio suficiente.
En una función objetivo representativa usada por una realización del módulo de disposición de carreteras 686, la función &quot;PuntuaciónProporción ()&quot; se representa por la siguiente expresión:
Para cada una de las carreteras (A) cuya longitud es mayor que su longitud deseada mínima:
Comparar la proporción de esta longitud de carretera con la siguiente carretera más corta y la siguiente carretera más larga, limitando las proporciones a cinco, ya que en una limitación no uniforme es difícil mantener cualquier proporción mayor. Asignar una penalización como:
penalización = valor absoluto de (proporción actual – proporción original) * PUNTUACIÓN_PROPORCIÓN
Punfuaci6nDirecci6nPunfoFinal (). La quinta función a contribuir a la variable &quot;Puntuación&quot; en el código representativo es la función &quot;PuntuaciónDirecciónPuntoFinal ()&quot; (línea 507). Esta función añade un factor a la variable &quot;Puntuación&quot; para reflejar la diferencia en la orientación entre las direcciones de comienzo y de final en el mapa de ruta sin escalar y el mapa de ruta escalado. La magnitud del factor añadido a la variable &quot;Puntuación&quot; por esta función es dependiente de la extensión de la diferencia en la orientación entre las direcciones de comienzo y de final en los mapas de ruta escalado y sin escalar. Grandes diferencias en la orientación obtienen una gran magnitud mientras que pequeñas diferencias obtienen una pequeña magnitud.
En una realización del módulo de disposición de carreteras 686, la función &quot;PuntuaciónDirecciónPuntoFinal ()&quot; se representa por la siguiente expresión:
penalización = valor absoluto de (ángulo de orientación original – angulo de orientación actual)
*PUNTUACIÓN_ORIENTACIÓN
Punfuaci6nDisfanciaPunfoFinal (). La sexta función a contribuir a la variable &quot;Puntuación&quot; en el código representativo es la función &quot;PuntuaciónDistanciaPuntoFinal ()&quot; en la línea 508 del código representativo. Esta función añade un factor a la variable &quot;Puntuación&quot; que refleja la diferencia en distancia entre las direcciones de los puntos de comienzo y de final en el mapa de ruta sin escalar original y el mapa de ruta escalado actual. Esta función es particularmente útil para mapas de ruta que tienen una forma global de U. Esta función asegura que el comienzo y el final del mapa de ruta no quedan demasiado próximos entre sí.
En una realización del módulo de distribución de carreteras 686, la función &quot;PuntuaciónDistanciaPuntoFinal ()&quot; se representa por la siguiente expresión:
penalización = (longitud deseada - longitud actual) /longitud deseada * LONGITUD_DISTANCIA
Se apreciará que la función de puntuación representada por las líneas de 501 a 508 del código representativo meramente ilustra un tipo de función de puntuación que se usa en algunas realizaciones del módulo de disposición de carreteras 686. De hecho, son posibles muchas permutaciones de la función de puntuación representada por las líneas de 501 a 508 del código representativo. Tales permutaciones incluyen el uso de sólo un subconjunto de las funciones perfiladas en el código representativo para construir el valor de la variable &quot;Puntuación&quot;. Por ejemplo, en algunas realizaciones, sólo se usan las funciones &quot;PuntuaciónIntersección ()&quot; y &quot;PuntuaciónLongitudCarretera ()&quot;. Otras permutaciones de la función de puntuación ilustrada por el código representativo incluyen la ponderación relativa de las funciones componentes de modo que algunas de las funciones tienen una mayor influencia sobre el valor de la variable &quot;Puntuación&quot;. De este modo, por ejemplo, en algunas realizaciones, la contribución de la función &quot;PuntuaciónIntersección ()&quot; a la variable &quot;Puntuación&quot; se pondera hacia arriba en relación con la contribución de la función &quot;PuntuaciónLongitudCarretera ()&quot;. Tales esquemas de ponderación pueden imponerse dinámicamente en base a factores tales como la complejidad de la ruta, el tamaño de la región de visión usada para representar la ruta, la presencia de anomalías tales como una carretera en la ruta que es mucho más larga que cualquier otra carretera en la ruta, así como preferencias especificadas por el usuario.
Realizaciones de refinamiento adicional de las etiquetas
Otro aspecto importante del procedimiento global para la producción de un mapa de alta calidad se realiza por el módulo de disposición de etiquetas 688. El módulo de disposición de etiquetas 688 coloca y optimiza las etiquetas que corresponden a las diversas carreteras en el mapa de ruta. Una nueva característica del módulo de distribución de etiquetas 688 es que fijará la posición de la etiqueta para ciertas carreteras durante el refinamiento.
La FIG. 9 ilustra una realización del módulo de distribución de etiquetas 688 (FIG. 6). Pueden usarse muchos tipos diferentes de funciones objetivo para refinar la posición de las etiquetas en el procedimiento ilustrado en la FIG. 9.
Se describen dos de tales funciones objetivo por las líneas de 301 a 308 y las líneas de 401 a 417 del código ilustrativo. En las realizaciones descritas anteriormente, se uso un programa de recocido simulado para colocar las etiquetas dentro de un intervalo continuo de posiciones de una región alrededor del centro de la carretera correspondiente a la etiqueta. Tal región se llama una restricción. El tipo de restricción usado en las realizaciones descritas anteriormente se ilustra en la FIG. 17A. En la FIG 17A, el elemento 1802 ilustra el intervalo continuo de posiciones que pueden usarse para colocar la etiqueta que corresponde a la carretera 1802. El elemento 1804 sirve como una restricción ya que el centro de la etiqueta está restringido a quedar en alguna parte dentro del elemento 1804. La FIG. 17B ilustra la colocación de la etiqueta 1806 en una de tales localizaciones aceptables.
El módulo de disposición de etiquetas 688 descrito en esta sección se construye bajo la definición de restricción usada en las reivindicaciones anteriores. La definición de restricción expandida se usa por la función objetivo en el programa de recocido simulado del módulo de disposición de etiquetas 688 para identificar una posición de etiqueta adecuada, la orientación y el estilo. Los componentes de restricción en la definición de restricción expandida incluyen (i) una caja delimitadora (por ejemplo, el elemento 1704 en la FIG. 17A), (ii) una orientación (por ejemplo el elemento 1710 en la FIG. 17C, (iii) un estilo de distribución (por ejemplo, de la FIG. 18A a 18F), y (iv) una estrategia de puntuación.
La caja delimitadora define dónde puede posicionarse el centro de la disposición de etiqueta. De este modo, en la FIG. 17B, una etiqueta colocada usando la restricción definida por la caja 1704 puede colocarse de tal forma que el centro de la etiqueta cae en cualquier parte en la caja 1704. Los vectores de orientación definen cómo se debería girar una etiqueta. La etiqueta 1706 en la FIG. 17A está posicionada junto a un vector que es paralelo al eje longitudinal de la caja delimitadora correspondiente 1804. Usando la definición de restricción expandida, las etiquetas pueden adoptar orientaciones alternativas. Por ejemplo, la etiqueta puede orientarse de modo que es perpendicular al eje longitudinal de la caja delimitadora correspondiente. La FIG. 17D ilustra la colocación de una etiqueta en una posición girada.
El estilo de disposición define qué texto y qué imágenes se crean y cómo se combinan para componer la etiqueta cuando se selecciona la restricción dada durante el recocido. La FIG. 18 proporciona varios estilos de disposiciones de ejemplo. El estilo de disposición ilustrado por la FIG. 18A es un estilo de disposición simple en el cual se representa el nombre principal para una calle o autopista. El estilo de disposición ilustrado por la FIG 18B combina una imagen de una flecha con el nombre principal para una calle o una autopista. El estilo de disposición ilustrado por la FIG. 18C combina el nombre principal para una calle o autopista con la marcación de millas a lo largo de la carretera. El estilo de disposición ilustrado por la FIG. 18D proporciona un número de autopista como un texto colocado sobre la parte superior de una imagen de escudo. El estilo de disposición ilustrado por la FIG. 18E proporciona un recuadrado de las palabras. Finalmente, el estilo de disposición ilustrado pro la FIG. 18F proporciona un número de una autopista colocado en la parte superior de una imagen de escudo con la marcación de millas a lo largo de la carretera correspondiente.
La estrategia de puntuación define qué penalizaciones base se usan con cada una de las restricciones. La magnitud de la penalización base para una restricción particular se elige considerando el tipo de estilo de disposición que está asociado con una restricción. Por ejemplo, un estilo de distribución que no incluye una etiqueta de distancia (FIG. 18A, 18E) se penaliza más que una que si lo incluye (FIG. 18C). Una estrategia de puntuación representativa de acuerdo con una realización de la presente invención, se proporciona en la Tabla 1. Cada uno de los estilos de representación tiene una ponderación base y una puntuación de posición. En la estrategia de puntuación proporcionada por la Tabla 1, puntuaciones más bajas representan posiciones de etiqueta mejoradas. Además, la estrategia de puntuación proporcionada en el Tabla 1 se diseña para proporcionar una función objetivo que permite a un módulo de distribución 688 encontrar posiciones óptimas para las etiquetas en el mapa de ruta.
Tabla 1: Estrategia de Puntuación Representativa para Posiciones de las Etiquetas
Estilo de Distribución
Ponderación Puntuación de Posición Advertencias
Base
Escudo de Autopista
0,0 + penalización * (distancia desde el centro de la etiqueta al centro de la carretera correspondiente) Aplicable sólo a autopistas con números de autopista conocidos
Nombre de carretera directamente por encima o por debajo de la carretera
0,1 + 0,1 para debajo de la carretera frente a por encima de la carretera + penalización * (distancia desde el centro de la etiqueta al centro de la carretera)
Nombre de carretera sobre la extensión de la carretera
0,3 + penalización * (distancia desde el centro de la etiqueta al centro de la carretera) Aplicable sólo a carreteras donde la carretera continúa pasada la intersección con la siguiente o anterior carretera (es decir, no una intersección de T)
Nombre de carretera + flecha apuntando la carretera
1.0 + penalización * (distancia desde la punta de la flecha al centro de la carretera);
+ penalización por el ángulo entre la etiqueta, la carretera y la pantalla horizontal o vertical - + 0,0; 90 grados - + 0,6; Y otros - + 1.0
En la estrategia de puntuación perfilada en la Tabla 1, la puntación base asignada al estilo de disposición base se define además por (i) la presencia o ausencia de recuadros de palabras y (ii) si no hay ninguna etiqueta de distancia, 5 una etiqueta de distancia directamente a la derecha, o una etiqueta de distancia directamente debajo de la etiqueta. Además todas las puntuaciones de posición en la Tabla 1 se determinan además por si hay etiquetado de distancias y recuadro de palabras. Cuando no hay ninguna etiqueta de distancia, se añaden 1,5 unidades adicionales a la puntuación y cuando el nombre de la carretera es de veinte caracteres o más y no hay recuadro de texto se añade
1.0 unidades adicionales a la puntuación.
10 Volviendo la atención sobre la FIG. 19, se ilustra una fase de pre-procesamiento ilustrativa de acuerdo con la presente invención. En primer lugar, se selecciona una carretera 1902 en el mapa de ruta (FIG. 19A). A continuación, se elige una definición de restricción aleatoria para la carretera a partir de un conjunto de posibles definiciones de restricciones. Cada una de las restricciones en el conjunto de posibles definiciones de restricciones incluye una definición de caja delimitadora, un vector de orientación, un estilo de disposición, y una estrategia de
15 puntuación. Por ejemplo, la definición de restricción 1904 (FIG. 19A) incluye la caja de limitadora ilustrada, una orientación ortogonal, un nombre principal más una disposición de distancia, y una estrategia de puntuación por defecto. Otras posibles definiciones de restricciones además de la restricción de la flecha 1904 son posibles. Por ejemplo, en la FIG. 19B, otras posibles definiciones de restricciones incluyen restricciones de carretera extendida y restricción de escudo de autopista. Las etapas restantes en la etapa de pre-procesamiento ilustrativo se tratan con la
20 suposición de que se selecciona la definición de restricción 1904 por el procedimiento de pre-procesamiento. Una vez que se ha seleccionado una definición de restricción, la siguiente etapa es seleccionar aleatoriamente una posición dentro de la caja delimitadora que está asociada con la restricción. En la FIG. 19C, tal posición se ilustra por el elemento 1910. Finalmente, usando el estilo de disposición y vectores de orientación asociados con la restricción 1904, se posiciona la etiqueta 1912 para la carretera 1902 (FIG. 19D).
25 Volviendo la atención sobre la FIG. 20, se ilustra una visión general de la realización del módulo de disposición 688 que hace uso de las definiciones de restricciones expandidas. El procedimiento comienza con la etapa de procesamiento 2002. En la etapa de procesamiento 2002 un conjunto de definiciones potenciales de restricciones se asocia con cada una de las etiquetas a colocar en el mapa de ruta escalado. La ejecución de la etapa de procesamiento 2002 da como resultado un conjunto de potenciales definiciones de restricción, tales como las
30 representadas en la FIG. 19B, que están asociadas con cada una de las etiquetas a refinar por el módulo de disposición de etiquetas 688. Se apreciará que la etapa de procesamiento 2002 excluirá definiciones de restricción que no son apropiadas para una clase particular de etiquetas. Por ejemplo, una definición de restricción que incluye un estilo de disposición de un escudo de autopista no se incluirá dentro del conjunto de definiciones potenciales de restricción asociadas con una etiqueta para una carretera pequeña en el mapa de ruta durante la etapa de
35 procesamiento 2002. Durante la etapa de procesamiento 2004, se selecciona una definición de restricción para cada una de las etiquetas en el mapa de ruta escalado a partir del conjunto de definiciones de restricciones asociadas con cada una de las etiquetas durante la etapa de procesamiento 2002. En una realización del módulo de disposición 688, se selecciona una definición óptima de restricción para cada una de las etiquetas de un conjunto de heurísticas. Tales heurísticas incluyen, por ejemplo, normas para la especificación de una definición de restricción óptima para una autopista. En otra realización del módulo de disposición 688, no se usa ningún conjunto de heurísticas para elegir una definición de restricción a partir del conjunto de definiciones potenciales de restricciones y se selecciona aleatoriamente una definición de restricción para cada una de las etiquetas a partir del conjunto de definiciones de restricción asociadas con la etiqueta durante la etapa de procesamiento 2002. Una vez que se ha elegido una definición de restricción para una etiqueta en la etapa de procesamiento 2004, el centro de la etiqueta se posiciona dentro de la caja delimitadora asociada con la definición de restricción de acuerdo con los vectores de orientación asociados con la definición de restricción. En una realización, el centro de la etiqueta se posiciona en el centro de la caja delimitadora. En otra realización, el centro de la etiqueta se posiciona en una localización aleatoria dentro de la caja delimitadora.
En la etapa de procesamiento 2006, se realiza una comprobación para determinar si puede fijarse cualesquiera posiciones de etiqueta. En la comprobación, las fronteras de la etiqueta se comparan con las fronteras de restricción de cada una de las etiquetas en el mapa. Si no hay ningún solapamiento entre las fronteras de una etiqueta determinada y las fronteras de restricción de todas las demás etiquetas en el mapa de ruta, entonces la etiqueta dada se fija en su posición actual ya que no hay ninguna posibilidad de que la etiqueta dada corte otra etiqueta durante el refinamiento posterior. En algunas realizaciones, las etiquetas se fijan sólo en la etapa 2006 si la definición de restricción seleccionada durante la etapa de procesamiento 2004 se hizo en base a un conjunto de heurísticas diseñadas para seleccionar una etiqueta óptima. De este modo, en tales realizaciones, cuando la definición de restricción seleccionada durante la etapa de procesamiento 2004 se selecciona aleatoriamente, la etiqueta no se fija durante la etapa de procesamiento 2006.
Durante la etapa de procesamiento 2008, se selecciona una temperatura efectiva inicial t y se fija el contador i a uno (2008). En la etapa de procesamiento 2010, la etiqueta de índice j del conjunto de etiquetas que no se han fijado en la etapa de procesamiento 2006 se selecciona aleatoriamente. La calidad de la posición de la etiqueta de índice j (S1) se mide usando una función objetivo en las etapas de procesamiento 2012 y en la etapa de procesamiento 2014 la etiqueta de índice j se reposiciona por el posicionamiento de la etiqueta de acuerdo con la caja de limitadora, los vectores de orientación, y el estilo de disposición de una definición de restricción diferente en el conjunto de definiciones de restricciones asociado con la etiqueta de índice j durante la etapa de procesamiento 2002. En particular, el centro de la etiqueta de índice j se posiciona aleatoriamente dentro de las fronteras de la caja delimitadora de la definición de restricción diferente. En la etapa de procesamiento 2016, se mide la calidad de la etiqueta de índice j nuevamente posicionada (S2). La función objetivo usada durante la etapa de procesamiento 2012 y 2016 es cualquier función capaz de evaluar la calidad de una posición de etiqueta en un mapa de ruta. Para este fin, la función objetivo podría ser la de las líneas de 301 a 308 o las líneas de 401 a 417 del código ilustrativo descrito en otras realizaciones del módulo de disposición de etiquetas 688 anterior.
Cuando la calidad de la posición de índice j ha mejorado (S2 < S1) (2018 – Si), la nueva posición de etiqueta para la etiqueta de índice j se acepta (2026). Cuando la calidad del mapa no ha mejorado (S2 > S1) (2018 – No), hay una probabilidad
1 – exp – [(iS) I k * t]
de que la nueva posición de etiqueta para la etiqueta de índice j se acepte. La probabilidad de que el cambio en la posición de etiqueta se acepte disminuye a medida que se reduce la temperatura efectiva t. La función de probabilidad se implementa como las etapas de procesamiento de 2020 a 2028 en la FIG. 20. En la etapa de procesamiento 2020, se calcula exp – [(.S) I k * t]. En la etapa de procesamiento 2022, se genera un número Pran, en el intervalo de 0 a 1. Si Pran es menor que exp – [(.S) I k * t] (2024 – Si), el cambio realizado para la posición de la etiqueta de índice j en la etapa de procesamiento 2014 se acepta (2026). Si Pran es mayor que exp – [(.S) I k * t] (2024 – No) el cambio realizado para la posición de la etiqueta de índice j en la etapa de procesamiento 2014 se rechaza (2028). Se apreciará que funciones de probabilidad distintas que la función mostrada en la etapa de procesamiento 2020, están dentro del alcance de la presente invención. En realidad, cualquier función de probabilidad que es dependiente de la temperatura efectiva t es adecuada.
Las etapas de procesamiento de 2008 a 2028 representan una iteración en el procedimiento de recocido. En la etapa de procesamiento 2030, la cuenta de iteraciones i se aumenta. Cuando la cuenta de iteraciones i no excede la cuenta máxima de iteraciones (2032 – No), el procedimiento continúa en la etapa 2010. Cuando la cuanta de iteraciones se iguala con el indicador de iteraciones máximas (2032 – Si), se reduce la temperatura efectiva t y se aumenta el contador de etapas (2034). Los especialistas en la técnica apreciarán que hay muchos posibles tipos diferentes de programaciones que se usan para reducir la temperatura efectiva t en diversas implementaciones de la etapa de procesamiento 2034. Todas estas programaciones están dentro del alcance de la presente invención. Después de la etapa de procesamiento 2034 se realiza una comprobación para determinar si debería terminarse el programa de recocido simulado (2036). Cuando se determina que el programa de recocido no debería terminarse (2036 – No), el procedimiento continúa en la etapa 2008 con el reinicio de la cuenta de iteraciones i.
Plantillas de disposición
Como los mapas de ruta se usan a menudo cuando se conduce o se navega, es importante presentar los mapas y los textos en un formato conveniente tal como en una forma simple de 8,5 por 11 pulgadas (21,59 por 27,94 cm). En una realización de la presente invención, cada una de las formas contiene varias plantillas de imagen, tales como el mapa de ruta escalado o un mapa de visión general convencional, así como cajas de texto para las direcciones de texto, distancias estimadas y tiempo. En una realización de la presente invención, se proporcionan formas predefinidas que definen la disposición y el tamaño de cada una de las plantillas de imagen y cajas de texto. Las plantillas de imagen y las cajas de texto de ejemplo se proporcionan en la FIG. 21. La FIG. 21A es una caja de texto que proporciona información de cabecera mientras que la FIG. 21B es una plantilla de imagen que proporciona un mapa de ruta escalado. Hay diferentes tamaños de plantillas de imagen para acomodar los mapas de ruta escalados de diversos tamaños. La FIG. 21C es una caja de texto que proporciona direcciones de texto, la FIG. 21D es una plantilla de imagen que proporciona un mapa de visión general, y la FIG. 21E es una plantilla de imagen que proporciona un mapa detallado.
Se usan varios factores para considerar qué plantilla de imagen usar para un mapa de ruta escalado. Tales factores incluyen, por ejemplo, la proporción de aspecto estimada del mapa de ruta escalado (por ejemplo la proporción del ancho total del mapa de ruta escalado a la altura total del mapa escalado), el número de elementos (es decir, de carreteras) en el mapa de ruta escalado, y la orientación global del mapa de ruta escalado. El código de ejemplo para un procedimiento para seleccionar una plantilla de imagen se proporciona en las líneas de 700 a 723 del código de ejemplo.
(700) función SeleccionarPlantilla () {
(701) proporciónAspecto = mapa - EstimarProporciónAspecto ();
(702) entero num_carreteras = map - ObtenerNumEtapasOrig ();
(703)
(704) si ((proporciónAspecto < 0,60) || ((proporciónAspecto < 0,70) &amp;&amp; (num_carreteras : 15))) {
(705) seleccionar plantilla de imagen vertical alargada para el mapa de ruta escalado (FIG. 22A)
(706) si (num_carreteras < 20) altura_mapa_ruta_escalado = 500);
(707) si no {
(708) // esta es una ruta larga, de modo que se requieren pixel extra en la dimensión vertical
(709) altura_mapa_ruta_escalado = 700; }
(710) si no, si (proporciónAspecto > 2,0) {
(711) seleccionar plantilla de imagen horizontal alargada para el mapa de ruta escalado (FIG. 22B)
(712) si no {
(713) seleccionar plantilla de imagen cuadrada para el mapa de ruta escalado (FIG. 22C)
(714) si (num_carreteras < 15) altura_mapa_ruta_escalado = 400;
(715) si no, si (num_carreteras < 25) {
(716) // esta es una ruta larga
(717) altura_mapa_ruta _escalado = 500;)
(718) si no {
(719) // Esta es una ruta realmente larga
(720) altura_mapa_ruta_escalado = 600;}
(721) } }
(722) ajustar dimensiones de texto, mapa de visión general, mapa de detalle y mapa de ruta escalado
(723) a los valores por defecto en esta plantilla}
En el código de ejemplo, la proporción de aspecto del mapa de ruta escalado se estima en la línea 701 y el número de elementos o carreteras en el mapa de ruta se determina en la línea 702. En las líneas 704 y 705 del código de ejemplo, una decisión para elegir una plantilla de imagen vertical alargada 2202 (FIG. 22A) para el mapa de ruta escalado se hace cuando la proporción de aspecto estimada del mapa de ruta escalado es menor que 0,6 o cuando la proporción de aspecto es menor de 0,7 y el número de elementos o carreteras en el mapa de ruta escalado es menor de 15. La imagen vertical alargada 2202 tiene una altura variable que se determina por las líneas de 706 a 709 del código de ejemplo. Por consiguiente, cuando el número de carreteras en el mapa de ruta es de veinte o menos, a la imagen vertical alargada 2202 se le asigna una altura de 500 pixel. Cuando, el número de carreteras en el mapa de ruta es más de veinte, a la imagen vertical alargada 2202 se le asigna una altura de 700 pixel.
Cuando la proporción de aspecto del mapa de ruta escalado es mayor que 2,0 (línea 710 del código de ejemplo), se selecciona la plantilla de imagen horizontal alargada 2204 (FIG. 22B) (línea 711). Para los mapas de ruta escalados con cualquier otra proporción de aspecto se selecciona la plantilla de imagen cuadrada 2206 (FIG. 22C) (líneas 612
– 613). Como el elemento 2202, el elemento 2206 es de una altura variable que se determina por el número de carreteras en el mapa de ruta escalado como se muestra en las líneas de 715 a 720 del código de ejemplo. Finalmente, en las líneas de 722 a 723 del código de ejemplo, se proporcionan las dimensiones de las plantillas de imagen restantes y las cajas de texto 2250 que se proporcionan en la forma de salida se posicionan alrededor de la plantilla de imagen que incluye el mapa de ruta escalado para obtener una forma de dimensión fija 2260, 2270 ó 2280.
Información de contexto
Toda la información representada en un mapa de ruta puede dividirse en dos categorías: (1) la información de ruta y
(2) la información de contexto. La información de ruta incluye información que es necesaria para seguir una ruta. Las carreteras a lo largo de la ruta y sus etiquetas son ejemplos de información de ruta necesaria. La información de contexto es una información secundaria que no es directamente sobre la ruta, y no es necesaria para comunicar la estructura básica de la ruta. Ejemplos de información de contexto incluyen marcas sobre el terreno, carreteras que cortan la carretera (es decir calles de cruce) y los nombres de las ciudades, parques y masas de agua cerca de la ruta. La información de contexto puede hacer más fácil entender la geografía de la ruta, proporcionar una validación de que el navegador está aún sobre la ruta correcta, y una ayuda en la identificación de puntos de decisión importantes a lo largo de la ruta.
En una realización de la presente invención, se manejan dos tipos básicos de información de contexto, carreteras de cruce y características del punto. En esta realización, los nombres de las ciudades se consideran como características del punto. La adición de información de contexto al mapa de ruta requiere en primer lugar decidir qué información de contexto debería aparecer en el mapa de ruta. Esta elección se hace difícil por el hecho de que el contexto que es importante para una persona no necesariamente es importante para otra persona. Aunque algunas normas básicas y preferencias que pueden usarse para elegir la información de contexto se describen en el siguiente ejemplo, se apreciará que la presente invención está modelada de modo que puede usarse cualquier algoritmo de selección de contexto.
En un ejemplo, cada calle de cruce importante que corta las carreteras sobre la ruta principal del mapa de ruta, así como la primera calle de cruce después de cada uno de los puntos de giro sobre la ruta principal se añade a un mapa de ruta como información de contexto. Las calles de cruce antes del giro ayudan al navegador a monitorizar el progreso hacia el giro, y la última calle de cruce antes del giro proporciona una advertencia de que el giro se está acercando. La primera calle de cruce después del giro ayuda el navegador a determinar que el giro adecuado se ha perdido. Las tres clases principales de características del punto útiles para su uso en un mapa de ruta son: (i) señales de salida de una autopista, (ii) edificios y negocios a lo largo de la carretera y puntos de giro, y (iii) nombres de las ciudades. preferentemente las señales de salida de la autopista, particularmente el número de salida, se incluyen porque hacen mucho más fácil para el navegador descifrar qué salida tomar para acceder a la siguiente carretera sobre la ruta. La selección de que negocios incluir es más difícil, ya que no hay una forma simple de identificar los edificios más sobresalientes o negocios a lo largo de una ruta. Sin embargo, si el mapa se diseñó para un socio de negocios particular tal como McDonalds, todos los McDonalds a lo largo de la ruta pueden añadirse automáticamente. Finalmente, es deseable incluir la mayor parte de los nombres de ciudades importantes cerca de la ruta principal. Por ejemplo, para una ruta entre Santa Cruz CA, y Hayward CA, se añaden las etiquetas para Cupertino, San José, Milpitas, y Fremont al mapa de ruta como información de contexto. Las ciudades se eligen en base a su proximidad a la ruta, su población, y su área. Los nombres de las ciudades ayudan al navegador en el entendimiento de la posición geográfica global y la orientación de la ruta.
Una vez que se ha seleccionado la información de contexto, debería colocarse en el mapa de ruta. El contexto puede colocarse por el módulo de anotación 690 en cualquier momento después de que se han establecido las carreteras sobre la ruta principal por el módulo de disposición de carreteras 686 (FIG. 1). La disposición de contexto generalmente se realiza justo después de la ejecución del módulo de disposición de etiquetas 688. Si el contexto se coloca antes de la disposición de etiquetas, el algoritmo de puntuación de la disposición de etiquetas usado por el módulo de disposición de etiquetas 688 se modifica para comprobar las intersecciones entre contexto y etiquetas. En una realización, la selección de información de contexto a representar sobre el mapa no está garantizada que estará realmente colocada y representada. Si el algoritmo de disposición de contexto usado por el módulo de anotación 690 no puede encontrar una mejor colocación para la información de contexto, el algoritmo puede elegir no incluir esta información de contexto.
En una realización de la presente invención, el enfoque usado por el módulo de anotación 690 para colocar las calles de cruce es muy similar al enfoque usado para la colocación de las características del punto en el mapa de ruta. El algoritmo para colocar las calles de cruce se describirá con detalle en primer lugar. A continuación, se describirán brevemente las diferencias en el algoritmo usado en una realización del módulo de anotación 690 para colocar las características del punto.
Colocaci6n de las calles de cruce. La FIG, 23 muestra un mapa de ruta escalado con varias calles de cruce situadas a lo largo de la ruta. Una calle de cruce se especifica por (i) el punto de intersección de la calle con la ruta principal,
(ii) el nombre de la calle de cruce, (iii) los puntos de la forma que definen la forma de la calle y opcionalmente, (iv) la importancia de la calle de cruce. El valor de la importancia para cada una de las calles de cruce bien puede suministrarse o puede calcularse como la primera etapa en la colocación de las calles de cruce. En una realización, los nombres de las calles de cruce y su importancia relativa se obtiene a partir de la base de datos de contexto 696 (FIG. 1). En otra realización, se usan normas predefinidas para calcular la importancia relativa de una calle de cruce particular. La última calle de cruce importante antes de un punto de giro sobre la ruta principal se considera relativamente importante porque tales calles de cruce son útiles como una señal de advertencia de que se está aproximando el giro. De este modo a estas calles de cruce se les da la importancia relativa más alta. En esta realización, a la carretera de cruce inmediatamente después del punto de giro se le da la siguiente importancia más alta porque tales calles ayudan a los navegadores a comprobar si han perdido el giro apropiado. Las calles de cruces son especialmente útiles cerca del destino de la ruta, donde presumiblemente el navegador es menos familiar con el territorio. Por lo tanto a estas calles de cruce se les da una importancia más alta que a las calles de cruce cerca del comienzo de la ruta.
En la presente invención, se proporcionan dos enfoques basados en la búsqueda para establecer las calles de cruce. El primer enfoque considera cada una de las calles de cruce, una cada vez, en orden de importancia. Si la importancia es igual, la calle de cruce se selecciona aleatoriamente a partir de las calles de cruce igualmente importantes. A continuación, se realiza una búsqueda de una &quot;buena&quot; colocación para la carretera. Si se encuentra una buena colocación, se dibuja la carretera de cruce en la fase de representación del procedimiento. Si no se encuentra una buena colocación, la calle de cruce no se dibuja durante la fase de representación y por lo tanto no se incluye en el mapa.
El segundo enfoque para establecer las calles de cruce busca una buena colocación de todas las calles de cruce simultáneamente. Todas las calles de cruce se colocan en el mapa. Cada una de las carreteras de cruce también puede ser &quot;oculta&quot; en lugar de colocarse. Entones se optimizan las colocaciones.
El primer enfoque para establecer las calles de cruce es más rápido que el segundo enfoque pero puede no encontrar una colocación óptima para todas las calles de cruce. El segundo enfoque para seleccionar las calles de cruce puede tardar más que el primer enfoque pero está menos restringido y por lo tanto puede producir una mejor colocación global.
Independientemente de si se toma el primer enfoque o el segundo enfoque por el módulo de anotación 690 para establecer las calles de cruce, se realiza un enfoque basado en la búsqueda para optimizar la colocación de las calles de cruce. Esto requiere dos funciones básicas: perturbación y puntuación. La función de perturbación se usa para cambiar la disposición de una calle de cruce particular mientras que la función de puntuación evalúa la colocación actual de las calles de cruce. La función de puntuación se usa en el enfoque basado en la búsqueda para determinar si la perturbación mejoró la disposición del mapa. Tal determinación se hace de acuerdo con un algoritmo de búsqueda. Los algoritmos de búsqueda representativos que pueden usarse incluyen los algoritmos codiciosos, el descenso de gradiente, el recocido simulado, búsquedas Tabu, y A* como se examinó por Zbigniew y otros en Cómo Resolverlo: Heurísticas modernas, Springer-Verlag, Berlín, Alemania, 2000, búsquedas codiciosas A* / IDA*, recocido simulado y escalamiento de colina (descenso de gradiente) como se examinó por Russell y otros en Inteligencia Artificial: Un Enfoque moderno, Prentice Hall, 1995, y algoritmos genéticos como se examinó por Golderg en Algoritmos Genéticos en la Búsqueda, Optimización y Aprendizaje de Máquinas, Addison – Wesley, 1989.
En una realización, la función de perturbar se diseña como sigue:
Perturbar ()
seleccionar aleatoriamente una de las siguientes variables y cambiarla:
-
la posición de la intersección de una calle de cruce con la trayectoria principal;
-
la posición de la etiqueta de la calle de cruce; o
-
si se incluye la calle de cruce en el mapa o si está &quot;oculta&quot;
Cuando Perturbar () cambia la posición de la etiqueta de la calle de cruce, la perturbación está sujeta a la restricción de que la etiqueta de la calle caiga dentro de un área predeterminada que incluye la intersección de la calle de cruce. En una realización de la presente invención, la forma del área predeterminada es un cuadrado y el cuadrado está centrado sobre la intersección de la calle de cruce. Por consiguiente, la posición de la etiqueta de la calle de cruce que está asociada con la calle de cruce puede perturbarse por una cantidad siempre que la etiqueta de la calle de cruce permanezca en el cuadrado. Una vez que se han elegido la posición de la intersección de la calle de cruce con la trayectoria principal y la etiqueta de la calle de cruce, la calle de cruce se extiende para pasar por debajo o por encima de su etiqueta y pasar ligeramente más allá de la intersección con la ruta principal.
En una realización, la función de puntuación que se usa para evaluar las perturbaciones se designa como sigue:
Puntuación ()
la colocación de cada una de las calles de cruce se puntúa en base a varios criterios como sigue:
-
la distancia entre el punto de intersección actual de la calle de cruce y la trayectoria principal y el punto de intersección verdadero entre la calle de cruce y la trayectoria principal;
-
el número de otros objetos en el mapa que solapan la calle de cruce, ponderado por la cantidad de solapamiento;
-
el número de otros objetos en el mapa de ruta que solapan la etiqueta de la calle de cruce, ponderado por la cantidad de solapamiento;
-
la posición de una etiqueta de la calle de cruce junto la calle de cruce, usando la misma puntuación basada en la restricción como en una disposición de etiquetas normal;
-
la cantidad de desorden / densidad visual alrededor de la calle de cruce; y
-
si la calle de cruce está oculta; ocultar la calle de cruce se penaliza por una cantidad proporcional a su importancia de modo que fomenta la búsqueda para colocar las calles de cruce más que simplemente ocultar todas ellas.
El aspecto más complicado del criterio de puntuación es la notación de la densidad o desorden visual. La presente invención abarca varios procedimientos diferentes para calcular la densidad visual para una región fija de enfoque centrada en la calle/etiqueta de cruce. Para apreciar estos procedimientos, se hace referencia a la FIG. 24 que muestra una porción del mapa de ruta 2402 que incluye un área de enfoque 2404 con una calle de cruce para la cual se busca una medida del desorden visual. Usando la FIG. 24 como referencia, las métricas representativas pueden incluir:
(1)
Convolucionar una imagen basada en pixel del mapa de ruta con un Kernel Gaussiano en la región de enfoque 2404 usando el valor de la luminancia de cada uno de los pixel dentro de la región de enfoque.
(2)
Calcular el área de cada uno de los objetos en la región de enfoque 2404 multiplicada por la luminancia promedio para el objeto. La caja 2406 dibujada en la FIG. 24 ilustra el área de un objeto en la región de enfoque 2404. El resultado de la multiplicación del área objetivo y la luminancia promedio se divide por la distancia desde el centro de la calle de cruce al centro del objeto. La densidad visual se fija a la suma sobre todos los objetos en la región de enfoque. Una ecuación que describe esta métrica es:
La métrica 1 es cara desde el punto de vista de cálculo. La métrica (2) es más rápida, pero una aproximación menos precisa de la densidad visual. Cuando se establece una calle de cruce cada vez, se efectúan alteraciones entre perturbación y puntuación hasta que la puntuación alcanza algún umbral aceptable, y se mantiene la colocación, o la cuenta de iteraciones alcanza un máximo. Si la puntuación nunca pasa por debajo del umbral, la calle de cruce no se incluye en el mapa de ruta. Cuando se establecen todas las calles de cruce al tiempo, pueden usarse una diversidad de algoritmos basados en la búsqueda para minimizar la puntuación global. En tales realizaciones, la puntuación global se calcula como la suma de puntuaciones para cada una de las calles de cruce. Los algoritmos representativos basados en la búsqueda que pueden usarse incluyen los algoritmos codiciosos, el descenso de gradiente, el recocido simulado, la búsqueda Tabu, y A* como se examinó por Zbigniew y otros en Cómo Resolverlo: Heurísticas modernas, Springer-Verlag, Berlín, Alemania, 2000, búsquedas codiciosas A* / IDA*, recocido simulado y escalamiento de colina (descenso de gradiente) como se examinó por Russell y otros en Inteligencia Artificial: Un Enfoque moderno, Prentice Hall, 1995, y algoritmos genéticos como se examinó por Golderg en Algoritmos Genéticos en la Búsqueda, Optimización y Aprendizaje de Máquinas, Addison – Wesley, 1989.
Colocaci6n de las caracferisficas de punto. La FIG. 25 muestra un mapa de ruta con varias características de punto, tales como número de salida, localizaciones de restaurantes y nombres de ciudades incluidos. Una característica de punto se especifica por:
-
Una localización ideal (latitud, longitud) para la característica del punto y cualquier región de restricción circular o lineal especificando las posiciones aceptables para la característica del punto. En el caso de un nombre de ciudad, la característica se permitiría apareciese en cualquier parte dentro de un círculo inscrito en los límites de la ciudad. Esta región debe deformarse dentro de un sistema de coordenadas no uniforme del mapa;
-
el nombre de la característica, o una imagen, para mostrar la localización de la característica; y
-
opcionalmente, la importancia de la característica.
Justo como en el caso de calles de cruce, la importancia de una característica de punto puede proporcionarse o puede calcularse durante la disposición. En una realización, a todas las señales de salida de autopista se les da la misma importancia salvo que sus valores de importancia se proporcionen a priori. Para nombres de ciudades, la importancia se calcula multiplicando la proximidad de la región de la ciudad a la ruta, la población de la ciudad y el área de la ciudad. De este modo en esta realización, las ciudades grandes, con altas poblaciones, cerca de la ruta se consideran más importantes. A los edificios y negocios se les da una importancia más alta cuando están en intersecciones en oposición a los que están junto a las carreteras en el mapa de ruta. Además, de acuerdo con esta realización, se asigna una importancia más alta a los negocios que están en carreteras más pequeñas cerca del comienzo o del final de la ruta que a los que están sobre carretera más largas tales como autopistas y autovías.
Como con las calles de cruce, las características de punto pueden colocarse una cada vez, o todas al tiempo. La localización ideal y su región de restricción alrededor están bien definidas en el sistema de coordenadas original del mapa escalado constante. Para colocar las características de punto en primer lugar debemos deformar el punto ideal y la región de restricción dentro del sistema de coordenadas no uniforme del mapa de ruta escalado. Como el sistema de coordenadas es no uniforme, se usa un procedimiento de optimización basado en la restricción para realizar la deformación. Se han desarrollado una diversidad de técnicas de deformación basadas en la deformación y se conocen como técnicas de transformación. Véase, por ejemplo, &quot;Metamorfosis de Imágenes Basadas en Características&quot; de Beier y Neely, Proc. SIGGRAPH 92, 35-42 (1992). Además, para una visión general de las técnicas de deformación véase &quot;Deformación y Transformación de Objetos Gráficos&quot; de Gomes y otros, Morgan Kaufmann (1998). Cualquiera de los procedimientos descritos en estas referencias puede usarse para deformar el punto ideal y la región de restricción en un sistema de coordenadas no uniforme del mapa de ruta escalado.
Las principales diferencias en la disposición basada en búsqueda entre calles de cruce y características de punto están en las funciones de perturbación y de puntuación, que se describen a continuación. Cuando se refinan las características de punto las funciones de perturbación y de puntuación tienen el formato:
Perturbación ()
Seleccionar aleatoriamente una de las siguientes variables y cambiarla
-
la posición de la característica de punto dentro de la región de posiciones aceptables.
-
si la característica de punto está incluida o no en el mapa.
Puntuación ()
La colocación de cada una de las características de punto se puntúa sobre el criterio:
-
el número de los otros objetos en el mapa que se solapan con la característica de punto, ponderado por la cantidad de solapamiento;
-
la distancia entre la localización actual de la característica de punto y su localización ideal;
-
si la característica de punto está oculta – de nuevo la penalización es proporcional a la importancia de la característica de punto; y
-
cantidad de desorden/densidad visual.
Técnicas de puesta en vertical
En algunas realizaciones de la presente invención, la memoria 668 del ordenador servidor 624 incluye un módulo de puesta en vertical del mapa 698 (FIG. 6). El módulo de puesta en vertical 698 se usa para optimizar la orientación del mapa de ruta escalado con respecto a las dimensiones de una región de visión dada. La optimización de la orientación del mapa es particularmente ventajosa en casos en donde es pequeño el tamaño de la región de visión usada para representar el mapa de ruta. En tales situaciones, típicamente sólo se representa una porción del mapa de ruta escalado. Cuando se representa sólo una porción del mapa de ruta escalado, el usuario se provee con la opción de desplazar el mapa de ruta escalado para ver toda la ruta. Para evitar confusión, es ventajoso orientar el mapa de ruta escalado de modo que el eje longitudinal del mapa de ruta escalado coincida con la dirección de desplazamiento. En una realización la dirección de desplazamiento es vertical y el mapa de ruta escalado se orienta por el módulo de puesta en vertical del mapa de modo que el eje longitudinal del mapa de ruta escalado es vertical. El alineamiento del eje longitudinal del mapa de ruta escalado con la dirección de desplazamiento maximiza la cantidad de información que se representa en una región de visión miniatura y proporciona un mecanismo conveniente para el suministro consistente de disposiciones de mapas. El usuario puede revisar todo el mapa escalado girado usando la opción de desplazamiento.
La puesta en vertical del mapa es particularmente ventajosa en dispositivos de mano tales como los asistentes digitales personales (&quot;PDA&quot;). Dadas las dimensiones del puerto de visión de un PDA típico, es deseable ofrecer mapas de ruta escalados que tienen las dimensiones constantes por Y, donde Y varía de acuerdo con el número de etapas o la distancia de la ruta dentro del mapa de ruta. De este modo, si la ruta es bastante corta, todo el mapa de ruta escalado se representa en la región de visión del PDA. Sin embargo, si la ruta incluye varias etapas y tiene un eje longitudinal bastante largo, el eje longitudinal se orienta de modo que está alineado con la barra de desplazamiento. De este modo, el usuario obtiene una disposición consistente con el desplazamiento sólo vertical.
Ahora que se ha tratado una visión general de las ventajas de la orientación del mapa, se describe un procedimiento para calcular la orientación del mapa. En primer lugar se calcula la posición de cada una de las intersecciones a lo largo de la trayectoria principal en el mapa de ruta escalado. Estos puntos de intersección se fijan a continuación con una distribución de probabilidad. La distribución de probabilidad podría ser por ejemplo, una distribución binomial, una distribución de Poisson, una distribución Gaussiana, o cualquier otra distribución de probabilidad adecuada. Cuando se usa una distribución Gaussiana, el centro de la distribución es la media de los puntos de intersección, los ejes de la distribución son los autovectores de la matriz de covarianzas, y las extensiones de la distribución son los autovalores de la matriz de covarianzas. La distribución de probabilidad define los ejes y las extensiones a lo largo de esos ejes para la ruta. Como se ilustra en la FIG. 11A, a partir de estos ejes, se determina la caja delimitadora más estrecha 1100 que contiene la ruta completa. A partir de la caja delimitadora 1100, se calcula el eje más largo (dominante) de la ruta. La dirección del eje más largo se usa para determinar la cantidad en la cual se gira el mapa de ruta escalado de modo que corre en una dirección predeterminada. En la FIG. 11, el comienzo de la ruta se marca por un círculo rayado y el final de la ruta se marca por un círculo abierto. Como el punto de comienzo de la ruta es conocido, es posible realizar la rotación del mapa de modo que la localización de comienzo está siempre en la parte inferior (FIG. 11B) o siempre en la parte superior (FIG. 11C) de la región de visión. De este modo, el procedimiento de puesta en vertical se usa para asegurar que el espacio limitado de la región de visión está utilizado totalmente y para asegurar que la localización de comienzo de cada uno de los mapas representado descansa consistentemente en la misma región de la región de visión.
Se apreciará que si la proporción de aspecto de la distribución de probabilidad usada para determinar los ejes del mapa de ruta escalado indica que el mapa es a groso modo cuadrado, la puesta en vertical no se realiza. En una realización, la distribución de probabilidad usada es una distribución Gaussiana y la puesta en vertical no se realiza cuando la proporción de aspecto del mapa de ruta escalado es menor o igual a 1,98.
El código de muestra usado para calcular el eje longitudinal en un mapa de ruta escalado y girar el mapa de ruta escalado se proporciona a continuación.
(801) buleano Mapa : Poner en vertical ()
(802) {
(803) Vector2 OrientaciónMapa [2];
(804) doble extensión [2];
(805) FijarPuntosGauss (numPtsInterseccción, PtsIntersección, centro, ejes, extensiones);
(806) // Poner en vertical el mapa sólo si la proporción de aspecto en ejes coordenadas > 1,98
(807) // Calcular la ProporciónAspecto como extensión [1] / extensión [0] como debería ser
(808) // ya que la segunda extensión se clasifica para ser el eje longitudinal.
(809) doble ProporciónAspecto = extensión [1] / extensión [0]
(810) si (ProporciónAspecto � 1,98 {
(811) // Asumir que los vectores de Orientación mapa son de longitud unidad. Los vectores de
(812) // orientación se clasifican en orden creciente, de modo que se usa el segundo para
(813) // calcular el ángulo de rotación
(814) doble ángulo = atan2 (OrientaciónMapa [1].v, OrientaciónMapa [1].u);
(815) Girar (- angulo);
(816) devolver cierto;
(817) }
(818) devolver falso;
(819) }
(820) nulo FijarPuntosGauss (entero NumPuntos, const Vector2* punto,
(821) Vector2 &amp; Centro, Vector2 Eja [2], doble Extensión [2]
(822) {
(823) // Calcular media de puntos
(824) para (int i = 1; i < NumPuntos; i++)
(825) Centro += Punto [i]
(826) Centro / = NumPuntos
(827) // Calcular covarianzas de puntos
(828) doble SumXX = 0,0, SumXY = 0,0, SumYY = 0,0
(829) para (i = 0; i < NumPuntos; i+++)
(830) {
(831) Vector2 Diff = Punto [i] – Centro;
(832) SumXX + = Dif.u * Dif.u:
(833) SumXY + = Dif.u * Dif.v;
(834) SumYY + = Dif.v * Dif.v;
(835) }
(836) SumXX / = NumPuntos;
(837) SumXY / = NumPuntos;
(838) SumYY / = NumPuntos;
(839) // resolver autosistema de la matriz de covarianzas
(840) Autofunción E(2);
(841) E (0, 0) = fSumXX;
(842) E(0, 1) = fSumXY;
(843) E(1, 0) = fSumXY;
(844) E(1, 1) = fSumYY;
(continuación)
(845) E.ResolverAutoSistema ();
(846) Eje [0].u = E.ObtenerAutovector (0,0);
(847) Eje [0].v = E. ObtenerAutovector (1,0);
(848) Eje [1].u = E. ObtenerAutovector (0,1);
(849) Eje [1].v = E. ObtenerAutovector (1,1);
(850) Extensión[0] = E.ObtenerAutovalor (0);
(851) Extensión[1] = E.ObtenerAutovalor (1);
(852) }
En la línea 805 del código de muestra, se hace una llamada al procedimiento FijarPuntosGauss. Se codifica el procedimiento FijarPuntosGauss por las líneas de 820 a 852 del código de muestra. Sobre las líneas de 823 a 826 del código de muestra, el procedimiento FijarPuntosGauss calcula la media de todas las intersecciones en el mapa de ruta escalado. Sobre las líneas de 827 a 838 del código de muestra, el procedimiento FijarPuntosGauss calcula las covarianzas de las intersecciones. Sobre las líneas de 839 a 851 del código de muestra, el procedimiento FijarPuntosGauss resuelve el autosistema de la matriz de covarianzas. Esta información se usa en el cuerpo principal del código de muestra. Más específicamente, en la línea 809 del código de muestra, se calcula una proporción de aspecto. Como se define en el presente documento, la proporción de aspecto es la proporción de las longitudes de los dos ejes correspondientes al mapa de ruta escalado, como se determina por el procedimiento FijarPuntosGauss. En la realización descrita por el código ilustrativo, el mapa de ruta escalado no se reorienta si la proporción de aspecto es menor de 1,98. Si la proporción de aspecto es mayor de 1,98, entonces al mapa de ruta escalado se gira de modo que el más largo de los dos ejes calculado por el procedimiento FijarPuntosGauss descansa en una dirección predeterminada tal como la vertical. Esta rotación se realiza por las líneas 814 y 815 del código de muestra.
Aunque el ejemplo anterior describe la puesta en vertical de un mapa de ruta escalado, se apreciará que la técnica de puesta en vertical no está limitada a los mapas de ruta escalados. En realidad, cualquier imagen que tiene una colección de puntos que pueden fijarse por una distribución de probabilidad puede optimizarse para representar sobre una región de visión usando las técnicas de puesta en vertical.
Encontrando espacio vacío
Como se ha tratado anteriormente, el módulo de anotación 690 (FIG. 6) se usa para colocar marcas sobre el terreno y otras anotaciones sobre el mapa de ruta escalado para ayudar a guiar al usuario. Sin embargo, las regiones de identificación del mapa que son adecuadas para la colocación de tales anotaciones presentan un problema especial. Simplemente establecido, el problema es la necesidad de usar procedimientos eficaces para identificar regiones adecuadas del mapa para la colocación de las anotaciones. Regiones adecuadas son regiones del mapa que no están sobrepobladas con otros objetos. En la FIG. 12, se añade la anotación de la flecha del Norte 1202 al mapa de ruta para indicar la dirección. En una realización de la presente invención, la colocación de la anotación de la flecha del Norte 1202 se restringe al cuadrante superior izquierdo del mapa para presentar una apariencia consistente entre mapas. De este modo, el problema formulado por la FIG 12 es la identificación de regiones en la esquina superior izquierda del mapa de ruta que es adecuado para la colocación de la anotación de la flecha del Norte 1202.
La FIG.13 detalla las etapas de procesamiento usadas para identificar de modo eficaz espacios libres en un mapa de ruta de acuerdo con una realización de la presente invención. Este espacio libre se usa para colocar anotaciones y etiquetas en el mapa de ruta. En la etapa de procesamiento 1302, el mapa se parte en una cuadrícula. Típicamente, la cuadrícula usada en la etapa de procesamiento 1302 es uniforme, de modo que cada una de las celdas de la cuadrícula es del mismo tamaño. Se rastrea el número de objetos en el mapa de ruta que tocan cada una de las celdas de cuadrícula producidas en la etapa de procesamiento 1302. De este modo, es posible determinar áreas discretas del mapa de ruta que tienen relativamente pocos objetos. En la etapa de procesamiento 1304, se identifican las celdas candidatas de la cuadrícula dentro de las cuales puede colocarse la anotación objetivo. En algunas realizaciones, la región en la cual se buscan las celdas candidatas de la cuadrícula se restringe a una región específica del mapa de ruta. En un ejemplo, se asigna una región delimitadora a cada una de las etiquetas de ciudad en la cual puede colocarse la etiqueta. Esta región delimitadora está cerca de la ciudad real en el mapa de ruta.
Cuando la anotación o etiqueta es más grande que una simple celda de cuadrícula, la etapa de procesamiento 1306 se usa para buscar celdas de cuadrícula con suficientes celdas de cuadrícula adyacentes vacantes para contener el objeto. Si no se encuentra ningún candidato después de la búsqueda 1306 (1308 – No), se inicia un esquema de subdivisión de la cuadrícula (1310). Tal subdivisión es necesaria para buscar a través del mapa con una mayor resolución para identificar un conjunto de celdas de cuadrícula adyacentes que puedan usarse para la anotación o etiqueta.
La etapa de procesamiento 1310 se implementa usando uno cualquiera de varios esquemas diferentes de subdivisión de cuadrícula posibles. Por ejemplo, varios esquemas que se han usado para la partición del espacio tridimensional en disciplinas tales como el seguimiento de rayos pueden adoptarse para su uso en el espacio del mapa de rutas de dos dimensiones. Tales esquemas se encuentran en Una Introducción al Seguimiento de Rayos, Ed. Andrew S. Glassner, Prensa Académica, Harcourt Brace Jovanovich, Editores, Nueva York (1989), En una realización, el esquema de subdivisión de cuadrícula usado en la etapa de procesamiento 1310 es una forma de separación espacial uniforme tal como la tratada en la Sección 5.2 de Una Introducción al Seguimiento de Rayos id. Por ejemplo, en un esquema de cuadrícula de separación espacial uniforme, cada una de las celdas de cuadrícula original se divide en cuatro celdas. En otra realización, el esquema de subdivisión de cuadrícula usado en la etapa de procesamiento 1312 es una subdivisión espacial no uniforme tal como el tratado en la Sección 5.1 de Una Introducción al Seguimiento de Rayos id. Las técnicas de subdivisión espacial no uniforme son aquellas que dividen el espacio en regiones discretas de tamaño variable como una función de la densidad de objetos presente en el espacio. De este modo, en un enfoque de subdivisión espacial no uniforme, las porciones del mapa de ruta que están más densamente ocupadas por objetos tales como carreteras, etiquetas y anotaciones, se subdividen en celdas de cuadrícula más pequeñas que en las porciones del mapa de ruta que están escasamente pobladas.
Después de que el mapa de ruta se haya sujeto a un esquema de subdivisión de cuadrícula en la etapa de procesamiento 1310, el procedimiento continúa con la vuelta del bucle a la etapa de procesamiento 1304. Cuando se ejecuta de nuevo la etapa de procesamiento 1304, se conduce una búsqueda de celdas candidatas de la cuadrícula dentro de las cuales puede colocarse la etiqueta o anotación usando la subdivisión de cuadrícula generada en la etapa de procesamiento 1310. Además; cuando la anotación o etiqueta es demasiado grande para que quepa dentro de una única celda de cuadrícula, se identifica una búsqueda de celdas de cuadrícula adyacentes que pueden acomodar de forma colectiva la etiqueta o anotación. Las etapas de procesamiento 1304, 1306, 1308 y 1310 se repiten hasta que se encuentra una posición candidata en el mapa de ruta (1308 – Si). En algunas realizaciones, las etapas de procesamiento 1304, 1306, 1308 y 1310 sólo se repiten un número de veces predeterminado. Si, después de que se han repetido las etapas de procesamiento 1304, 1306, 1308 y 1310 un número de veces predeterminado, no se ha identificado aún una posición candidata, la anotación se rechaza y no se coloca sobre el mapa de ruta. En algunas realizaciones, cuando se ha restringido geométricamente una etiqueta o anotación a una región particular del mapa de ruta y no se ha encontrado ninguna posición candidata en el mapa de ruta se repite la etapa 1304 y/o 1306 usando restricciones menos estrictas. Por ejemplo, cuando se restringe una etiqueta de ciudad a que esté dentro de una región fija del centro geométrico de la ciudad en el mapa de ruta y no se identifica ninguna posición candidata en la región fijada durante un primer paso a través de las etapas de procesamiento 1304, 1306, 1308 y 1310, se repite la etapa de procesamiento 1304 y/o 1306 usando una región fija mayor centrada sobre la posición de la ciudad en el mapa de ruta.
Cuando la etapa de procesamiento 1304 o 1306 identifica múltiples posiciones candidatas en las cuales colocar la etiqueta o anotación objetivo (1312 – Si), las candidatas se evalúan por un mecanismo de evaluación que considera la densidad de objetos en las celdas de cuadrícula que son vecinas de la posición candidata. En algunas realizaciones, se selecciona la posición candidata que tiene celdas de cuadrícula vecinas con la ocupación más baja. En otras realizaciones, se consideran otros factores además de la ocupación de las celdas vecinas. Por ejemplo, en algunas realizaciones, la evaluación de candidatos es una función tanto de la ocupación de las celdas vecinas como también de la distancia absoluta entre la posición candidata y algún punto de referencia. En tales realizaciones, las posiciones candidatas que están más cerca de un punto de referencia se ponderan al alza con respecto a las posiciones candidatas que están más lejos de un punto de referencia. Tales realizaciones de evaluación son útiles para etiquetas de ciudades, etiquetas de carreteras y para la colocación de marcas geográficas sobre el terreno. Cuando se ha seleccionado una única posición candidata por la etapa de procesamiento 1314, o se ha encontrado una única posición candidata por la etapa de procesamiento 1306 (1316), la anotación o etiqueta se coloca en la posición candidata y el procedimiento termina (1318).
La FIG. 14 ilustra cómo se usa la subdivisión espacial de un mapa de ruta para identificar las celdas de la cuadrícula adecuadas para la colocación de la anotación de la flecha del Norte 1202. En la FIG. 14, el mapa de ruta se divide en una cuadrícula de acuerdo con la etapa de procesamiento 1302 (FIG. 13). Una celda candidata de la cuadrícula dentro de la cual puede colocarse la anotación se identifica en la etapa de procesamiento 1304. En este ejemplo, la etapa 1304 está restringida a la esquina superior izquierda para colocar de forma consistente la anotación de la flecha del Norte 1202 en esta región del mapa. Debido a que la etapa 1304 identificó satisfactoriamente una celda candidata de la cuadrícula usando la partición inicial calculada en la etapa de procesamiento 1302, no hay necesidad de iniciar un esquema de subdivisión de la cuadrícula 1310 y repetir las etapas de procesamiento 1304, 1306 y 1308. En cambio, la anotación de la flecha del Norte 1202 se coloca en una celda de cuadrícula vacía que está bordeada por celdas de la cuadrícula que tienen la menor ocupación posible de acuerdo con la etapa de procesamiento 1314.
La FIG. 15 ilustra una situación que se presenta cuando la etapa de procesamiento 1304 y/o 1306 (FIG. 13) intenta identificar una celda de cuadrícula o conjunto de celdas de cuadrícula contiguas en un área restringida y no se identifica ninguna celda candidata de la cuadrícula. En la FIG. 15, la etiqueta &quot;Somewhere, USA&quot; 1502 se restringe al área identificada por el óvalo 1504. Sin embargo, la cuadrícula inicial generada por la etapa de procesamiento 1302 (FIG. 13) ha fallado en la producción de una celda candidata adecuada de la cuadrícula (1308 – No). Por lo tanto, se ejecuta el esquema de subdivisión de la cuadrícula 1310. La FIG. 16 representa el mapa de ruta después de usarse una separación espacial uniforme para subdividir sólo las celdas de cuadrícula en el área restringida del mapa de ruta. En esta subdivisión, cada una de las celdas de la cuadrícula original en el área restringida está subdividida en cuatro nuevas celdas de cuadrícula. A continuación, las etapas de procesamiento 1304 y 1306 se repiten usando el nuevo esquema de cuadrícula. Como la etiqueta &quot; Somewhere, USA&quot; 1502 es demasiado larga para fijarla en las nuevas celdas de cuadrícula, la etapa de procesamiento 1304 fallará. Sin embargo, cuando se ejecuta la etapa de procesamiento 1306, se identifica una posición candidata que está compuesta de dos celdas adyacentes de la cuadrícula y la etiqueta se coloca en la posición candidata identificada (1308 – Si, 1312 No, 1316, 1318). La FIG. 16 muestra la colocación de la etiqueta &quot; Somewhere, USA&quot; 1502 después de la ejecución de la etapa de procesamiento 1318.
En algunas realizaciones de la presente invención, el esquema de subdivisión espacial usado en la etapa de procesamiento 1310 se facilita por el uso de una estructura de datos jerárquica conocida como la región Quadtree. Véase por ejemplo, las Aplicaciones de Estructuras de Datos Espaciales, de Hannan Samet, Compañía Editora Addison-Welsley, Nueva York (1990), páginas 2-8. Una región Quadtree es una estructura de datos jerárquica que está basada en la subdivisión sucesiva de una disposición de imagen limitada dentro de cuatro cuadrantes de la misma dimensión. En la aplicación clásica de una región Quadtrre, si una disposición determinada no consiste por entero de unos o por entero de ceros, se subdivide en cuadrantes, sub-cuadrantes, y así sucesivamente, hasta que se obtienen bloques que consisten por entero de unos o por entero de ceros. De este modo, la imagen se subdivide usando una estructura de datos de resolución variable. La región Quadtree se usa en algunas realizaciones de la presente invención en el esquema de subdivisión de la cuadrícula 1310. En tales realizaciones, el esquema de subdivisión de la cuadrícula sólo subdivide las celdas de la cuadrícula seleccionadas en la cuadrícula inicial. Típicamente, las celdas de la cuadrícula que se seleccionan por la subdivisión se eligen a partir del área restringida.
Trip Tiks e inserciones
En algunos casos, cuando se escala un mapa de manera no uniforme, es difícil hacer todas las carreteras visibles dentro de una región de visión determinada. Debido a esta dificultad, algunas realizaciones de la presente invención incluyen un módulo de división de mapas 699 (FIG, 6). El módulo de división de mapas 699 hace uso de inserciones y/o Trip Tiks cuando es difícil hacer visibles todas las carreteras dentro de una región de visión determinada. El módulo de división de mapas 699 incluye algoritmos para determinar cuándo deberían usarse inserciones y TripTiks dentro de un mapa de ruta escalado. Cuando se hace una determinación de que debería hacerse una inserción, el módulo de división de mapas decide qué porción del mapa debería recuadrarse, y dónde debería colocarse la inserción dentro del mapa de ruta escalado principal.
TripTiks. Cuando una ruta contiene un gran número de carreteras y segmentos, puede que no sea posible escalar todas las carreteras de modo que sean suficientemente grandes para ser legibles aunque dentro del tamaño de imagen. En esta situación es deseable trocear el mapa de ruta escalado en varios mapas de segmento separados. En una realización de la presente invención, el módulo de división de mapas 699 usa el siguiente algoritmo para determinar si un mapa de ruta escalado debería dividirse en un conjunto de mapas de segmento:
-
generar un mapa intermedio que incluya cada una de las carreteras (elemento);
-
definir un número máximo de elementos (M) permisible en cualquier mapa determinado; y
-
cuando un mapa contiene S carreteras (elementos), donde S > M, a continuación dividir el mapa de forma uniforme en N mapas de segmentos de modo que N S/M.
Sin embargo, en algunos casos se consideran algunos temas adicionales. Uno de tales temas es el medio por el cual la ruta principal en el mapa de ruta se conecta a través de una pluralidad de mapas de segmento. Diversos procedimientos para la representación de tal información de conectividad en algunas realizaciones del módulo de división de mapas 699 incluyen:
-
el uso de un icono de punto de conexión especial en el punto del final de la última carretera sobre el primer mapa de segmento y el uso del mismo icono de conexión especial en el punto de comienzo de la primera carretera sobre el mapa de segmento posterior; y
-
compartir algunas carreteras entre cada uno de los pares de mapas de segmento sucesivos.
Además, la conectividad entre mapas de segmento sucesivos se asegura conservando la forma de la ruta principal y en particular la forma de cualesquiera carreteras compartidas a través de mapas de segmento sucesivos. Para asegurar que la forma de las carreteras compartidas a través de mapas de segmento sucesivos permanece exactamente igual en cada uno de los mapas de segmento, la simplificación de la forma se hace preferentemente para toda la ruta en el mapa intermedio como un conjunto, en oposición a los mapas en segmentos de forma separada.
Los problemas para los que el módulo de división de mapas está diseñado aliviar y los algoritmos usados en algunas realizaciones del módulo de división de mapas 699 se ilustran con referencia a las FIG. de 26 a 28. La FIG. 26 describe toda una ruta en una imagen única 2602. Aunque toda la ruta es visible, el mapa está muy desordenado y sería difícil de usar mientras que se conduce. Además, si la ruta tiene más carreteras (elementos) no sería posible etiquetar todas las carreteras sobre la ruta. La FIG. 27 divide la imagen 2602 (FIG. 26) en dos mapas de segmento separados 2702 y 2704 que, tomados juntos, comprenden el mapa de ruta de la FIG. 26. Las direcciones en los mapas de segmentos 2702 y 2704 son más legibles y comprensibles que las direcciones correspondientes en la imagen 2602.
Volviendo a la FIG. 28, se ilustra la importancia de conservar la forma de las carreteras compartidas a través de los mapas de segmentos sucesivos. En la FIG. 28A, se muestra un mapa intermedio 2802 que está a punto de dividirse en dos mapas de segmentos por el punto de ruptura 2804 entre el elemento &quot;CA-17&quot; y &quot;Autovía Cabrillo&quot;. En la FIG. 28B, el mapa intermedio 2802 se ha dividido en los mapas de segmento 2810 y 2820. Ambos mapas de segmento 2810 y 2820 tienen la forma total. En contraste, en la FIG. 28C el mapa intermedio 2802 se ha dividido en los mapas de segmento 2830 y 2840 que no retienen la forma original del mapa intermedio 2802. Esto es, en la FIG. 28C la forma de ruta se ha simplificado separadamente en los mapas de segmento 2830 y 2840, Como resultado, el elemento 2834 &quot;Autovía Cabrillo&quot; tiene forma diferente en los mapas de segmento 2830 y 2840. La FIG. 28C representa una representación indeseable de la ruta global correspondiente a los elementos en mapas de segmentos sucesivos, es decir &quot;Autovía Cabrillo&quot; tiene una forma diferente. Una situación más deseable se representa en la FIG. 28D. En la FIG. 28D se realiza la simplificación de la forma de ruta sobre el mapa intermedio 2802 para dividir el mapa intermedio en los mapas de segmento 2850 y 2860.
Algunas rutas, denominadas rutas multi-segmentos, contienen múltiples puntos de la trayectoria entre el punto de comienzo y el punto de final de la ruta principal. Las rutas de multi-segmento se manejan muchas como Trip Tiks en una realización de la presente invención. Por consiguiente, la ruta multi-segmento se divide en mapas de segmentos separados en cada uno de los puntos de la trayectoria: la primera imagen muestra la ruta desde el punto de comienzo al primer punto de la trayectoria, la segunda imagen muestra la ruta desde el primer punto de la trayectoria al segundo punto de la trayectoria, etc. Con las rutas multi-segmento, se usa el mismo convenio de repetición de un icono de conexión, en este caso un icono de punto de la trayectoria, y/o un conjunto de carreteras compartidas a través de los mapas sucesivos. Además, la simplificación preferentemente ocurre antes de dividir la ruta de modo que la forma de cada una de las carreteras y la forma global de la ruta no cambia en cada una de las imágenes.
Inserciones
En la fase de presentación de mapas se optimizan dos objetivos. El primer objetivo es asegurar que todas las carreteras en el mapa de ruta son suficientemente grandes para ser legibles. El segundo objetivo es mantener la forma global de la ruta, así como la posición de todos los puntos de intersección entre carreteras. A pesar de la flexibilidad en el escalamiento de carreteras proporcionada por la presente invención, es difícil alcanzar ambos objetivos para algunas carreteras en una imagen única. La FIG. 29 ilustra cómo a veces es difícil optimizar totalmente para ambos objetivos. En el mapa de ruta escalado 2902 representado en la FIG. 29, es fácilmente evidente que:
1) Algunas carreteras quedan muy pequeñas para mantener la forma global, o para mantener los puntos de intersección. La legibilidad se ha sacrificado a favor de la minimización de la forma y las distorsiones topológicas.
2) El escalamiento de muchas pequeñas carreteras causa que la forma global de la ruta se distorsione severamente. En este caso, se ha sacrificado la forma global para mantener la legibilidad.
3) El escalamiento de las carreteras cortas de modo que sean legibles causa una falsa intersección. En este caso, la topología global se ha sacrificado para mantener la legibilidad.
Una solución para tales rutas es encontrar el conjunto de carreteras que deben permanecer pequeñas para mantener la topología o puntos de intersección y mostrarlos en una imagen de inserción separada. Por ejemplo, en la FIG. 29, para mantener la intersección entre I-74 (2904) y E. Cabin Town Rd (2906) todas las carreteras entre las dos carreteras se mantienen muy cortas. Incluyendo la inserción 2908, sin embargo, es posible aumentar las etiquetas de las carreteras entre 2904 y 2906 y etiquetar también estas carreteras intermedias. Ejemplos adicionales de escenarios en los cuales las inserciones son beneficiosas se proporcionan con referencia las FIG. 30 y 31. En las FIG. 30 y 31, las carreteras cortas que causan distorsión o falsas intersecciones se colocan en un tamaño aumentado en inserciones circulares 3002 y 3102 respectivamente. Colocando las carreteras cortas en una inserción aumentada, las carreteras correspondientes pueden acortarse en el mapa de ruta escalado principal hasta el punto en el que la distorsión de la forma global de la ruta es aceptable o se evitan las falsas intersecciones. En una realización, la imagen de la inserción se crea corriendo el algoritmo de disposición de todo el mapa codificado por el módulo de disposición de carreteras 686 sólo sobre las carreteras en la inserción. Las carreteras que se muestran en la inserción y que son demasiado pequeñas para etiquetar en el mapa de ruta escalado principal se etiquetan sólo en la inserción. Además, en una realización, se coloca una única frontera alrededor de la región de inserción en el mapa de ruta principal y se coloca la misma frontera única alrededor de la correspondiente imagen de la inserción para ayudar al navegador a correlacionar las inserciones con el mapa de ruta principal. Además, la imagen de la inserción se coloca cerca de la característica del mapa principal que representa. En la FIG. 30, la ruta mostrada en el mapa 3004 es en realidad casi totalmente de Norte-Sur. Sin embargo el escalamiento de las carreteras pequeñas al final de la carretera ha hecho que la ruta parezca que es casi circular. Este es un ejemplo de distorsión severa de la forma que es posible sobre tales mapas de ruta después de que las carreteras individuales en la ruta se han escalado. Usando la inserción 3002, se mantienen las pequeñas carreteras en su tamaño original en el mapa principal 3006, conservando de este modo una orientación global adecuada de Norte-Sur. Simultáneamente, las pequeñas carreteras se han aumentado en la inserción 3002 para hacerlas legibles en la inserción. En la FIG. 31, la escala de las carreteras pequeñas tales como &quot;US-6&quot;, &quot;W.36ª Ave&quot;, y &quot;Wilkes Ave&quot; de modo que sean legibles ha introducido una falsa intersección entre &quot;Wilkes Ave&quot; y &quot;US-61&quot; en el mapa de ruta. Usando la inserción 3102 las tres carreteras pueden aumentarse para ser lo suficientemente grandes para ser visibles sin introducir la falsa inserción.
En una realización de la presente invención, hay tres etapas para crear una inserción. En primer lugar se hace una determinación sobre qué carreteras colocar en una inserción, si las hay, en segundo lugar se determina el tamaño de la imagen de las inserciones y finalmente, se identifica suficiente espacio para colocar la inserción en la imagen del mapa principal cerca de la característica de la inserción. Con esta visión general del procedimiento en esta realización, ahora se describirán las tres etapas con más detalle.
Selecci6n de las carreferas de la inserci6n. El procedimiento comienza intentando disponer todas las carreteras en un único mapa de ruta sin inserciones. Después de la disposición inicial se hace una búsqueda de conjuntos de carreteras que son muy cortas (en tamaños de pixel) así como bucles de intersecciones estrechos. Se hace una comprobación para determinar si hay una distorsión excesiva de la forma en la forma global de la ruta comprobando cuán bien se mantiene el vector de orientación entre los puntos de comienzo y de destino de la ruta global. Si no se mantiene bien, se realiza una búsqueda de conjuntos adyacentes de carreteras cortas, tales como en una milla de longitud de la ruta principal, que se aumentaron excesivamente y están en la dirección en la que se produce la distorsión. Tales conjuntos de carreteras cortas se colocan en una inserción y el mapa de la ruta principal se reescala de modo que se reducen las carreteras de aumento excesivo a una escala más precisa. Finalmente, se realiza una búsqueda de falsas intersecciones. Se colocan todas las carreteras en el bucle creado por la falsa intersección en el recuadro y las carreteras en el bucle se re-escalan en los mapas de ruta principal para eliminar la falsa intersección.
Tamafo de la imagen de la inserci6n. El tamaño de la inserción se elige en primer lugar estimando la proporción de aspecto para el conjunto de carreteras que aparecerán en la inserción usando el mismo procedimiento que se ha descrito para la elección de plantillas de disposición. Esto da una proporción de aspecto para la imagen de la inserción. A continuación se elige un factor de escala para la imagen de la inserción. El factor de escala puede fijarse a priori como un número fijo (es decir, 100 pixel) o puede calcularse dinámicamente como un factor de escala en base al número de carreteras que aparecen en la inserción (es decir, el factor de escala igual a treinta veces el número de carreteras en la inserción). A continuación el tamaño en pixel de la imagen de la inserción es simplemente el factor de escala multiplicado por la proporción de aspecto.
Colocaci6n de la inserci6n en el mapa de rufa escalado. Es deseable colocar la inserción en la imagen del mapa principal sin solapamiento de cualesquiera objetos en la imagen principal. De ese modo, la inserción debería colocarse cerca de la característica del mapa principal que representa de modo que el navegador entienda la relación entre la inserción y el mapa principal. Se realiza una búsqueda de espacios vacíos en la imagen del mapa principal usando las técnicas descritas para encontrar espacio vacío. La búsqueda comienza en la celda de la cuadrícula de la imagen principal que contiene las características mostradas en la inserción y espirales alrededor de la imagen a partir de esta celda hasta que se encuentra espacio libre suficientemente grande para mostrar la inserción.
- Forma de la carretera
En otro aspecto de la presente invención, se usan nuevos algoritmos para la simplificación de la forma de una ruta. La mayor parte de las carreteras pueden simplificarse inmediatamente a líneas rectas y esto es de hecho perceptualmente preferible. Sin embargo, algunas carreteras deben mantener alguna curvatura y la orientación y la disposición de las intersecciones entre dos carreteras debe mantenerse ajustada a la realidad. En algunas realizaciones de la presente invención, la simplificación de la forma de la carretera no se implementa. En cambio, cada una de las carreteras en la ruta (o trayectoria) se especifica como un único segmento lineal. En realizaciones en las que se aplica la simplificación de carreteras, el mapa de ruta se procesa por el módulo de simplificación de carreteras 697 antes de la ejecución del módulo de disposición de carreteras 686. En vez de tratar cada una de las carreteras como un único segmento lineal, el módulo de simplificación de carreteras 697 considera cada una de las carreteras como una curva de trozos lineales, es decir un conjunto de puntos de forma (lat, lon) conectados por segmentos lineales. El objetivo del módulo de simplificación de carreteras 697, entonces, es reducir el número de puntos de la forma en cada una de las carreteras simplificando por lo tanto las carreteras.
Hay dos razones principales para simplificar cada una de las carreteras en un mapa de carreteras. La primera y más importante razón es que las carreteras con formas más simples son perceptualmente más sencillas de interpretar como entidades separadas, y el mapa de ruta resultante tiene un aspecto despejado, más limpio. Véase la FIG. 32 para una comparación de la misma ruta sin (FIG. 32A) y con la simplificación de curvas. En segundo lugar, las carreteras más simples que contienen menos segmentos requieren menos memoria y son más rápidas de procesar por el módulo de disposición de carreteras en las etapas de disposición posteriores. Por ejemplo, para calcular la intersección de dos carreteras se requiere buscar una intersección entre cada uno de los pares de segmentos en cada una de las carreteras. Con menos segmentos por carretera esta operación se hace mucho más rápida.
Eliminaci6n de infersecciones falsasIperdidas. En una realización, antes de la simplificación de las carreteras, el módulo de simplificación de carreteras 697 calcula todos los puntos de intersección entre cada uno de los pares de carreteras. Consideremos la situación en la que las carreteras r1 y r2, se cortan en los puntos p1, p2 y p3 en la FIG.
34. El módulo de simplificación de carreteras 697 inserta cada uno de los puntos de intersección en el conjunto de puntos de forma para ambos r1 y r2, y marca estos puntos de intersección como retenidos, como se muestra en la FIG. 34. Más específicamente, la secuencia original de los puntos de forma para r1 es (s1, s2, s3, s4, s5, y s6). Se insertan tres nuevos puntos de intersección dentro de esta secuencia, uno para cada una de las intersecciones, dando como resultado la secuencia (s1, p1, s2, s3, p2, s4, s5, s6 y p3). De forma similar, estos puntos de intersección se insertan también dentro de la secuencia para r2. Como estos puntos de intersección ya no pueden eliminarse, el algoritmo de simplificación no puede causar la pérdida de intersecciones. Además, el módulo de simplificación de carreteras 697 mantiene una lista separada de todos los puntos de intersección reales entre carreteras. En etapas posteriores, el módulo del algoritmo de simplificación 697 sólo acepta la eliminación de uno o más puntos de la forma si la eliminación no crea un nuevo punto de intersección (es decir, un punto de intersección que no está en la lista de puntos de intersección original). De este modo, el módulo 697 asegura que la simplificación no genera ninguna falsa intersección.
En algunas realizaciones de la presente invención, se realiza la limpieza de datos después de que se han marcado como retenidos los puntos de intersección. La mayor parte de las carreteras representadas en un mapa de ruta se cortan con al menos otras dos carreteras: la carretera anterior en la ruta en el punto de comienzo de la carretera y la siguiente carretera en la ruta en el punto del final de la carretera. Estas intersecciones se llaman &quot;puntos de giro&quot; en vez de &quot;intersecciones&quot;. En un punto de giro, el navegador conmuta de seguir una carretera a seguir una carretera diferente. El término &quot;intersección&quot; se usa para referirnos a todas las otras intersecciones entre carreteras. En las intersecciones, la carretera que se está siguiendo no cambia. Es extremadamente raro para dos carreteras adyacentes a lo largo de la ruta unirse tanto en un punto de giro como también cortarse entre sí en una localización separada. Si lo hacen, el navegador habría girado sobre la segunda carretera en la primera intersección en vez del punto de giro (véase la FIG. 35). Sin embargo, algunas rampas de entrada y salida de las autopistas son excepciones a esta norma. Consideremos alguna carretera A que conecta a una rampa que pasa a continuación por debajo de la carretera A. Desde la perspectiva aérea de dos dimensiones del mapa de ruta, la rampa corta a la carretera A y a continuación continúa para conectar con la autopista. El módulo 697 fuerza tales rampas a ser como las otras carreteras moviendo todos los puntos de la forma entre el punto de giro y el punto de intersección en la carretera A dentro de la rampa. A continuación el módulo de disposición de carreteras 686 asume que las carreteras adyacentes nunca se cortan entre si y por lo tanto se elimina el costoso cálculo de intersección entre estas carreteras. También, cuando se escala una rampa circular por el módulo de disposición de carreteras 686, se escala todo el círculo como una unidad evitando de este modo preocupaciones acerca de la colocación adecuada de la intersección entre la rampa y la carretera anterior.
Punfos de elecci6n para la Eliminaci6nIlefenci6n de las no-rampas. Para carreteras que no son rampas, se usa un protocolo muy agresivo por el módulo de simplificación de carreteras 697 para suavizar tales carreteras. Para una carretera determinada en la ruta, el módulo marca inicialmente cada punto de la forma excepto el primero, el último y cualesquiera puntos de intersección como eliminados. Se mantiene un puntero al segundo punto de la forma y del segundo al último punto de la forma. A continuación, se hace una comprobación de falsas intersecciones. Si se encuentra una falsa intersección tanto el segundo como del segundo al último punto de la forma se marcan como retenidos. Además, los punteros se mueven a los siguientes puntos de la forma más interiores. Si no se encuentra una falsa intersección, o los punteros cruzan uno sobre otro, se termina la comprobación de falsas intersecciones.
Después de realizar una comprobación de falsas intersecciones, se realiza una comprobación para identificar los ángulos de giro inconsistentes en el punto de giro entre la carretera anterior y la carretera actual. Diversas realizaciones del módulo de simplificación de carreteras 697 usan uno de dos procedimientos alternativos para la detección de ángulos de giro inconsistentes con respecto al sistema de coordenadas orientado a lo largo del último segmento de la carretera anterior. Los dos procedimientos se muestran en las FIG. 36A y 36B respectivamente.
En el primer procedimiento (FIG. 36A), se forma un vector entre un punto de la forma actual y el punto de forma anterior. Este vector se compara a continuación con el vector entre el punto de la forma anterior y el último punto de la forma. Si los vectores no están en el mismo semiplano, o algún otro número predeterminado de grados tal como un cuadrante, con respecto al sistema de coordenadas definido por el último segmento de la carretera anterior, entonces el módulo de simplificación de carreteras 697 retiene este punto de la forma y continúa la comprobación en el siguiente punto de la forma.
En el segundo procedimiento (FIG. 36B), se forma un vector entre el primer punto de la forma y el punto de forma actual. Este vector se compara con el vector entre el punto de la forma actual y el último punto de la forma. Si los vectores no están en el mismo semiplano, o algún otro número predeterminado de grados tal como un cuadrante, con respecto al sistema de coordenadas definido por el último segmento de la carretera anterior, entonces el punto de la forma se retiene este punto de la forma y el procedimiento continúa comprobando en el siguiente punto de la forma.
Ambos procedimientos de la FIG. 36A y 36B hacen un recorrido a través del conjunto de puntos de la forma desde el primero al último y realizan comprobaciones simples del ángulo para determinar si el punto de forma debería, o no, retenerse. El primer procedimiento (FIG. 36A) tiende a retener menos puntos de la forma que el segundo (FIG. 36B). En algunas realizaciones del módulo de simplificación de la carretera 697, los dos procedimientos se combinan corriendo el primero y a continuación el segundo y reteniendo a continuación todos los puntos de la forma hasta algún promedio de los dos resultados. Una comprobación similar de consistencia de los ángulos de giro se realiza por el módulo de simplificación de carreteras 697 en el giro entre la carretera actual y la carretera siguiente.
Aunque la información de forma detallada no es necesaria para seguir la mayoría de las siguientes carreteras, las rampas de entrada y salida de la autopista son una excepción a esta norma. Sabiendo si una rampa se curva alrededor de sí misma para formar una hoja de trébol o si se inclina sólo ligeramente puede hacerse mucho más fácil descifrar como entrada o salida de la autopista. Por lo tanto el módulo del algoritmo de simplificación 697 usa un criterio de simplificación diferente para rampas de entrada salida de las autopistas que para otras carreteras en la ruta. Para rampas, el módulo de simplificación de carreteras 697 realiza un análisis detallado de la forma durante la simplificación. En cada uno de los puntos de forma interiores, se consideran las longitudes de los dos segmentos adyacentes, y el ángulo entre ellos, como se muestra en la FIG. 37. En la FIG. 37, para un punto de la forma determinado, los dos segmentos adyacentes para el punto de la forma tienen longitudes l1 y l2, a es el ángulo entre estos dos segmentos y n1 y n2 son el número de segmentos no simplificados que se representan por cada uno de los segmentos actuales. Una medida de la relevancia para el punto de la forma se calcula como:
Cuanto más alta es la medida de la relevancia más importante es retener el punto. El módulo de simplificación de carreteras 697 define un valor de la tolerancia; y si hay al menos un punto de la forma con relevancia < tolerancia, el punto de la forma con la relevancia más baja se marca como eliminado. A continuación se recalcula la relevancia para todos los puntos de la forma restantes; y si es posible, se elimina otro punto de la forma. Este procedimiento se repita hasta que todos los puntos de la forma tienen una relevancia mayor que la tolerancia o todos los puntos de la forma restantes están marcados como retenidos.
La medida de la relevancia está basada en dos observaciones. En primer lugar, los ángulos de giro más agudos son más importantes que ángulos de giro superficiales. Como medimos el ángulo más pequeño, a entre segmentos adyacentes, usamos 180 – a en el numerador de la medida de relevancia para dar una maYor relevancia a las carreteras con ángulos más agudos. En segundo lugar, para rampas, los giros entre segmentos más cortos tienden a ser más importante que los giros entre segmentos más largos (véase la FIG. 38). De este modo, el denominador es la suma de los dos segmentos adyacentes. Sin embargo, se apreciará que la eliminación de un punto de la forma causa que un segmento se haga más largo. Por lo tanto si el algoritmo fuera simplemente dividir por la suma de las longitudes de segmentos adyacentes, a medida que el procedimiento continuase simplificando la rampa, las medidas de relevancia de los puntos de la forma restantes tenderían a disminuir. De este modo, las longitudes de los segmentos adyacentes se normalizan por el número de segmentos no simplificados que reemplaza el segmento actual.
Eliminaci6n de lampas. La entrada o salida de la mayor parte de las autopistas requiere tomar una corta rampa de entrada o de salida. Para rutas largas (es decir de 50 millas (80,47 km) o más largas) que incluyen muchas autopistas, mostrar todas las rampas cortas puede desordenar el mapa con detalles innecesarios. Sin embargo, algunas rampas, particularmente cerca del comienzo o del final de la ruta, pueden ser muy importantes para el entendimiento de cómo seguir la ruta. Por lo tanto, algunas realizaciones del módulo de simplificación de carreteras 697 incluyen un conjunto de heurísticas para evaluar la importancia de una rampa. Cuando una rampa determinada no satisface este conjunto de heurísticas, la rampa se elimina. En una realización, este conjunto de heurísticas es como sigue
1.
Rampas entre autopistas. Las rampas entre dos autopistas son menos importantes que aquellas entre pequeñas carreteras y las autopistas.
2.
Primera/Última rampa. Nunca eliminar la primera y la última rampas sobre la ruta ya que probablemente son para ir entre carreteras locales, más pequeñas y la autopista.
3.
Rutas cortas. Mantener todas las rampas para las rutas más pequeñas que una longitud de corte predefinida (por ejemplo, 50 millas (80,47 Km)) o corte de etapas (es decir, 20 etapas).
4.
Rampas largas. Mantener la rampa si es más larga de una longitud de rampa mínima especificada de antemano (es decir, 0,1 millas (160,94 metros)).
5.
Carretera corta antes/después de la rampa. Si la carretera inmediatamente antes o después de la rampa es más corta que una longitud especificada de antemano (es decir, 0,5 millas (80,47 metros)) mantener la rampa.
Como en una simplificación de carretera, los tres problemas principales que el módulo de simplificación de carreteras 697 procura eliminar cuando se eliminan rampas son la introducción de falsas intersecciones, la pérdida de una intersección verdadera, y la creación de giros inconsistentes. Para evitar intersecciones falsas o perdidas se usa el mismo enfoque que se encuentra en el procedimiento de simplificación de carreteras descrito anteriormente por el módulo de simplificación de carreteras 697. En primer lugar se calcula de antemano el conjunto de puntos de intersección entre cada uno de los pares de carreteras. Antes de permitir la eliminación de una rampa, se hace una comprobación para determinar si la eliminación añadirá una falsa intersección a la lista de intersecciones o causará que se pierda una intersección real; y si es así, la rampa no se eliminará.
El aseguramiento de la consistencia del ángulo de giro es ligeramente diferente cuando se eliminan rampas que con la simplificación de la forma de la carretera. Cuando se eliminan rampas, el módulo de simplificación de carreteras 697 comprueba para asegurarse que la carretera continúa pareciendo que está a la derecha de la rampa después de eliminar la rampa. Si no se mantiene esta relación, el giro es inconsistente y la rampa no puede eliminarse como se muestra en la FIG. 39. Obsérvese que la comprobación de consistencia de giro no tiene que realizarse en una rampa de hoja de trébol ya que esencialmente forman un círculo, porque comienzan y terminan en el mismo punto, lo que es lo mismo en el último punto de la carretera antes de la rampa (r1).
Para comprobar la consistencia de giro, el módulo de simplificación de carreteras 697 en primer lugar comprueba si la rampa, que se aproxima como un único segmento de línea entre sus puntos de forma de comienzo y de final, gira a la derecha o a la izquierda de r1. Si la rampa gira a la derecha, entonces se elimina la rampa si la dirección de r2 está en el primer, segundo o cuarto cuadrante del sistema de coordenadas orientado a lo largo de r1, De forma similar si la rampa gira a la izquierda de r1, la rampa se elimina si la dirección de r2 está en el primer, segundo o tercer cuadrante del sistema de coordenadas orientado a lo largo de r1.
Algoritmos de optimización similares
Aunque los ejemplos para la optimización de etiquetas y la optimización de la escala de ruta incluyen el refinamiento de una función objetivo usando recocido simulado, se apreciará que las funciones objetivo de la presente invención pueden refinarse usando cualquier forma de búsqueda basada en el algoritmo de refinamiento. El algoritmo representativo basado en la búsqueda incluye, pero sin limitarse a estos: algoritmos codiciosos, disminución de gradiente, recocido simulado, búsquedas Tabu, A* como se examinó por Zbigniew y otros en Cómo Resolverlo: Heurísticas modernas, Springer-Verlag, Berlín, Alemania, 2000, búsquedas codiciosas A* / IDA*, recocido simulado y escalamiento de colina (descenso de gradiente) como se examinó por Russell y otros en Inteligencia Artificial: Un Enfoque moderno, Prentice Hall, 1995, y algoritmos genéticos como se examinó por Golderg en Algoritmos Genéticos en la Búsqueda, Optimización y Aprendizaje de Máquinas, Addison – Wesley, 1989.
Conclusión de observaciones
El uso eficiente de estructuras de datos y técnicas de aceleración es útil en la implementación de los procedimientos desvelados en la presente invención. Típicamente, los algoritmos de búsqueda descritos en el presente documento requieren un número significativo de iteraciones para converger, y la puntuación se hace en cada una de las iteraciones. A menudo la puntuación involucra la determinación de si diversos objetos en el mapa se cortan, y los costes de estos cálculos de intersección deberían minimizarse. Un modo de minimizar el coste de tales cálculos es usar una cuadrícula de partición de dos dimensiones para subdividir la pantalla y reducir el número de posibles objetos candidatos para el cálculo de cualquier intersección.
También es posible reducir significativamente el control de cálculos de los algoritmos de búsqueda realizando un simple análisis antes de comenzar una búsqueda. En muchos casos, el algoritmo puede determinar la longitud óptima de una carretera o la colocación óptima de una etiqueta para que no afecte perjudicialmente al tamaño o colocación de otras carreteras o etiquetas sobre el mapa. Por lo tanto, estos atributos pueden asignarse a priori reduciendo de este modo el tamaño del espacio de búsqueda y reduciendo el tiempo de funcionamiento del algoritmo.
Otras realizaciones
La presente invención puede implementarse como un producto de programa de ordenador que incluye un mecanismo de programa de ordenador incorporado en un medio de almacenamiento legible por el ordenador. Por ejemplo, el producto de programa de ordenador podría contener el analizador de direcciones 684, el módulo de disposición de carreteras 686, y el módulo de presentación de mapas 692 (FIG. 6). Estos módulos de programa pueden almacenarse en un CD-ROM, producto de almacenamiento de disco magnético, o cualquier otro producto de almacenamiento de programas o de datos legible por el ordenador. El módulo software en el producto de programa de ordenador también puede distribuirse electrónicamente, a través de Internet o de otro modo, por la transmisión de una señal de datos de ordenador (en la cual están incorporados módulos software) sobre una onda portadora.
Se apreciará que, aunque se ha hecho referencia a mapas de ruta que incluyen carreteras, la presente invención abarca mapas de ruta de cualquier clase. De este modo, los mapas de ruta de la presente invención incluyen, pero sin limitarse a estos, rutas de senderismo, direcciones de campus, y representaciones gráficas de redes de transporte colectivo además de los mapas de carreteras. Además, se apreciará que aunque se hace referencia en la FIG. 6 a un sistema para la generación de un mapa de ruta que tiene un formato de cliente/servidor, muchas realizaciones de la presente invención se ponen en práctica usando un único ordenador que no está necesariamente conectado a la Internet. Además, se apreciará que la distribución de los módulos software mostrados en la FIG. 6 son meramente de ejemplo. Por ejemplo, las realizaciones en las cuales el analizador de direcciones 684, dicho módulo de disposición de carreteras incluyendo la memoria 686, el módulo de disposición de etiquetas 688, el módulo de anotaciones 690, el módulo de presentación de mapas 692, la base de datos de direcciones 694, y la base de datos de marcas geográficas sobre el terreno 696 residen independientemente sobre el cliente 622 y/o el
5 servidor 624 caen dentro del alcance de la presente invención como se reivindica.
Las descripciones anteriores de realizaciones específicas de la presente invención se presentan para propósitos de ilustración y descripción. Nos se pretende que sean exhaustivas o que limiten la invención a las formas precisa desveladas, obviamente son posibles muchas modificaciones y variaciones a la vista de las enseñanzas anteriores. Las realizaciones se eligieron y se describieron para una mejor explicación de los principios de la invención y sus
10 aplicaciones prácticas, por lo tanto posibilitan a otras personas especialistas en la técnica la mejor utilización de la invención y diversas modificaciones como se adapten al uso particular contemplado. Se pretende que el alcance de la invención se defina por las siguientes reivindicaciones.

Claims (36)

  1. REIVINDICACIONES
    1. Un sistema de ordenador (620), que comprende:
    una unidad de procesamiento central (662); una memoria (688), acoplada a dicha unidad de procesamiento central (662); una región de visión (640) para representar un mapa de ruta; incluyendo dicha memoria (668) un módulo de programa, ejecutable por dicha unidad de procesamiento central (662), comprendiendo dicho módulo de programa:
    instrucciones para preparar el mapa de ruta para su representación sobre dicha región de visión; instrucciones para obtener una trayectoria desde un comienzo a un final, comprendiendo dicha trayectoria un conjunto inicial de elementos, incluyendo cada uno de dichos elementos información suficiente para determinar una dirección y cortando cada uno de dichos elementos al menos otro elemento en dicho conjunto inicial de elementos; incluyendo un primer elemento en dicho conjunto inicial de elementos dicho comienzo e incluyendo un segundo elemento en dicho conjunto inicial de elementos dicho final; instrucciones para aplicar de forma independiente un factor de escala diferente a cada uno de al menos dos elementos en dicho conjunto inicial de elementos troceando los elementos del conjunto inicial de elementos en intervalos consecutivos y escalando los elementos de forma diferente dependiendo del intervalo en el que caigan, en donde los elementos más pequeños se escalan para ser más largos y los elementos más largos se escalan para ser más cortos; de modo que la aplicación de dicho factor de escala diferente a cada uno de dichos, al menos dos elementos produce un conjunto escalado de elementos. instrucciones para estimar una altura total y una anchura total de una presentación de cada uno de dichos elementos en dicho conjunto escalado de elementos; instrucciones para seleccionar, en base a una función de dicha altura total y dicho ancho total, la región de visión; e instrucciones para sacar una presentación de cada uno de los elementos en dicho conjunto escalado de elementos a dicha región de visión; instrucciones para encajar una colección de puntos de referencia en dicho mapa de ruta con una función de distribución de probabilidad, correspondiendo cada uno de dichos puntos de referencia a una posición de una intersección en dicho mapa de ruta, en donde la distribución de probabilidad define ejes y extensiones a lo largo de esos ejes para la ruta, de modo que la caja delimitadora más estrecha (1704) que contiene la ruta completa es determinable a partir de estos ejes; instrucciones para deducir:
    (i)
    una posición media de dicha colección de puntos de referencia;
    (ii)
    una primera posición más lejana en la cual un miembro de la colección de puntos de referencia se extiende en una primera dirección lejos de la posición media; y
    (iii) una segunda posición más lejana a la cual se extiende un miembro de dicha colección de puntos de referencia en una dirección que es ortogonal a un vector entre dicha posición media y dicha primera posición más lejana;
    instrucciones para calcular la caja delimitadora (1704), en donde se determina un tamaño y una orientación de dicha caja delimitadora (1704) por dicha posición media, dicha primera posición más lejana y dicha segunda posición más lejana; instrucciones para determinar una dirección del eje longitudinal de dicha caja delimitadora (1704); instrucciones para girar dicho mapa de ruta, en una cantidad que es suficiente para reorientar dicho eje longitudinal de modo que dicho eje longitudinal descansa en una orientación predeterminada, para formar un mapa de ruta girado; e instrucciones para presentar una porción de dicho mapa de ruta girado sobre dicha región de visión, optimizando por lo tanto dicha representación de dicho mapa de ruta.
  2. 2.
    El sistema de ordenador (620) de la reivindicación 1, en el que dicha función de probabilidad se selecciona del grupo consistente de una distribución binomial, una distribución de Poisson, y una distribución Gaussiana.
  3. 3.
    El sistema de ordenador (620) de la reivindicación 1, en el que dicha orientación predeterminada se elige de modo que se representa un punto de comienzo en dicho mapa de ruta girado en una localización designada en dicha región de visión (640).
  4. 4.
    El sistema de ordenador (620) de la reivindicación 1, en el que:
    dicha región de visión (640) tiene una dimensión horizontal x y una dimensión vertical y; representando dicha porción de dicho mapa de ruta girado representado sobre dicha región de visión (640) una componente vertical total de dicho mapa de ruta girado y un subconjunto de una componente horizontal de dicho mapa de ruta girado; comprendiendo dicho módulo de programa además:
    instrucciones para asociar una barra de desplazamiento con dicha dimensión horizontal de dicha región de visión, por lo que, en respuesta a la entrada dirigida, es accesible una componente horizontal global de dicho mapa de ruta girado.
  5. 5. El sistema de ordenador (620) de la reivindicación 1, en el que:
    dicha región de visión (640) tiene una dimensión horizontal x y una dimensión vertical y; representado dicha porción de dicho mapa de ruta girado sobre dicha región de visión (640) una componente horizontal total de dicho mapa de ruta girado y un subconjunto de una componente vertical de dicho mapa de ruta girado; comprendiendo dicho módulo de programa además:
    instrucciones para asociar una barra de de desplazamiento con dicha dimensión vertical de dicha región de visión, por lo que, en respuesta a la entrada dirigida, es accesible la componente vertical total de dicho mapa de ruta girado.
  6. 6.
    El sistema de ordenador (620) de la reivindicación 1, en el que dicho mapa de ruta tiene una dimensión constante y una dimensión variable ortogonal para dicha dimensión constante, determinada la longitud de la dimensión variable por el número de etapas o la distancia de una ruta dentro de dicho mapa de ruta.
  7. 7.
    El sistema de ordenador (620) de la reivindicación 1, en el que dicho sistema de ordenador es un asistente digital personal.
  8. 8.
    El sistema de ordenador (620) de la reivindicación 1, que comprende además:
    instrucciones para dividir dicho mapa de ruta en una cuadrícula inicial, compuesta dicha cuadrícula inicial de celdas de la cuadrícula; instrucciones para identificar celdas candidatas de la cuadrícula en las que puede colocarse una anotación o etiqueta, en la que cada una de las celdas candidatas de la cuadrícula que está libre de objetos asociados con dicho mapa de ruta; instrucciones para buscar, cuando dicha anotación o etiqueta no cabe en una única celda candidata de la cuadrícula, celdas de la cuadrícula que tienen suficientes celdas adyacentes de la cuadrícula libres de objetos de modo que dicha celda candidata de la cuadrícula y una o más celdas adyacentes de la cuadrícula libres de objetos pueden acomodar dicha anotación o etiqueta; instrucciones para realizar un esquema de subdivisión de la cuadrícula, cuando no se encuentra ninguna celda candidata de la cuadrícula después de la ejecución de dichas instrucciones para identificar o dichas instrucciones para buscar, subdividiendo dicho esquema de subdivisión de la cuadrícula una porción de dichas celdas de cuadrícula en dicha cuadrícula inicial para formar una nueva cuadrícula, e instrucciones para reejecutar dichas instrucciones para identificar y dichas instrucciones para buscar usando dicha nueva cuadrícula; instrucciones para evaluar, cuando se encuentran múltiples celdas candidatas de la cuadrícula por dichas instrucciones para identificar o dichas instrucciones para buscar, dependiendo dicha evaluación de cada una de las celdas candidatas de la cuadrícula de la densidad de objetos en las celdas de la cuadrícula que bordean cada una de dichas celdas candidatas de la cuadrícula, en donde la celda candidata de la cuadrícula que bordea las celdas de cuadrícula que tiene la densidad más baja de objetos se elige como celda candidata de la cuadrícula y todas las demás celdas candidatas de la cuadrícula se descargan; e instrucciones para el posicionamiento de dicha anotación o etiqueta en dicha celda candidata de la cuadrícula, colocando por lo tanto dicha anotación o etiqueta en dicho mapa de ruta.
  9. 9.
    Un procedimiento que comprende:
    la preparación de un mapa de ruta a representar; la obtención de una trayectoria desde dicho comienzo a dicho final comprendiendo dicha trayectoria un conjunto inicial de elementos, incluyendo cada uno de dichos elementos información suficiente para determinar una dirección y cortando cada uno de dichos elementos al menos otro elemento en dicho conjunto inicial de elementos; incluyendo un primer elemento en dicho conjunto inicial de elementos dicho comienzo e incluyendo un segundo elemento en dicho conjunto inicial de elementos dicho final; aplicar de forma independiente un factor de escala diferente a cada uno de al menos dos elementos en dicho conjunto inicial de elementos troceando los elementos del conjunto inicial de elementos en intervalos consecutivos y escalando los elementos de forma diferente dependiendo del intervalo en el que caigan, en donde los elementos más pequeños se escalan para ser más largos y los elementos más largos se escalan para ser más cortos; de modo que la aplicación de dicho factor de escala diferente a cada uno de dichos, al menos dos elementos produce un conjunto escalado de elementos. estimar una altura total y una anchura total de una presentación de cada uno de los elementos en dicho conjunto escalado de elementos; seleccionar, en base a una función de dicha altura total y dicho ancho total, la región de visión; sacar una presentación de cada uno de los elementos en dicho conjunto escalado de elementos a dicha región de visión; encajar una colección de puntos de referencia en dicho mapa de ruta con una función de distribución de probabilidad, correspondiendo cada uno de dichos puntos de referencia a una posición de una intersección en dicho mapa de ruta, en donde la distribución de probabilidad define ejes y extensiones a lo largo de esos ejes para la ruta, y a partir de estos ejes, determinar la caja delimitadora más estrecha (1704) que contiene la ruta completa; deducir:
    (i)
    una posición media de dicha colección de puntos de referencia;
    (ii)
    una primera posición más lejana en la cual un miembro de la colección de puntos de referencia se extiende en una primera dirección lejos de la posición media; y
    (iii) una segunda posición más lejana a la cual se extiende un miembro de dicha colección de puntos de referencia en una dirección que es ortogonal a un vector entre dicha posición media y dicha primera posición más lejana;
    calcular la caja delimitadora (1704), en donde se determina un tamaño y una orientación de dicha caja delimitadora (1704) por dicha posición media, dicha primera posición más lejana y dicha segunda posición más lejana; determinar una dirección del eje longitudinal de dicha caja delimitadora (1704); girar dicho mapa de ruta, en una cantidad que es suficiente para reorientar dicho eje longitudinal de modo que dicho eje longitudinal descanse en una orientación predeterminada, para formar un mapa de ruta girado; y presentar una porción de dicho mapa de ruta girado sobre dicha región de visión, optimizando por lo tanto dicha representación de dicho mapa de ruta.
  10. 10.
    El procedimiento de la reivindicación 9, en el que dicha etapa de selección:
    cuando la proporción de dicho ancho total a dicha altura total es menor que aproximadamente 0,60, se selecciona una primera región de visión; cuando la proporción de dicho ancho total a dicha altura total es mayor que aproximadamente 2,0, se selecciona una segunda región de visión; y cuando no se selecciona dicha primera imagen y dicha segunda región de visión, se selecciona una tercera región de visión.
  11. 11.
    El procedimiento de la reivindicación 9, en el que dicha región de visión se selecciona en base a dicha función así como varios elementos en dicho conjunto de elementos escalados.
  12. 12.
    El procedimiento de la reivindicación 9, que comprende además:
    dividir dicho mapa de ruta en una cuadrícula inicial que está compuesta de celdas de la cuadrícula; identificar celdas candidatas de la cuadrícula en las que puede colocarse dicha anotación o etiqueta, en donde cada una de dichas celdas candidatas de la cuadrícula es una celda de la cuadrícula que está libre de objetos asociados con dicho mapa de ruta; buscar, cuando dicha anotación o etiqueta no cabe en una única celda candidata de la cuadrícula, celdas de la cuadrícula que tienen suficientes celdas adyacentes de la cuadrícula libres de objetos de modo que dicha celda candidata de la cuadrícula y una o más celdas adyacentes de la cuadrícula libres de objetos pueden acomodar dicha anotación o etiqueta; cuando no se encuentra ninguna celda candidata de la cuadrícula en dichas etapas de identificación o búsqueda, realizar un esquema de subdivisión de la cuadrícula que subdivide una porción de dichas celdas de cuadrícula en dicha cuadrícula inicial para formar una nueva cuadrícula, y repetir dichas etapas de identificación y búsqueda usando dicha nueva cuadrícula; evaluar, cuando se encuentran múltiples celdas candidatas de la cuadrícula, cada una de las celdas candidatas de la cuadrícula en base a la densidad de objetos en las celdas de la cuadrícula que bordean cada una de dichas celdas candidatas de la cuadrícula, en donde la celda candidata de la cuadrícula que bordea las celdas de la cuadrícula que tienen la densidad más baja de objetos se selecciona como celda candidata de la cuadrícula y todas las demás celdas candidatas de la cuadrícula se descartan; y posicionar dicha anotación o etiqueta en dicha celda candidata de la cuadrícula, colocando por lo tanto dicha anotación o etiqueta en dicho mapa de ruta.
  13. 13.
    El procedimiento de la reivindicación 12, en el que dicha anotación o etiqueta se restringe a una subregión de dicho mapa de ruta y dichas etapas de identificación y búsqueda están limitadas a dicha subregión.
  14. 14.
    El procedimiento de la reivindicación 9, que comprende además etapas para añadir una calle de cruce y una etiqueta de calle de cruce que está asociada con dicha calle de cruce a un mapa de ruta que tiene una trayectoria principal, que comprende:
    determinar un punto de intersección en el cual dicha calle de cruce corta dicha trayectoria principal; colocar dicha calle de cruce en dicho mapa de ruta con la restricción de que dicha calle de cruce corta dicha trayectoria principal en una primera posición de prueba que se elige aleatoriamente a partir de un segmento de
    dicha trayectoria principal que incluye dicho punto de intersección; posicionar dicha etiqueta de calle de cruce en una segunda posición de prueba dentro de un área predeterminada, incluyendo dicho área predeterminada dicho punto de intersección; ajustar una longitud de dicha calle de cruce de modo que dicha calle de cruce pase por debajo de dicha etiqueta de la calle de cruce y corta dicha trayectoria principal; perturbar dicha primera o dicha segunda posición de prueba en una cantidad; obtener una puntuación de una función que está determinada por una localización de dicha calle de cruce y dicha etiqueta de la calle de cruce en dicho mapa de ruta; repetir dichas etapas de perturbación y obtención hasta que dicha puntuación alcanza un valor umbral o dichas etapas de perturbación y obtención se han ejecutado un número predeterminado de veces; en el que:
    dicha calle de cruce y dicha etiqueta de la calle de cruce se añaden a dicho mapa de ruta cuando dicha puntuación alcanza dicho valor umbral; y dicha calle de cruce y dicha etiqueta de la calle de cruce no se añaden a dicho mapa de ruta cuando dichas etapas de perturbación obtención y determinación se han ejecutado dicho número predeterminado de veces y dicha puntuación no alcanza dicho valor umbral.
  15. 15.
    El procedimiento de la reivindicación 14, en el que dicha función que se determina por una localización de dicha calle de cruce y dicha etiqueta de la calle de cruce en dicho mapa de ruta comprende:
    un primer componente que se determina por una distancia entre dicha primera posición de prueba y dicho punto de intersección; un segundo componente que se determina por el número de objetos en dicho mapa que solapan dicha calle de cruce o dicha etiqueta de la calle de cruce, en el que la cantidad que un objeto que corta contribuye a dicho segundo componente se pondera por el grado de solapamiento entre dicho objeto solapante y dicha calle de cruce o dicha etiqueta de la calle de cruce; y un tercer componente que se determina por la cantidad de desorden visual.
  16. 16.
    El procedimiento de la reivindicación 14, en el que dicha cantidad de desorden visual se determina mediante:
    la presentación de una imagen basada en pixel de dicho mapa de ruta; la elección de una región de enfoque en dicha imagen basada en pixel que incluye dicha calle de cruce; y la convolución de dicha región de enfoque con un kernel Gaussiano usando un valor de luminancia de cada uno de los puntos de imagen en dicha región de enfoque.
  17. 17.
    El procedimiento de la reivindicación 14, en el que dicha cantidad de desorden visual se determina mediante:
    la presentación de una imagen basada en pixel de dicho mapa de ruta; la elección de una región de enfoque en dicha imagen basada en pixel que incluye dicha calle de cruce; calcular un área para cada uno de los objetos en dicha región de enfoque; y ponderar cada una de las áreas calculadas:
    (i)
    multiplicando dicha área por una luminancia promedio del objeto que corresponde al área; y
    (ii)
    dividiendo dicha área por una distancia entre el objeto que corresponde a dicha área y el centro de dicha región de enfoque; en donde dicha cantidad de desorden visual es una suma de cada una de las áreas ponderadas en dicha región de enfoque.
  18. 18.
    El procedimiento de la reivindicación 14, incluyendo además dicha etapa de perturbación una opción para alternar dicha calle de cruce entre un estado oculto y un estado visible, en el que:
    una de dichas opciones para alternar, la perturbación de dicha primera posición de prueba, y la perturbación de dicha segunda posición se selecciona aleatoriamente durante dicha etapa de perturbación; y dicha función que se determina por una localización de dicha calle de cruce y dicha etiqueta de la calle de cruce incluye un cuarto componente que sirve como penalización cuando dicha calle de cruce está en dicho estado oculto.
  19. 19.
    El procedimiento de la reivindicación 9, que comprende además etapas para añadir un conjunto de calles de cruce y las correspondientes etiquetas de las calles de cruce para el mapa de ruta que tiene una trayectoria principal, que comprende:
    para cada una de las calles de cruce en dicho conjunto de calles de cruce y las correspondientes etiquetas de las calles de cruce:
    determinar un punto de intersección en el cual dicha calle de cruce corta dicha trayectoria principal; colocar dicha calle de cruce en dicho mapa de ruta con la restricción de que dicha calle de cruce corta dicha trayectoria principal en una primera posición de prueba que se elige aleatoriamente a partir de un segmento de dicha trayectoria principal que incluye dicho punto de intersección; posicionar dicha etiqueta de la calle de cruce en una segunda posición de prueba dentro de un área predeterminada, incluyendo dicha área predeterminada dicho punto de intersección; y ajustar una longitud de dicha calle de cruce de modo que dicha calle de cruce pasa por debajo de dicha etiqueta de la calle de cruce y corta dicha trayectoria principal;
    comprendiendo el procedimiento además:
    perturbar una calle de cruce seleccionada aleatoriamente a partir de dicho conjunto de calles de cruce ajustando dicha primera o dicha segunda posición de prueba correspondiente a dicha calle de cruce en una cantidad aleatoria; obtener una puntuación de una función que se determina por la localización de cada una de las calles de cruce y la etiqueta de la calle de cruce correspondiente en dicho conjunto de calles de cruce y las correspondientes etiquetas de las calles de cruce. determinar si aceptar un cambio realizado durante dicha etapa de perturbación en base a dicha puntuación de dicha función de acuerdo con un algoritmo de búsqueda; y repetir dichas etapas de perturbación, obtención y determinación hasta que dicha puntuación alcanza un valor umbral o dicha perturbación, dicha obtención o dicha etapa de determinación se han ejecutado un número predeterminado de veces.
  20. 20.
    El procedimiento de la reivindicación 19, en el que dicha función que se determina por una localización de cada una de las calles de cruce y la correspondiente etiqueta de la calle de cruce en dicho conjunto de calles de cruce y las etiquetas correspondientes de las calles de cruce comprende:
    un primer componente que se determina por una combinación de un conjunto de distancias; determinada cada una de las distancias en dicho conjunto de distancias por una diferencia en una primera posición de prueba, que está asociada con una calle de cruce diferente en dicho conjunto de calles de cruce, y un punto de intersección que corresponde a dicha calle de cruce diferente; un segundo componente que se determina por el número de objetos en dicho mapa de ruta que solapan una calle de cruce o la etiqueta de la calle de cruce, en dicho conjunto de calles de cruce y las etiquetas de las calles de cruce correspondientes; en el que la cantidad que un objeto que corta contribuye a dicho segundo componente se pondera por el grado de solapamiento entre dicho objeto solapante y dicha calle de cruce o dicha etiqueta de la calle de cruce; y un tercer componente que se determina por la cantidad de desorden visual en dicho mapa de ruta.
  21. 21.
    El procedimiento de la reivindicación 20, incluyendo además dicha etapa de perturbación:
    una opción para alternar dicha calle de cruce entre un estado oculto y un estado visible, en el que uno de:
    (i)
    dicha opción de alternar,
    (ii)
    la perturbación de dicha primera posición de prueba, y
    (iii) la perturbación de dicha segunda posición se selecciona aleatoriamente durante dicha etapa de perturbación; y
    dicha función que se determina por una localización de cada una de las calles de cruce y las correspondientes etiquetas de las calles de cruce en dicho conjunto de calles de cruce y las correspondientes etiquetas de las calles de cruce incluye un cuarto componente que sirve como una penalización para cada una de las calles de cruce en un estado oculto.
  22. 22.
    El procedimiento de la reivindicación 20, en el que dicho algoritmo de búsqueda se selecciona del grupo consistente de recocido simulado, recocido simulado adaptativo, una búsqueda Tabu, A*, IDA*, un algoritmo genético, una búsqueda codiciosa, descenso de gradiente, y un paseo aleatorio.
  23. 23.
    El procedimiento de la reivindicación 9,
    en el que la aplicación de dicho factor de escala diferente a cada uno de dichos al menos dos elementos produce un conjunto escalado de elementos; la creación de una representación de cada uno de los elementos en dicho conjunto de elementos escalados para formar un mapa intermedio; identificar un conjunto de N puntos de ruptura en dicho mapa intermedio, ocurriendo cada uno de los puntos de ruptura en dicho conjunto de N puntos de ruptura en un elemento en dicho conjunto escalado de elementos, y un valor mínimo para N se determina por la expresión:
    N � S/M
    en el que,
    S es un número de elementos en dicho conjunto escalado de elementos; y M es un número máximo predeterminado de elementos;
    dividiendo dicho mapa intermedio en un conjunto de N mapas de segmento, incluyendo en cada uno de los mapas de segmento un punto de ruptura diferente, comprendiendo por lo tanto el conjunto de N mapas de segmento dicho mapa de ruta; y preparando un mapa de ruta para su representación, describiendo el mapa de ruta dicha trayectoria desde dicho comienzo a dicho final.
  24. 24.
    El procedimiento de la reivindicación 23, en el que dicha representación de cada uno de los elementos en dicho conjunto escalado de elementos no se altera cuando dicho mapa intermedio se divide en dicho conjunto de N mapas de segmento.
  25. 25.
    El procedimiento de la reivindicación 23, en el que cada uno de los puntos de ruptura en dicho conjunto de N puntos de ruptura está caracterizado por un icono del punto de conexión diferente.
  26. 26.
    El procedimiento de la reivindicación 9, que comprende además:
    la creación de una primera representación de cada uno de los elementos en dicho conjunto de elementos escalados para formar dicho mapa de ruta; identificar un conjunto de elementos contiguos que es un subconjunto de dicho conjunto escalado de elementos;
    en el que dicho conjunto de elementos contiguos
    (i)
    incluye una falsa intersección,
    (ii)
    son más cortos que otros elementos en dicho conjunto escalado de elementos o,
    (iii) son más largos que los elementos correspondientes en dicho conjunto inicial de elementos;
    la producción de una segunda representación de cada uno de los elementos en dicho conjunto de elementos contiguos para formar una inserción, en donde la escala de dicha segunda representación es mayor que la escala de la porción de dicha primera representación que corresponde a dicha segunda representación; y la preparación de un mapa de ruta para representar, describiendo dicho mapa de ruta dicha trayectoria desde dicho comienzo a dicho final.
  27. 27. El procedimiento de la reivindicación 9, que comprende además etapas para simplificar una carretera en el mapa de ruta, comprendiendo:
    aproximar dicha carretera como una curva de trozos lineales que incluye una pluralidad de puntos de forma, conectado cada uno de los puntos de la forma en dicha pluralidad de puntos de la forma por un segmento lineal a un punto de la forma diferente en dicha pluralidad de puntos de la forma; añadir al menos un punto en el cual dicha carretera corta otra carretera en dicho mapa de ruta para dicha pluralidad de puntos de la forma como un punto de intersección; marcar cada uno de los puntos de la forma en dicha pluralidad de puntos de la forma que no es:
    (i)
    un primer punto de la forma;
    (ii)
    un punto último de la forma; o
    (iii) un punto de intersección;
    comprobar la presencia de falsas intersecciones entre dicha carretera y otra carretera en dicho mapa de rutas, cuando se encuentra una falsa intersección, el primer punto de la forma marcado y el último punto de la forma marcado en dicha pluralidad de puntos de forma se desmarcan; y repetir dicha etapa de comprobación hasta que no se encuentre ninguna falsa intersección o no haya ningún punto de la forma marcado en dicha pluralidad de puntos de la forma:
    en el que:
    cuando se marca un punto de la forma, se modifica dicha curva de trozos lineales reemplazando dicho punto de la forma marcado y cada uno de dichos segmentos lineales conectado a dicho punto de la forma marcado con un nuevo segmento lineal que se origina en un punto de la forma o punto de intersección inmediatamente anterior a dicho punto marcado de la forma y termina con un punto de la forma o punto de intersección inmediatamente posterior a dicho punto marcado de la forma; y cuando se desmarca un punto de la forma, se modifica dicha curva de trozos lineales reemplazando el nuevo segmento lineal asociado con dicho punto de forma con
    (i)
    un primer segmento lineal que se limita por dicho punto de la forma o punto de intersección inmediatamente anterior a dicho punto marcado de la forma y dicho punto de la forma y
    (ii)
    un segundo segmento lineal que se limita por dicho punto de forma o punto de intersección posterior a dicho punto marcado de la forma y dicho punto de la forma;
    representando por lo tanto dicha curva de trozos lineales una carretera suavizada que corresponde a dicha carretera en el mapa de ruta; y preparar dicho mapa de ruta para representar, dicho mapa de ruta que describe dicha trayectoria desde dicho comienzo a dicho final.
  28. 28.
    El procedimiento de la reivindicación 27, que comprende además:
    formar un primer vector desde un punto de la forma inmediatamente anterior a un punto de forma marcado en dicha pluralidad de puntos de la forma a dicho punto de la forma marcado; generar un segundo vector entre dicho punto de la forma inmediatamente anterior a dicho punto de la forma marcado y el último punto de la forma en dicha pluralidad de puntos de la forma; y comparar dicho primer vector y dicho segundo vector, en donde, cuando dicho primer y dicho segundo vectores no están dentro de un número de grados predeterminado entre sí, dicho punto de forma se desmarca.
  29. 29.
    El procedimiento de la reivindicación 27, que comprende además:
    formar un primer vector a partir de un primer punto de la forma a un punto de la forma marcado en dicha pluralidad de puntos de la forma; generar un segundo vector entre dicho punto de la forma marcado y el último punto de la forma en dicha pluralidad de puntos de la forma; y comparar dicho primer vector y dicho segundo vector, en donde, cuando dicho primero y dicho segundo vectores no están dentro de un número de grados predeterminados entre sí, dicho punto de la forma se desmarca.
  30. 30.
    El procedimiento de la reivindicación 29, en el que dichas etapas de formación, generación, y comparación se repiten para cada uno de los puntos de forma marcados en dicha pluralidad de puntos de forma.
  31. 31.
    El procedimiento de la reivindicación 9, que comprende además etapas para simplificar una rampa en un mapa de ruta que comprende:
    aproximar dicha rampa como una curva de trozos lineales que incluye una pluralidad de puntos de forma, conectado cada uno de los puntos de la forma en dicha pluralidad de puntos de la forma por un segmento lineal a un punto de la forma diferente en dicha pluralidad de puntos de la forma; calcular la relevancia para un punto de la forma en dicha pluralidad de puntos de la forma; en donde, cuando dicha relevancia para dicho punto de la forma cae por debajo de una tolerancia dicho punto de la forma se marca y dicha curva de trozos lineales se modifica reemplazando dicho punto de la forma marcado y cada uno de dichos segmentos lineales conectados a dicho punto de la forma marcado con un nuevo segmento lineal que se origina en un punto de la forma inmediatamente anterior de dicho punto de la forma marcado y termina con un punto de la forma inmediatamente posterior a dicho punto de la forma marcado, representando, por lo tanto dicho nuevo segmento lineal dicho punto de forma marcado; y representar por lo tanto dicha curva de trozos lineales una rampa suavizada que corresponde a dicha rampa en dicho mapa de ruta; y preparar dicho mapa de ruta para su representación, describiendo dicho mapa de ruta dicha rampa.
  32. 32.
    Un producto de programa de ordenador para uso en conjunción con un sistema de ordenador (620), comprendiendo el producto de programa de ordenador un medio de almacenamiento legible por ordenador y un mecanismo de programa de ordenador incorporado en el mismo, comprendiendo el mecanismo de programa de ordenador:
    un módulo de mapa para preparar un mapa de ruta que describe una trayectoria entre un comienzo y un final, comprendiendo el módulo de mapa:
    instrucciones para obtener dicha trayectoria desde dicho comienzo a dicho final, comprendiendo la trayectoria un conjunto inicial de elementos, incluyendo cada uno de dichos elementos información suficiente para determinar una dirección y cortando cada uno de dichos elementos al menos otro elemento en dicho conjunto inicial de elementos; incluyendo un primer elemento en dicho conjunto inicial de elementos dicho comienzo e incluyendo un segundo elemento en dicho conjunto inicial de elementos dicho final; instrucciones para aplicar de forma independiente un factor de escala diferente a cada uno de al menos dos elementos en dicho conjunto inicial de elementos troceando los elementos del conjunto inicial de elementos en intervalos consecutivos y escalando los elementos de forma diferente dependiendo del intervalo en el que caigan, en donde los elementos más pequeños se escalan para ser más largos y los elementos más largos se escalan para ser más cortos; de modo que la aplicación de dicho factor de escala diferente a cada uno de dichos, al menos dos elementos produce un conjunto escalado de elementos. instrucciones para estimar una altura total y una anchura total de una presentación de cada uno de dichos elementos en dicho conjunto escalado de elementos; instrucciones para seleccionar, en base a una función de dicha altura total y dicho ancho total, la región de visión; instrucciones para sacar una representación de cada uno de los elementos en dicho conjunto escalado de elementos a dicha región de visión; instrucciones para encajar una colección de puntos de referencia en dicho mapa de ruta con una función de distribución de probabilidad, correspondiendo cada uno de dichos puntos de referencia a una posición de una intersección en dicho mapa de ruta, en donde la distribución de probabilidad define ejes y extensiones a lo largo de esos ejes para la ruta, de modo que se puede determinar la caja delimitadora más estrecha (1704) que contiene la ruta completa a partir de estos ejes; instrucciones para deducir:
    (i)
    una posición media de dicha colección de puntos de referencia;
    (ii)
    una primera posición más lejana en la cual un miembro de la colección de puntos de referencia se extiende en una primera dirección lejos de la posición media; y
    (iii) una segunda posición más lejana a la cual se extiende un miembro de dicha colección de puntos de referencia en una dirección que es ortogonal a un vector entre dicha posición media y dicha primera posición más lejana;
    instrucciones para calcular la caja delimitadora (1704), en donde se determina un tamaño y una orientación de dicha caja delimitadora (1704) por dicha posición media, dicha primera posición más lejana y dicha segunda posición más lejana; instrucciones para determinar una dirección del eje longitudinal de dicha caja delimitadora (1704); instrucciones para girar dicho mapa de ruta, en una cantidad que es suficiente para reorientar dicho eje longitudinal de modo que dicho eje longitudinal descansa en una orientación predeterminada, para formar un mapa de ruta girado; e instrucciones para presentar una porción de dicho mapa de ruta girado sobre dicha región de visión, optimizando por lo tanto dicha representación de dicho mapa de ruta.
  33. 33.
    El producto de programa de ordenador de la reivindicación 32, en el que dichas instrucciones para seleccionar incluyen además:
    instrucciones para seleccionar una primera región de visión cuando la proporción de dicho ancho total a dicha altura total es menor que aproximadamente 0,60; instrucciones para seleccionar una segunda región de visión cuando la proporción de dicho ancho total a dicha altura total es mayor que aproximadamente 2,0; e instrucciones para seleccionar una tercera región de visión cuando no se seleccionan dicha primera imagen y dicha segunda región de visión.
  34. 34.
    El producto de programa de ordenador de la reivindicación 33, en el que dicha región de visión se selecciona en base a dicha función así como un número de elementos en dicho conjunto de elementos escalados.
  35. 35.
    El producto de programa de ordenador de la reivindicación 32, que comprende además:
    un módulo de simplificación de rampas para simplificar una rampa en un mapa de ruta, incluyendo el módulo de simplificación de rampas:
    instrucciones para aproximar dicha rampa como una curva de trozos lineales que incluye una pluralidad de puntos de la forma, conectado cada uno de los puntos de la forma en dicha pluralidad de puntos de la forma por un segmento lineal a un punto de la forma diferente en dicha pluralidad de puntos de la forma; instrucciones para calcular la relevancia para un punto de la forma en dicha pluralidad de puntos de la forma; en el que, cuando dicha relevancia para dicho punto de la forma cae por debajo de una tolerancia dicho punto de la forma se marca y dicha curva de trozos lineales se modifica reemplazando dicho punto de la forma marcado y cada uno de dichos segmentos lineales conectados a dicho punto de la forma marcado con un nuevo segmento lineal que se origina en un punto de la forma inmediatamente anterior a dicho punto de la forma marcado y termina con un punto de la forma inmediatamente posterior a dicho punto de la forma marcado, representando, por lo tanto dicho nuevo segmento lineal dicho punto de la forma marcado; y
    un módulo de preparación de mapas que prepara dicho mapa de ruta para su representación, describiendo dicho mapa de ruta dicha rampa.
  36. 36. El producto de programa de ordenador de la reivindicación 35, en el que dicha relevancia se determina por la expresión:
    en el que: l1 es la longitud de un primer segmento lineal conectado a dicho punto de la forma; I2 es la longitud de un segundo segmento lineal conectado a dicho punto de la forma; n1 es el número de puntos de la forma representados por dicho primer segmento lineal; n2 es el número de puntos de la forma representados por dicho segundo segmento lineal; a es el ángulo entre dichos primero y segundo segmentos lineales.
    FIG. 13
ES01920430T 2000-03-17 2001-03-16 Sistema y procedimiento para la abstracción y visualización de un mapa de ruta. Expired - Lifetime ES2373095T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US727646 1985-04-26
US09/528,703 US6424933B1 (en) 2000-03-17 2000-03-17 System and method for non-uniform scaled mapping
US528703 2000-03-17
US09/727,646 US6952661B2 (en) 2000-03-17 2000-11-30 System and method for abstracting and visualizing a rout map
PCT/US2001/008440 WO2001071485A1 (en) 2000-03-17 2001-03-16 System and method for abstracting and visualizing a route map

Publications (1)

Publication Number Publication Date
ES2373095T3 true ES2373095T3 (es) 2012-01-31

Family

ID=24106798

Family Applications (1)

Application Number Title Priority Date Filing Date
ES01920430T Expired - Lifetime ES2373095T3 (es) 2000-03-17 2001-03-16 Sistema y procedimiento para la abstracción y visualización de un mapa de ruta.

Country Status (4)

Country Link
US (2) US6424933B1 (es)
AT (2) ATE528734T1 (es)
DE (1) DE60141891D1 (es)
ES (1) ES2373095T3 (es)

Families Citing this family (108)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6724392B1 (en) * 1999-03-02 2004-04-20 Microsoft Corporation System and method for placing labels on a computer-generated map
EP1266282B1 (en) 2000-03-17 2010-04-21 Microsoft Corporation System and method for non-uniform scaled mapping
US6703947B1 (en) 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
US7139819B1 (en) * 2000-10-31 2006-11-21 Verizon Laboratories Inc. Systems and methods for managing faults in a network
US7987186B1 (en) * 2000-11-06 2011-07-26 Navteq North America, Llc Method and system for wavelet-based representation and use of cartographic data
US20020087593A1 (en) * 2001-01-02 2002-07-04 Rank Paul J. Method for dynamic function loading in spreadsheets on small devices
US7062572B1 (en) * 2001-03-19 2006-06-13 Microsoft Corporation Method and system to determine the geographic location of a network user
DE10147027A1 (de) * 2001-09-25 2003-04-17 Siemens Ag Verfahren und Computerprogramm zur Erzeugung von schematisierten Netzplänen
US7440875B2 (en) * 2002-01-23 2008-10-21 M-Spatial Lmited Schematic generation
US7046827B2 (en) * 2002-02-15 2006-05-16 International Business Machines Corporation Adapting point geometry for storing address density
GB0208835D0 (en) * 2002-04-18 2002-05-29 Koninkl Philips Electronics Nv A method of labelling an image on a display
JP4094335B2 (ja) * 2002-04-26 2008-06-04 松下電器産業株式会社 地図編集表示装置、地図管理システム、地図管理方法および地図記憶媒体
CN1284098C (zh) * 2002-05-21 2006-11-08 国际商业机器公司 图中点标注位置确定装置、终端设备、系统及其方法
US7212217B1 (en) * 2002-06-12 2007-05-01 Candence Design Systems, Inc. Methods and apparatus for generating pixel data for multi-layer source images
US7190839B1 (en) 2002-06-12 2007-03-13 Cadence Design System, Inc. Methods and apparatus for generating multi-level graphics data
JP4300767B2 (ja) 2002-08-05 2009-07-22 ソニー株式会社 ガイドシステム、コンテンツサーバ、携帯装置、情報処理方法、情報処理プログラム、及び記憶媒体
US7474960B1 (en) 2002-12-30 2009-01-06 Mapquest, Inc. Presenting a travel route
US7818116B1 (en) * 2002-12-30 2010-10-19 Mapquest, Inc. Presenting a travel route in a ground-based vehicle
US7133054B2 (en) * 2004-03-17 2006-11-07 Seadragon Software, Inc. Methods and apparatus for navigating an image
US7254271B2 (en) * 2003-03-05 2007-08-07 Seadragon Software, Inc. Method for encoding and serving geospatial or other vector data as images
US7930434B2 (en) * 2003-03-05 2011-04-19 Microsoft Corporation System and method for managing communication and/or storage of image data
US7912299B2 (en) * 2004-10-08 2011-03-22 Microsoft Corporation System and method for efficiently encoding data
US7089266B2 (en) 2003-06-02 2006-08-08 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for the query and visualization of multidimensional databases
US7425968B2 (en) * 2003-06-16 2008-09-16 Gelber Theodore J System and method for labeling maps
US7765319B1 (en) * 2003-07-30 2010-07-27 Gorman Sean P System and method for analyzing the structure of logical networks
JP3898677B2 (ja) * 2003-08-28 2007-03-28 株式会社デンソー 車両用ナビゲーション装置
US7818317B1 (en) * 2003-09-09 2010-10-19 James Roskind Location-based tasks
US7756907B2 (en) 2003-09-16 2010-07-13 The Board Of Trustees Of The Leland Stanford Jr. University Computer systems and methods for visualizing data
US7379063B2 (en) * 2004-07-29 2008-05-27 Raytheon Company Mapping application for rendering pixel imagery
US7529195B2 (en) 2004-07-30 2009-05-05 Fortiusone, Inc. System and method of mapping and analyzing vulnerabilities in networks
US20060058953A1 (en) 2004-09-07 2006-03-16 Cooper Clive W System and method of wireless downloads of map and geographic based data to portable computing devices
US7800613B2 (en) * 2004-12-02 2010-09-21 Tableau Software, Inc. Computer systems and methods for visualizing data with generation of marks
US20060161335A1 (en) * 2005-01-14 2006-07-20 Ross Beinhaker Routing system and method
JP4613075B2 (ja) * 2005-02-16 2011-01-12 クラリオン株式会社 地図処理装置、ナビゲーション装置及び地図表示方法
KR100688018B1 (ko) * 2005-02-16 2007-02-27 엘지전자 주식회사 도로 명 데이터의 표시위치 결정방법
US20060218493A1 (en) * 2005-03-28 2006-09-28 Murray Keith A Method, system and device for controlling a display
US20060235941A1 (en) * 2005-03-29 2006-10-19 Microsoft Corporation System and method for transferring web page data
US7468727B2 (en) * 2005-04-19 2008-12-23 Wong Pak C Methods of visualizing graphs
DE102005018082A1 (de) * 2005-04-19 2006-10-26 Robert Bosch Gmbh Verfahren zur dreidimensionalen Darstellung einer digitalen Straßenkarte
US8103445B2 (en) * 2005-04-21 2012-01-24 Microsoft Corporation Dynamic map rendering as a function of a user parameter
US8850011B2 (en) 2005-04-21 2014-09-30 Microsoft Corporation Obtaining and displaying virtual earth images
US7711478B2 (en) * 2005-06-21 2010-05-04 Mappick Technologies, Llc Navigation system and method
US9726513B2 (en) 2005-06-21 2017-08-08 Nytell Software LLC Navigation system and method
US8670925B2 (en) 2005-06-21 2014-03-11 Calabrese Holdings L.L.C. Navigation system and method
US20070073897A1 (en) * 2005-06-21 2007-03-29 Mehdi Sharifzadeh Optimal sequenced route query operation and device
US20070022061A1 (en) * 2005-07-20 2007-01-25 Bbnt Solutions Llc Optimizing solutions using local virtual forces
US8099674B2 (en) 2005-09-09 2012-01-17 Tableau Software Llc Computer systems and methods for automatically viewing multidimensional databases
US7535473B2 (en) * 2005-09-20 2009-05-19 Erdas, Inc. Collaborative environments in a graphical information system
US20070067106A1 (en) * 2005-09-20 2007-03-22 Antoine Lennox B Streaming geometry using quasi-pyramidal structure
US20070069882A1 (en) * 2005-09-27 2007-03-29 Kamal Mahajan Intelligent exit sign
US20070088735A1 (en) * 2005-10-17 2007-04-19 International Business Machines Corporation Optimization-based visual context management
US7715980B2 (en) * 2005-11-17 2010-05-11 Microsoft Corporation Schematic destination maps
JP4841242B2 (ja) * 2005-12-15 2011-12-21 アルパイン株式会社 地図データ更新方法および地図データ更新装置
US20070229538A1 (en) * 2006-03-31 2007-10-04 Research In Motion Limited Methods and apparatus for dynamically labeling map objects in visually displayed maps of mobile communication devices
US7999809B2 (en) 2006-04-19 2011-08-16 Tableau Software, Inc. Computer systems and methods for automatic generation of models for a dataset
US7945852B1 (en) * 2006-05-19 2011-05-17 Washington State University Research Foundation Strategies for annotating digital maps
TWI311294B (en) * 2006-06-15 2009-06-21 Olemap Inc Method for modifying the electric map
EP1879001B1 (en) * 2006-07-10 2016-04-27 Harman Becker Automotive Systems GmbH Format description for a navigation database
AU2013201826B2 (en) * 2006-09-08 2016-01-21 Esri Technologies, Llc System and method for web enabled geo-analytics and image processing
WO2008031085A2 (en) 2006-09-08 2008-03-13 Fortiusone, Inc. System and method for web enabled geo-analytics and image processing
JP2008084135A (ja) * 2006-09-28 2008-04-10 Toshiba Corp 移動制御方法、移動ロボットおよび移動制御プログラム
EP2122490B1 (en) * 2007-02-13 2020-11-25 ESRI Technologies, LLC A method and system for integrating a social network and data repository to enable map creation
US7912839B1 (en) * 2007-05-31 2011-03-22 At&T Intellectual Property Ii, L.P. Method and apparatus for creating a non-uniform index structure for data
JP4367538B2 (ja) * 2007-07-17 2009-11-18 株式会社デンソー 車両用ナビゲーション装置
US20090027418A1 (en) * 2007-07-24 2009-01-29 Maru Nimit H Map-based interfaces for storing and locating information about geographical areas
DE102007060047A1 (de) * 2007-12-13 2009-06-18 Robert Bosch Gmbh Verfahren zur Bestimmung einer Route und Vorrichtung dazu
JP4506855B2 (ja) * 2008-03-05 2010-07-21 株式会社デンソー カーナビゲーションシステム
US20090244095A1 (en) * 2008-04-01 2009-10-01 Research In Motion Limited Run-time label cache for efficient map labeling
US8201089B2 (en) * 2008-07-14 2012-06-12 Google Inc. Content item selection
US8095412B1 (en) * 2008-11-03 2012-01-10 Intuit Inc. Method and system for evaluating expansion of a business
US20130117909A1 (en) * 2009-01-20 2013-05-16 Matthew Paas System and method of associating a personalized article of clothing displaying travel history with information related to a person wearing the article of clothing
US8587617B2 (en) * 2009-02-04 2013-11-19 Raytheon Company Apparatus and method for map zooming
GB0907719D0 (en) * 2009-05-05 2009-06-10 Electric Mapping The Company Ltd Electronic map generation
US8269797B2 (en) * 2009-08-03 2012-09-18 Ricoh Company, Ltd. Appropriately scaled map display with superposed information
US8489331B2 (en) 2010-04-29 2013-07-16 Microsoft Corporation Destination maps user interface
US9429445B2 (en) * 2010-11-02 2016-08-30 Telenav, Inc. Navigation system with communication identification based destination guidance mechanism and method of operation thereof
US8581907B2 (en) 2011-03-07 2013-11-12 Microsoft Corporation Set visualizations
US9223905B2 (en) * 2011-03-25 2015-12-29 Schneider Electric It Corporation Systems and methods for predicting fluid dynamics in a data center
US9400835B2 (en) * 2011-07-28 2016-07-26 Nokia Technologies Oy Weighting metric for visual search of entity-relationship databases
US9225944B2 (en) 2011-09-08 2015-12-29 Schneider Electric It Corporation Method and system for displaying a coverage area of a camera in a data center
US8274524B1 (en) 2011-09-28 2012-09-25 Google Inc. Map rendering using interpolation of style parameters across zoom levels
US9043722B1 (en) 2012-06-19 2015-05-26 Surfwax, Inc. User interfaces for displaying relationships between cells in a grid
US9383448B2 (en) 2012-07-05 2016-07-05 Deca System Co., Ltd. Golf GPS device with automatic hole recognition and playing hole selection
KR102150289B1 (ko) * 2012-08-30 2020-09-01 삼성전자주식회사 사용자 단말에서 사용자 인터페이스 장치 및 이를 지원하는 방법
US9424318B2 (en) 2014-04-01 2016-08-23 Tableau Software, Inc. Systems and methods for ranking data visualizations
US20150278214A1 (en) 2014-04-01 2015-10-01 Tableau Software, Inc. Systems and Methods for Ranking Data Visualizations Using Different Data Fields
US9613102B2 (en) 2014-04-01 2017-04-04 Tableau Software, Inc. Systems and methods for ranking data visualizations
US10538250B2 (en) * 2014-07-23 2020-01-21 Here Global B.V. Road geometry generation from sparse data
US9779544B2 (en) 2014-12-23 2017-10-03 Google Inc. Labeling for three-dimensional occluded shapes
US9874451B2 (en) * 2015-04-21 2018-01-23 Here Global B.V. Fresh hybrid routing independent of map version and provider
US10672155B2 (en) 2016-08-17 2020-06-02 International Business Machines Corporation Non-linear, multi-resolution visualization of a graph
US10896297B1 (en) 2017-12-13 2021-01-19 Tableau Software, Inc. Identifying intent in visual analytical conversations
US11586915B2 (en) 2017-12-14 2023-02-21 D-Wave Systems Inc. Systems and methods for collaborative filtering with variational autoencoders
US11055489B2 (en) 2018-10-08 2021-07-06 Tableau Software, Inc. Determining levels of detail for data visualizations using natural language constructs
CN109558667B (zh) * 2018-11-23 2023-07-14 珠海一微半导体股份有限公司 一种基于布线阻塞的优化方法
US11900264B2 (en) 2019-02-08 2024-02-13 D-Wave Systems Inc. Systems and methods for hybrid quantum-classical computing
US11625612B2 (en) * 2019-02-12 2023-04-11 D-Wave Systems Inc. Systems and methods for domain adaptation
US10621770B1 (en) * 2019-02-26 2020-04-14 ForeFlight LLC Method and system for labeling line features in electronic maps
US11314817B1 (en) 2019-04-01 2022-04-26 Tableau Software, LLC Methods and systems for inferring intent and utilizing context for natural language expressions to modify data visualizations in a data visualization interface
US11042558B1 (en) 2019-09-06 2021-06-22 Tableau Software, Inc. Determining ranges for vague modifiers in natural language commands
CN111259105B (zh) * 2020-02-10 2023-09-01 中国神华能源股份有限公司神朔铁路分公司 地图显示方法、装置、系统和存储介质
CN114363824B (zh) * 2021-05-26 2023-08-08 科大国创云网科技有限公司 一种基于mr位置和道路gis信息的通勤轨迹刻画方法及系统
CN114218888B (zh) * 2022-02-22 2022-05-10 北京智芯仿真科技有限公司 一种集成电路版图电流密度超标区域标定方法及系统
CN114791940B (zh) * 2022-06-23 2022-09-27 四川见山科技有限责任公司 一种数字孪生城市中道路名称计算方法、设备及系统
CN115238525B (zh) * 2022-09-16 2023-04-18 广东工业大学 一种用于行人仿真客流组织的可行路径搜索方法
CN116912446B (zh) * 2023-09-13 2023-12-08 南京邮电大学 基于自闭合正交多边形的遥感建筑物样本快速采集方法
CN116977480B (zh) * 2023-09-21 2023-12-12 湖北大学 一种尺度相关的异质性线要素自动分段方法及系统
CN117251380B (zh) * 2023-11-10 2024-03-19 中国人民解放军国防科技大学 一种面向单调流式图的优先级异步调度方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5948040A (en) * 1994-06-24 1999-09-07 Delorme Publishing Co. Travel reservation information and planning system
US5848374A (en) * 1995-03-06 1998-12-08 Nippon Telegraph And Telephone Corporation Map information processing method and apparatus for correlating road location on a road network map
JP3568621B2 (ja) * 1995-04-20 2004-09-22 株式会社日立製作所 地図表示装置
KR100278972B1 (ko) 1996-08-21 2001-01-15 모리 하루오 네비게이션장치
KR100219161B1 (ko) * 1996-10-23 1999-09-01 윤종용 지도데이타 인덱스구축/검색방법 및 이를 적용한 지도데이타베이스운용시스템
JP3644473B2 (ja) 1997-08-07 2005-04-27 アイシン・エィ・ダブリュ株式会社 地図表示装置及び記録媒体
EP1266282B1 (en) 2000-03-17 2010-04-21 Microsoft Corporation System and method for non-uniform scaled mapping

Also Published As

Publication number Publication date
ATE465474T1 (de) 2010-05-15
DE60141891D1 (de) 2010-06-02
US6952661B2 (en) 2005-10-04
ATE528734T1 (de) 2011-10-15
US20010034588A1 (en) 2001-10-25
US6424933B1 (en) 2002-07-23

Similar Documents

Publication Publication Date Title
ES2373095T3 (es) Sistema y procedimiento para la abstracción y visualización de un mapa de ruta.
US7496484B2 (en) System and method for abstracting and visualizing a route map
US5684940A (en) Computer-implemented method and apparatus for automatically labeling area regions of maps using two-step label placing procedure and for curved labeling of point features
JP4875240B2 (ja) ポリゴン道路ネットワークデータ作成装置、道路地図表示装置及び方法
CN102692232B (zh) 数字地图中的路标
EP1855263B1 (en) Map display device
US20050107993A1 (en) Schematic generation
JP3933929B2 (ja) ナビゲーション装置
CN102867057B (zh) 一种基于视觉定位的虚拟向导构建方法
KR20080072668A (ko) 지리와 관련된 목적지로의 방향을 제공하는 것을 용이하게해주는 시스템, 및 기계 구현 시스템, 및 지도를 생성하는것을 용이하게 해주는 기계 구현 방법
CN108519094A (zh) 局部路径规划方法及云处理端
Agrawala Visualizing route maps
Bartelme Geographic information systems
CN109598792B (zh) 三维场景中建筑物注记的自动放置方法
Kim et al. A road generalization method using layered stroke networks
Chen et al. Adaptive multi-resolution labeling in virtual landscapes
Zhu Enrichment of routing map and its visualization for multimodal navigation
Brewer et al. Multiscale design for the national map of the United States: Road thinning for topographic mapping
Viau et al. Polygon vector map distortion for increasing the readability of one-to-many flow maps
Schwartges Dynamic label placement in practice
Ramamoorthy et al. Regional GIS-based Location Map with 3-D Projection for Multistoried Buildings
Gemsa Schematized Visualizations of Shortest Paths in Road Networks.
Kleffner Visualization and Modeling of Multivariate Data in Environmental Applications
Röger et al. Visualizing the Complexity of Crossings using Star-Plot Maps
CN117556158A (zh) 耦合地名标签与等值线的用户周边地点可视化方法及系统