GMLib – Google Maps Library

 

GMLib - Google Maps LibraryGNU LGPL

Última actualización el 23 setiembre 2015

Versión: 1.5.3.

english flag Versión en inglés.

Introducción

GMLib (Google Maps Library) son una serie de componentes para Delphi/C++ Builder que encapsulan el API de Google Maps y así poder gestionar los mapas de Google de forma sencilla mostrando el resultado en un navegador (TWebBrowser). Enlaces de interés:

Índice

General

Eventos

Componentes

Clases de soporte

Ayúdame a ayudarte

¿Te gustan los componentes? ¿Te han servido de ayuda y/o te han facilitado el trabajo? Si la respuesta es sí, entonces ayúdame a seguir ayudándote con una pequeña colaboración para seguir comprando coca-colas para esas noches de insomnio 😛

Gracias por tu comprensión y aportación a la causa 😉


Descargar

Puedes descargarlos desde los siguientes enlaces:

Puedes descargar también los binarios de las demos aquí.


Versiones testeadas

Actualmente, la GMLib está compilada en las siguientes versiones de Delphi/C++Builder

  • Delphi 6
  • Delphi 7
  • Delphi 2007
  • Delphi 2009
  • Delphi 2010
  • RAD Studio XE
  • RAD Studio XE2
  • RAD Studio XE3
  • RAD Studio XE4
  • RAD Studio XE5
  • RAD Studio XE6
  • RAD Studio XE7
  • RAD Studio XE8
  • RAD Studie Seattle 10

Instalación

Para las referencias de instalación, ver el archivo Install.txt que se encuentra en el directorio raíz de los componentes.


¿Qué hay en el paquete?

En el paquete encontraremos las siguientes carpetas o archivos:

  • \ChangesLog.txt
  • \Install.txt
  • \ProjectGroup por cada versión de Delphi
  • \Demos=> carpeta para las demostraciones
  • \Docs => documentación en formato OO de las clases de la API de Google Maps que han intervenido en la creación de los componentes.
    • \Classes => uml de las clases realizado con el programa WhiteStarUML.
    • \GMDoc => archivos para realizar la ayuda con el programa DelphiCodeToDoc y la ayuda en español y inglés en formato CHM.
  • \dpk => paquetes de los componentes.
  • \lib => unidades compiladas de los componentes (una carpeta por cada versión).
  • \Licence => licencia. GNU LESSER GENERAL PUBLIC LICENSE v3.
  • \Resources => recursos como imágenes, ficheros de recursos o el HTML del mapa.
  • \src => fuentes de los componentes.

Histórico de versiones


Diagrama general de clases


Leyenda

Descripción de símbolos que nos encontraremos en esta ayuda.

Símbolo Visibilidad
+ Public
* Published
Deprecated

 


Eventos

Evento Descripción
TAfterPageLoaded (+) El evento AfterPageLoaded se dispara cuando se carga el código HTML base (parámetro First a true) y cada vez que se carga el mapa (parámetro First a false). Más información
TAfterPageLoaded = procedure(Sender: TObject; First: Boolean) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
First A true cuando se carga el código HTML base. A false cuando se carga el mapa de Google Maps.
TBoundsChanged (+) El evento OnBoundsChanged se dispara cuando cambia el límite del mapa. Más información
TBoundsChanged = procedure(Sender: TObject; NewBounds: TLatLngBounds) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
NewBounds Nuevos límites del mapa.
TLatLngEvent (+) El evento TLatLngEvent se usa para los eventos que devuelven una lat/lng en formato de TLatLng y X e Y. Más información
TLatLngEvent = procedure(Sender: TObject; LatLng: TLatLng; X, Y: Double) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
LatLng Coordenadas lat/lng.
X Coordenada X.
Y Coordenada Y.
TMapTypeIdChanged (+) El evento TMapTypeIdChanged se dispara cuando la propiedad MapTypeId cambia. Más información
TMapTypeIdChanged = procedure(Sender: TObject; NewMapTypeId: TMapTypeId) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
NewMapTypeId El nuevo MapTypeId.

TMapTypeId = (mtHYBRID, mtROADMAP, mtSATELLITE, mtTERRAIN);
TPanoramioClick (+) El evento OnPanoramioClick se dispara cuando se pulsa alguna característica de la capa. Más información
TPanoramioClick = procedure(Sender: TObject; LatLng: TLatLng; PanoramioFeature: TPanoramioFeature) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
LatLng Coordenadas lat/lng.
PanoramioFeature Objeto TPanoramioFeature que contiene información acerca de la característica pulsada.
TWeatherClick (+) El evento OnWeatherClick se dispara cuando se pulsa alguna característica de la capa del tiempo. Más información
TWeatherClick = procedure(Sender: TObject; LatLng: TLatLng; FeatureDetails: TWeatherFeature) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
LatLng Coordenadas lat/lng.
FeatureDetails Objeto TWeatherFeature que contiene información acerca de la característica pulsada.
TZoomChanged (+) El evento TZoomChanged se dispara cuando la propiedad Zoom cambia. Más información
TZoomChanged = procedure(Sender: TObject; NewZoom: Integer) of object;
Parámetro Descripción
Sender Objeto al que pertenece.
NewZoom El nuevo zoom.
TOnLoadFile (*) El evento TOnLoadFile se dispara al cargar cada una de las filas del archivo CSV. Más información
TOnLoadFile = procedure (Sender: TCustomGMMarker; Marker: TCustomMarker; Current, Count: Integer; 
  var Stop: Boolean) of object;
Parámetro Descripción
Sender Objecto propietario del elemento de la colección.
Marker Nuevo marcador.
Current Fila actual.
Count Cantidad de filas.
Stop True para detener el proceso.
TAfterLoadFile (*) El evento TAfterLoadFile se dispara al terminar de cargar el archivo CSV. Más información
TAfterLoadFile = procedure (Sender: TCustomGMMarker; Loaded, Count: Integer) of object;
Parámetro Descripción
Sender Objecto propietario del elemento de la colección.
Loaded Número de filas cargadas.
Count Cantidad de filas.
TLatLngIdxEvent (*) El evento TLatLngIdxEvent se dispara cuando cambia una propiedad de un elemento de la colección relacionado a una TLatLng. Más información
TLatLngIdxEvent = procedure(Sender: TObject; LatLng: TLatLng; Index: Integer; 
  LinkedComponent: TLinkedComponent) of object;
Parámetro Descripción
Sender Objecto propietario del elemento de la colección.
LatLng Nueva LatLng del elemento de la colección.
Index Índice dentro del array de elementos.
LinkedComponent Elemento de la colección que cambia.
TLinkedComponentChange (*) El evento TLinkedComponentChange se dispara cuando cambia una propiedad de un elemento de la colección. Más información
TLinkedComponentChange = procedure(Sender: TObject; Index: Integer; 
  LinkedComponent: TLinkedComponent) of object;
Parámetro Descripción
Sender Objecto propietario del elemento de la colección.
Index Índice dentro del array de elementos.
LinkedComponent Elemento de la colección que cambia.
TParseData (*) El evento TParseData se dispara en cada iteración de la lectura del archivo XML. Más información
TParseData = procedure(Sender: TObject; ActualNode, CountNodes: Integer; var Continue: Boolean) of object;
Parámetro Descripción
Sender Objecto propietario del elemento de la colección.
ActualNode Nodo XML actual.
CountNodes Cantidad de nodos a procesar.
Continue Si queremos continuar con el proceso.

 


Clase TGMMap

Descripción Clase para el acceso al mapa de Google Maps especializada para el navegador TWebBrowser. Más información en Map class Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TCustomGMMap -> TCustomGMMapVCL -> TGMMap Propiedades

Propiedad Tipo Descripción
WebBrowser (*) TWebBrowser Navegador donde se mostrará el mapa de Google Maps.
Heredadas de TCustomGMMapVCL
VisualProp (*) TVisualProp Opciones de configucación visual.
Heredadas de TCustomGMMap
Active (*) Boolean Activa o desactiva el acceso al mapa.
IntervalEvents (*) Integer Intervalo de tiempo para comprovar los eventos del mapa.
Layers (*) TLayers Capas de Google Maps.
NonVisualProp (*) TNonVisualProp Opciones de configucación no visuales.
Precision (*) Integer Precisión para los valores de latitud y longitud. 0 = Max precisión, 1..17 decimales de precisión.
RequiredProp (*) TRequiredProp Opciones de configucación requeridas.
StreetView (*) TStreetView Características del panorama StreetView.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Heredadas de TCustomGMMapVCL
SaveToJPGFile (+) El método SaveToJPGFile crea una imagen JPG de la página cargada. Más información
procedure SaveToJPGFile(FileName: TFileName = ''); override;
Parámetro Descripción
FileName Nombre del archivo JPG.
Heredadas de TCustomGMMap
DoMap (+) Crea el mapa con las opciones especificadas. Más información
procedure DoMap; virtual;
GetCenter (+) Devuelve la posición mostrada en el centro del mapa. Más información
procedure GetCenter(LL: TLatLng);
Parámetro Descripción
LL Centro del mapa.
GetMapTypeId (+) Devuelve el MapTypeId del mapa. Más información
function GetMapTypeId: TMapTypeId;
Devuelve MapTypeId del mapa

TMapTypeId = (mtHYBRID, mtROADMAP, mtSATELLITE, mtTERRAIN);
GetZoom (+) Devuelve el zoom del mapa. Más información
function GetZoom: Integer;
Devuelve Zoom del mapa
LatLngBoundsContains (+) Devuelve true si la lat/lng dada está dentro de los límites. Más información
function LatLngBoundsContains(Lat, Lng: Real; LLB: TLatLngBounds): Boolean; overload;
Parámetro Descripción
Lat Latitud a comprobar.
Lng Longitud a comprobar.
LLB Límites donde mirar.
Devuelve True si la lat/lng dada está dentro de los límites.
LatLngBoundsContains (+) Devuelve true si la TLatLng dada está dentro de los límites. Más información
function LatLngBoundsContains(LatLng: TLatLng; LLB: TLatLngBounds): Boolean; overload;
Parámetro Descripción
LatLng TLatLng a comprobar.
LLB Límites donde mirar.
Devuelve True si la TLatLng dada está dentro de los límites
MapLatLngBoundsContains (+) Devuelve true si la TLatLng dada está dentro de los límites del mapa. Más información
function MapLatLngBoundsContains(LatLng: TLatLng): Boolean; overload;
Parámetro Descripción
LatLng TLatLng a comprobar.
Devuelve True si la TLatLng dada está dentro de los límites del mapa.
LatLngBoundsExtend (+) Extiende los límites hasta contener el punto dado. Más información
procedure LatLngBoundsExtend(LatLng: TLatLng; LLB: TLatLngBounds); overload;
Parámetro Descripción
LatLng TLatLng a contener.
LLB TLatLngBounds donde se almacenará la información.
LatLngBoundsExtend (+) Extiende los límites hasta contener el punto dado. Más información
procedure LatLngBoundsExtend(Lat, Lng: Real; LLB: TLatLngBounds); overload;
Parámetro Descripción
Lat Latitud a contener.
Lng Longitud a contener.
LLB TLatLngBounds donde se almacenará la información.
MapLatLngBoundsExtend (+) Extiende los límites del mapa hasta contener el punto dado. Más información
procedure MapLatLngBoundsExtend(LatLng: TLatLng; LLB: TLatLngBounds); overload;
Parámetro Descripción
LatLng TLatLng a contener.
LLB TLatLngBounds donde se almacenará los nuevos límites del mapa.
LatLngBoundsGetBounds (+) Devuelve los límites del mapa. Más información
procedure LatLngBoundsGetBounds(LLB: TLatLngBounds); overload;
Parámetro Descripción
LLB TLatLngBounds donde se almacenará la información.
LatLngBoundsGetCenter (+) Calcula el centro del TLatLngBounds. Más información
procedure LatLngBoundsGetCenter(LLB: TLatLngBounds; LL: TLatLng);
Parámetro Descripción
LLB TLatLngBounds donde mirar.
LL TLatLng que representa el centro.
LatLngBoundsSetBounds (+) Establece unos nuevos límites al mapa. Más información
procedure LatLngBoundsSetBounds(SWLat, SWLng, NELat, NELng: Real); overload;
Parámetro Descripción
SWLat Latitud suroeste de los límites.
SWLng Longitud suroeste de los límites.
NELat Latitud noreste de los límites.
NELng Longitug noreste de los límites.
LatLngBoundsSetBounds (+) Establece unos nuevos límites al mapa. Más información
procedure LatLngBoundsSetBounds(Bounds: TLatLngBounds); overload;
Parámetro Descripción
Bounds Nuevos límites.
LatLngBoundsToSpan (+) Convierte los límites del mapa en una extensión TLatLng. Más información
procedure LatLngBoundsToSpan(LL: TLatLng);
Parámetro Descripción
LL El TLatLng.
PanBy (+) Cambia el centro del mapa en la distancia dada en píxels. Más información
procedure PanBy(x, y: Integer);
Parámetro Descripción
x Número de píxels a moverse en el eje x.
y Número de píxels a moverse en el eje y.
PanTo (+) Cambia el centro del mapa con la lat/lng dada. Más información
procedure PanTo(const Lat, Lng: Real); overload;
Parámetro Descripción
Lat Nueva latitud para el centro.
Lng Nueva longitud para el centro.
PanTo (+) Cambia el centro del mapa con la TLatLng dada. Más información
procedure PanTo(LatLng: TLatLng); overload;
Parámetro Descripción
LatLng Nuevo centro.
PrintNoDialog (+) El método PrintNoDialog imprime la página cargada directamente. Sólo para TWebBrowser. Más información
procedure PrintNoDialog; virtual;
PrintPageSetup (+) El método PrintPageSetup muestra el cuadro de diálogo de configuración de página antes de imprimir la página cargada. Sólo para TWebBrowser. Más información
procedure PrintPageSetup; virtual;
PrintPreview (+) El método PrintPreview muestra una vista previa antes de imprimir la página cargada. Sólo para TWebBrowser. Más información
procedure PrintPreview; virtual;
PrintWithDialog (+) El método PrintWithDialog muestra el cuadro de diálogo de impresión antes de imprimir la página cargada. Más información
procedure PrintWithDialog; virtual;
SaveToJPGFile (+) El método SaveToJPGFile crea una imagen JPG de la página cargada. Más información
procedure SaveToJPGFile(FileName: TFileName = ''); virtual; abstract;
Parámetro Descripción
FileName Es el nombre del archivo JPG.
SetCenter (+) Cambia el centro del mapa con la lat/lng dada. Más información
procedure SetCenter(const Lat, Lng: Real); overload;
Parámetro Descripción
Lat Nueva latitud para el centro.
Lng Nueva longitud para el centro.
SetCenter (+) Cambia el centro del mapa con la TLatLng dada. Más información
procedure SetCenter(LatLng: TLatLng); overload;
Parámetro Descripción
LatLng Nuevo centro.

Eventos

Evento Tipo Descripción
Heredados de TCustomGMMap
AfterPageLoaded (*) TAfterPageLoaded El evento AfterPageLoaded se dispara cuando se carga el código HTML base (parámetro First a true) y cada vez que se carga el mapa (parámetro First a false).
OnActiveChange (*) TNotifyEvent El evento OnActiveChange se dispara cuando cambia la propiedad Active.
OnBoundsChanged (*) TBoundsChanged El evento OnBoundsChanged se dispara cuando cambia el límite del mapa.
OnCenterChanged (*) TLatLngEvent El evento OnCenterChanged se dispara cuando cambia el centro del mapa.
OnClick (*) TLatLngEvent El evento OnClick se dispara cuando se pulsa en el mapa.
OnDblClick (*) TLatLngEvent El evento OnDblClick se dispara cuando se hace una doble pulsación en el mapa.
OnDrag (*) TNotifyEvent El evento OnDrag se dispara repetidamente mientras se arrastra el mapa.
OnDragEnd (*) TNotifyEvent El evento OnDragEnd se dispara cuando el usuario finaliza el arrastrado del mapa.
OnDragStart (*) TNotifyEvent El evento OnDragStart se dispara cuando el usuario empieza a arrastrar el mapa.
OnIntervalEventsChange (*) TNotifyEvent El evento OnIntervalEventsChange se dispara cuando cambia la propiedad IntervalEvents.
OnMapTypeIdChanged (*) TMapTypeIdChanged El evento OnMapTypeIdChanged se dispara cuando cambia la propiedad MapTypeId.
OnMouseMove (*) TLatLngEvent El evento OnMouseMove se dispara cuando el ratón del usuario se desplaza por encima del mapa.
OnMouseOut (*) TLatLngEvent El evento OnMouseOut se dispara cuando el ratón del usuario sale del mapa.
OnMouseOver (*) TLatLngEvent El evento OnMouseOver se dispara cuando el ratón del usuario entra en el mapa.
OnPanoramioClick (*) TPanoramioClick El evento OnPanoramioClick se dispara cuando se pulsa alguna característica de la capa.
OnPrecisionChange (*) TNotifyEvent El evento OnPrecisionChange se dispara cuando cambia la propiedad Precision.
OnRightClick (*) TLatLngEvent El evento OnRightClick se dispara cuando se pulsa el botón derecho del ratón.
OnWeatherClick (*) TWeatherClick El evento OnWeatherClick se dispara cuando se pulsa alguna característica de la capa del tiempo.
OnZoomChanged (*) TZoomChanged El evento OnZoomChanged se dispara cuando cambia la propiedad Zoom.

 


Clase TLayers

Descripción Clase interna que engloba todos los layers de la API de Google Maps. Herencia TObject -> TPersistent -> TLayers Propiedades

Propiedad Tipo Descripción
Bicycling (*) TBicycling Objeto que contiene las propiedades del layer Bicycling.
Panoramio (*) TPanoramio Objeto que contiene las propiedades del layer Panoramio.
Traffic (*) TTraffic Objeto que contiene las propiedades del layer Traffic.
Transit (*) TTransit Objeto que contiene las propiedades del layer Transit.
Weather (*) TWeather Objeto que contiene las propiedades del layer Weather.

 


Clase TBicycling

Descripción Clase que encapsula la capa Bicycling. Más información en BicyclingLayer Herencia TObject -> TPersistent -> TBicycling Propiedades

Propiedad Tipo Descripción
Show (*) Boolean Muestra la capa. A true, se muestra la capa, a false se oculta.

 


Clase TPanoramio

Descripción Clase que encapsula la capa Panoramio. Más información en The Panoramio Layer (Library) o en PanoramioLayer Herencia TObject -> TPersistent -> TPanoramio Propiedades

Propiedad Tipo Descripción
Clickable (*) Boolean Establece clicables las photos de Panoramio.
Filtered (*) Boolean Activa el filtro.
FilterTag (*) string Filtro para las fotos de Panoramio mediante la etiqueta Tag.
FilterUserId (*) string Filtro para las fotos de Panoramio mediante la etiqueta UserId.
Show (*) Boolean Muestra la capa. A true, se muestra la capa, a false se oculta.

 


Clase TTraffic

Descripción Clase que encapsula la capa Traffic. Más información en The Traffic Layer o en TrafficLayer class Herencia TObject -> TPersistent -> TTraffic Propiedades

Propiedad Tipo Descripción
Show (*) Boolean Muestra la capa. A true, se muestra la capa, a false se oculta.

 


Clase TTransit

Descripción Clase que encapsula la capa Transit. Más información en The Transit Layer o en TransitLayer class Herencia TObject -> TPersistent -> TTransit Propiedades

Propiedad Tipo Descripción
Show (*) Boolean Muestra la capa. A true, se muestra la capa, a false se oculta.

 


Clase TWeather

Descripción Clase que encapsula la capa Weather. Más información en The Weather and Cloud Layers (Library) o en WeatherLayer class Herencia TObject -> TPersistent -> TWeather Propiedades

Propiedad Tipo Descripción
Clickable (*) Boolean Indica si la capa es o no clicable.
LabelColor (*) TLabelColor Color de las etiquetas sobre la capa weather. Ver valores
TLabelColor = (lcBLACK, lcWHITE);
Show (*) Boolean Muestra la capa. A true, se muestra la capa, a false se oculta.
SuppressInfoWindows (*) Boolean Suprime el procesamiento de las ventanas de información cuando se hace clic en los iconos del tiempo.
TemperatureUnit (*) TTemperatureUnit Unidad usada para la temperatura. Ver valores
TTemperatureUnit = (tuCELSIUS, tuFAHRENHEIT);
WindSpeedUnit (*) TWindSpeedUnit Unidad usada para la velocidad del viento. Ver valores
TWindSpeedUnit = (wsKILOMETERS_PER_HOUR, wsMETERS_PER_SECOND, wsMILES_PER_HOUR);

 


Clase TNonVisualProp

Descripción Clase que contiene las propiedades no visuales de un mapa de Google Maps. Herencia TObject -> TPersistent -> TNonVisualProp Propiedades

Propiedad Tipo Descripción
MapMaker (*) Boolean A true si se debe usar el mosaico MapMaker en lugar del mosaico normal.
MaxZoom (*) Integer Nivel de zoom máximo que será mostrado en el mapa.
MinZoom (*) Integer Nivel de zoom mínimo que será mostrado en el mapa.
Options (*) TBoolOptions Conjunto de opciones booleanas. Ver valores
TBoolOptions = set of TBoolOption;
TBoolOption = (DisableDoubleClickZoom, Draggable, KeyboardShortcuts, NoClear, ScrollWheel);

 


Clase TRequiredProp

Descripción Clase que contiene las propiedades requeridas de un mapa de Google Maps. Herencia TObject -> TPersistent -> TRequiredProp Propiedades

Propiedad Tipo Descripción
Center (*) TLatLng Contiene las coordenadas lat/lng con el centro del mapa.
MapType (*) TMapTypeId Indica la vista del mapa. Ver valores
TMapTypeId = (mtHYBRID, mtROADMAP, mtSATELLITE, mtTERRAIN);
Zoom (*) Integer Indica el zoom con el que se mostrará el mapa. Valores entre 0 y 15.

 


Clase TLatLng

Descripción Un Latng es un punto en coordenadas geográficas: latitud y longitud. Más información en LatLng class Herencia TObject -> TPersistent -> TLatLng Propiedades

Propiedad Tipo Descripción
Lat (*) Real Latitud en grados.
Lng (*) Real Longitud en grados.

Métodos

Método Descripción
Create (+) Constructor de la clase. Más información
constructor Create(Lat: Real = 0; Lng: Real = 0); virtual;
Parámetro Descripción
Lat Latitud. Por defecto 0.
Lng Longitud. Por defecto 0.
IsEqual (+) Devuelve True si la LatLng es igual a la pasada por parámetro. Más información
function IsEqual(Other: TLatLng): Boolean; virtual;
Parámetro Descripción
Other LatLng a comparar
Devuelve True si son iguales, False en caso contrario.
LatToStr (+) Combierte el valor de Lat en una cadena. Más información
function LatToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión del valor. Por defecto 6.
Devuelve Cadena con la latitud.
LngToStr (+) Combierte el valor de Lng en una cadena. Más información
function LngToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión del valor. Por defecto 6.
Devuelve Cadena con la longitud.
StringToReal (+) Dado una cadena, la convierte en un valor real teniendo en cuenta la configuración regional. Más información
function StringToReal(Value: string): Real;
Parámetro Descripción
Value Cadena a convertir a real.
Devuelve Real con la conversión.
ToStr (+) Combierte la LatLng en una cadena. Más información
function ToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión de los valores. Por defecto 6.
Devuelve Cadena con la latlng.
ToUrlValue (+) Devuelve una cadena con el formato «lat,lng» para la actual LatLng. Por defecto se redondean a 6 decimales los valores lat/lng. Más información
function ToUrlValue(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión de los valores. Por defecto 6.
Devuelve Cadena con la latlng formateada.

Eventos

Evento Tipo Descripción
OnChange (+) TNotifyEvent El evento OnChange se dispara cuando Lat o Lng cambia.

 


Clase TLatLngBounds

Descripción Una instancia de la clase LatLngBounds representa un rectángulo en coordenadas geográficas. Más información en LatLngBounds class Herencia TObject -> TPersistent -> TLatLngBounds Propiedades

Propiedad Tipo Descripción
NE (*) TLatLng Coordenadas noreste.
SW (*) TLatLng Coordenadas suroeste.

Métodos

Método Descripción
Create (+) Constructor de la clase. Más información
constructor Create(SWLat: Real = 0; SWLng: Real = 0; NELat: Real = 0; NELng: Real = 0); overload; virtual;
Parámetro Descripción
SWLat Latitud suroeste. Por defecto 0.
SWLng Longitud suroeste. Por defecto 0.
NELat Latitud noreste. Por defecto 0.
NELng Longitud noreste. Por defecto 0.
Create (+) Constructor de la clase. Más información
constructor Create(SW, NE: TLatLng); overload; virtual;
Parámetro Descripción
SW Esquena suroeste.
NE Esquena noreste.
IsEqual (+) Devuelve True si los límites son iguales a los pasados por parámetro. Más información
function IsEqual(Other: TLatLngBounds): Boolean;
Parámetro Descripción
Other Límites a comparar.
Devuelve True si son iguales, False en caso contrario
ToStr (+) Combierte los límites en una cadena. Más información
function ToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión de los valores. Por defecto 6.
Devuelve Cadena con los límites.
ToUrlValue (+) Devuelve una cadena con el formato «lat_lo,lng_lo,lat_hi,lng_hi» para los límites actuales, donde «lo» corresponde a la esquena suroeste de los límites y «hi» corresponde a la esquina noreste de los límites. Más información
function ToUrlValue(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión de los valores. Por defecto 6.
Devuelve Cadena formateada.

 


Clase TPanoramioFeature

Descripción Clase que encapsula las caracretísticas de Panoramio. Más información en PanoramioFeature object specification. Herencia TObject -> TPanoramioFeature Propiedades

Propiedad Tipo Descripción
Author (+) string Autor de la foto.
PhotoId (+) string Id de la foto.
Title (+) string Título de la foto.
Url (+) string Enlace de la foto.
UserId (+) string Id del usuario de la foto.

 


Clase TWeatherFeature

Descripción Clase que encapsula las características metereológicas. Más información en WeatherFeature object specification. Herencia TObject -> TWeatherFeature Propiedades

Propiedad Tipo Descripción
Count (+) Integer Cantidad de Forecast.
Current (+) TWeatherConditions Condiciones meterielógicas actuales en una determinada hubicación.
Forecast (+) [Index: Integer]: TWeatherForecast Pronóstico de las condiciones metereológicas para los siguientes cuatro días. La proyección es siempre cronológica.
Location (+) string Nombre de la hubicación de esta característica.
TemperatureUnit (+) TTemperatureUnit Unidad de temperatura usada. Ver valores
TTemperatureUnit = (tuCELSIUS, tuFAHRENHEIT);
WindSpeedUnit (+) TWindSpeedUnit Unidades de velocidad usada. Ver valores
TWindSpeedUnit = (wsKILOMETERS_PER_HOUR, wsMETERS_PER_SECOND, wsMILES_PER_HOUR);

 


Clase TWeatherConditions

Descripción Clase que encapsula las condiciones meteriológicas. Más información en WeatherConditions object specification. Herencia TObject -> TWeatherConditions Propiedades

Propiedad Tipo Descripción
Day (+) string Día actual de la semana en formato largo.
Description (+) string Descripción de las condiciones.
High (+) Integer Temperatura más alta alcanzada del día.
Humidity (+) Integer Humedad actual expresada en porcentaje.
Low (+) Integer Temperatura mínima alcanzada durante el día.
ShortDay (+) string Día actual de la semana en formato corto.
Temperature (+) Integer Temperatura actual expresada en la unidad de temperatura especificada.
WindDirection (+) string Dirección del viento actual.
WindSpeed (+) Integer Velocidad del viento actual expresado en la unidad de viento especificada.

 


Clase TWeatherForecast

Descripción Clase que encapsula la previsión metereológica. Más información en WeatherForecast object specification. Herencia TObject -> TWeatherForecast Propiedades

Propiedad Tipo Descripción
Day (+) string Día actual de la semana en formato largo.
Description (+) string Descripción de las condiciones.
High (+) Integer Temperatura más alta alcanzada del día.
Low (+) Integer Temperatura mínima alcanzada durante el día.
ShortDay (+) string Día actual de la semana en formato corto.

 


Clase TVisualProp

Descripción Clase interna que contendrá las propiedades visuales de un mapa de Google Maps. Herencia TObject -> TPersistent -> TCustomVisualProp -> TVisualProp Propiedades

Propiedad Tipo Descripción
BGColor (*) TColor Color usado de fondo del Mapa cuando los mosaicos aun no han sido cargados.
Heredadas de TCustomVisualProp
MapTypeCtrl (*) TMapTypeControlOptions Opciones para el control MapTypeControl.
OverviewMapCtrl (*) TOverviewMapControlOptions Opciones para el control OverviewMapControl.
PanCtrl (*) TPanControlOptions Opciones para el control PanControl.
RotateCtrl (*) TRotateControlOptions Opciones para el control RotateControl.
ScaleCtrl (*) TScaleControlOptions Opciones para el control ScaleControl.
StreetViewCtrl (*) TStreetViewControlOptions Opciones para el control StreetViewControl.
ZoomCtrl (*) TZoomControlOptions Opciones para el control ZoomControl.

 


Clase TMapTypeControlOptions

Descripción Clase interna que contendrá las opciones del MapTypeControl del mapa. Más información en MapTypeControlOptions object specification. Herencia TObject -> TPersistent -> TMapTypeControlOptions Propiedades

Propiedad Tipo Descripción
MapTypeIds (*) TMapTypeIds Conjunto de todos los MapTypeId. Ver valores
TMapTypeIds = set of TMapTypeId;
TMapTypeId = (mtHYBRID, mtROADMAP, mtSATELLITE, mtTERRAIN);
Position (*) TControlPosition Posición del control dentro del mapa. Ver valores
  TControlPosition = (cpBOTTOM_CENTER, cpBOTTOM_LEFT, cpBOTTOM_RIGHT,
                      cpLEFT_BOTTOM, cpLEFT_CENTER, cpLEFT_TOP,
                      cpRIGHT_BOTTOM, cpRIGHT_CENTER, cpRIGHT_TOP,
                      cpTOP_CENTER, cpTOP_LEFT, cpTOP_RIGHT);
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.
Style (*) TMapTypeControlStyle Estilo del control. Ver valores
TMapTypeControlStyle = (mtcDEFAULT, mtcDROPDOWN_MENU, mtcHORIZONTAL_BAR);

 


Clase TOverviewMapControlOptions

Descripción Clase interna que contendrá las opciones del OverviewMapControl del mapa. Más información en OverviewMapControlOptions object specification. Herencia TObject -> TPersistent -> TOverviewMapControlOptions Propiedades

Propiedad Tipo Descripción
Opened (*) Boolean Estado del control, cerrado o abierto.
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.

 


Clase TPanControlOptions

Descripción Clase interna que contendrá las opciones del PanControl del mapa. Más información en PanControlOptions object specification. Herencia TObject -> TPersistent -> TPanControlOptions Propiedades

Propiedad Tipo Descripción
Position (*) TControlPosition Posición del control dentro del mapa. Ver valores
  TControlPosition = (cpBOTTOM_CENTER, cpBOTTOM_LEFT, cpBOTTOM_RIGHT,
                      cpLEFT_BOTTOM, cpLEFT_CENTER, cpLEFT_TOP,
                      cpRIGHT_BOTTOM, cpRIGHT_CENTER, cpRIGHT_TOP,
                      cpTOP_CENTER, cpTOP_LEFT, cpTOP_RIGHT);
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.

 


Clase TRotateControlOptions

Descripción Clase interna que contendrá las opciones del RotateControl del mapa. Más información en RotateControlOptions object specification. Herencia TObject -> TPersistent -> TRotateControlOptions Propiedades

Propiedad Tipo Descripción
Position (*) TControlPosition Posición del control dentro del mapa. Ver valores
  TControlPosition = (cpBOTTOM_CENTER, cpBOTTOM_LEFT, cpBOTTOM_RIGHT,
                      cpLEFT_BOTTOM, cpLEFT_CENTER, cpLEFT_TOP,
                      cpRIGHT_BOTTOM, cpRIGHT_CENTER, cpRIGHT_TOP,
                      cpTOP_CENTER, cpTOP_LEFT, cpTOP_RIGHT);
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.

 


Clase TScaleControlOptions

Descripción Clase interna que contendrá las opciones del ScaleControl del mapa. Más información en ScaleControlOptions object specification. Herencia TObject -> TPersistent -> TScaleControlOptions Propiedades

Propiedad Tipo Descripción
Position (*) TControlPosition Posición del control dentro del mapa. Ver valores
  TControlPosition = (cpBOTTOM_CENTER, cpBOTTOM_LEFT, cpBOTTOM_RIGHT,
                      cpLEFT_BOTTOM, cpLEFT_CENTER, cpLEFT_TOP,
                      cpRIGHT_BOTTOM, cpRIGHT_CENTER, cpRIGHT_TOP,
                      cpTOP_CENTER, cpTOP_LEFT, cpTOP_RIGHT);
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.
Style (*) TScaleControlStyle Estilo del control. Ver valores
TScaleControlStyle = (scDEFAULT);

 


Clase TStreetViewControlOptions

Descripción Clase interna que contendrá las opciones del StreetViewControl del mapa. Más información en StreetViewControlOptions object specification. Herencia TObject -> TPersistent -> TStreetViewControlOptions Propiedades

Propiedad Tipo Descripción
Position (*) TControlPosition Posición del control dentro del mapa. Ver valores
  TControlPosition = (cpBOTTOM_CENTER, cpBOTTOM_LEFT, cpBOTTOM_RIGHT,
                      cpLEFT_BOTTOM, cpLEFT_CENTER, cpLEFT_TOP,
                      cpRIGHT_BOTTOM, cpRIGHT_CENTER, cpRIGHT_TOP,
                      cpTOP_CENTER, cpTOP_LEFT, cpTOP_RIGHT);
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.

 


Clase TZoomControlOptions

Descripción Clase interna que contendrá las opciones del ZoomControl del mapa. Más información en ZoomControlOptions object specification. Herencia TObject -> TPersistent -> TZoomControlOptions Propiedades

Propiedad Tipo Descripción
Position (*) TControlPosition Posición del control dentro del mapa. Ver valores
  TControlPosition = (cpBOTTOM_CENTER, cpBOTTOM_LEFT, cpBOTTOM_RIGHT,
                      cpLEFT_BOTTOM, cpLEFT_CENTER, cpLEFT_TOP,
                      cpRIGHT_BOTTOM, cpRIGHT_CENTER, cpRIGHT_TOP,
                      cpTOP_CENTER, cpTOP_LEFT, cpTOP_RIGHT);
Show (*) Boolean Muestra el control. A true, el control se muestra, a false se oculta.
Style (*) TZoomControlStyle Estilo del control. Ver valores
TZoomControlStyle = (zcDEFAULT, zcLARGE, zcSMALL);

 


Clase TGMMarker

Descripción Clase para la gestión de marcadores. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TCustomGMMarker -> TGMMarker Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TMarker Array con la colección de elementos.
Heredadas de TCustomGMMarker
VisualObjects (*) [I: Integer]: TMarker Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TMarker y la añade en el array de Items. Más información
function Add(Lat: Real = 0; Lng: Real = 0; Title: string = ''): TMarker;
Parámetro Descripción
Lat Latitud del marcador.
Lng Longitud del marcador.
Title Título del marcador.
Devuelve Nuevo marcador.
Heredados de TCustomGMMarker
LoadFromCSV (+) Crea instancias de TMarker y las añade en el array de Items. Más información
procedure LoadFromCSV(LatColumn, LngColumn: Integer; FileName: string;
      TitleColumn: Integer = -1; Delimiter: Char = ','; DeleteBeforeLoad: Boolean = True;
      WithRownTitle: Boolean = True);
Parámetro Descripción
LatColumn Columna con la información de la latitud.
LngColumn Columna con información de la longitud.
FileName Nombre del fichero.
TitleColumn Columna con información del título.
Delimiter Delimitador de campos.
DeleteBeforeLoad A true borra los marcadores antes de cargar el fichero.
WithRownTitle Si el fichero tiene una primera fila con el título de las columnas.
IconColumn Columna con información del icono a mostrar.
LoadFromDataSet (+) Crea instancias de TMarker y las añade en el array de Items desde un DataSet. Más información
procedure LoadFromDataSet(DataSet: TDataSet; LatField, LngField: string;
      TitleField: string = ''; IconField: string = ''; DeleteBeforeLoad: Boolean = True);
Parámetro Descripción
DataSet DataSet de donde obtener los datos.
LatField Campo con la información de la latitud.
LngField Campo con información de la longitud.
TitleField Campo con información del título.
IconField Campo con información del icono a mostrar.
DeleteBeforeLoad A true, borra los marcadores antes de cargar el fichero.
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;
ZoomMapToAllMarkers (+) Se aplica zoom al mapa para incluir todos los marcadores. Obsoleto. En su lugar usar el método ZoomToPoints. Más información
procedure ZoomMapToAllMarkers;
ZoomToPoints (+) Establece el zoom óptimo para visualizar todos los marcadores. Más información
procedure ZoomMapToAllMarkers;
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.

Eventos

Evento Tipo Descripción
Heredados de TCustomGMMarker
AfterLoadFile (*) TOnLoadFile Este evento se dispara al terminar de cargar el archivo CSV.
OnClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario pulsa un marcador.
OnClickableChange (*) TLinkedComponentChange Este evento se dispara cuando cambia la propiedad Clickable del marcador.
OnColoredMarkerChange (*) TLinkedComponentChange Este evento se dispara cuando cambia una propiedad de la propiedad ColoredMarker del marcador.
OnDblClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario hace doble click un marcador.
OnDrag (*) TLatLngIdxEvent Este evento se dispara repetidamente mientras el usuario desplaza el marcador.
OnDragEnd (*) TLatLngIdxEvent Este evento se dispara cuando el usuario para de desplazar el marcador.
OnDraggableChange (*) TLinkedComponentChange Este evento se dispara cuando cambia la propiedad Draggable del marcador.
OnDragStart (*) TLatLngIdxEvent Este evento se dispara cuando el usuario empieza a desplazar el marcador.
OnFlatChange (*) TLinkedComponentChange Este evento se dispara cuando cambia la propiedad Flat del marcador.
OnIconChange (*) TLinkedComponentChange Este evento se dispara cuando cambia la propiedad Icon del marcador.
OnLoadFile (*) TOnLoadFile Este evento se dispara cada vez que se carga una fila del archivo CSV.
OnMouseDown (*) TLatLngIdxEvent Este evento se dispara al pulsar en el marcador.
OnMouseOut (*) TLatLngIdxEvent Este evento se dispara cuando el ratón deja el área del icono del marcador.
OnMouseOver (*) TLatLngIdxEvent Este evento se dispara cuando el ratón entra en el área del icono del marcador.
OnMouseUp (*) TLatLngIdxEvent Este evento se dispara al soltar el marcador.
OnPositionChange (*) TLatLngIdxEvent Este evento se dispara cuando cambia la propiedad Position del marcador.
OnRightClick (*) TLatLngIdxEvent Este evento se dispara al hacer click con el botón derecho del ratón en el marcador.
OnStyledMarkerChange (*) TLinkedComponentChange Este evento se dispara cuando cambia una propiedad de la propiedad StyledMarker del marcador.
OnTitleChange (*) TLinkedComponentChange Este evento se dispara cuando cambia la propiedad Title del marcador.
OnVisibleChange (*) TLinkedComponentChange Este evento se dispara cuando cambia la propiedad Visible del marcador.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TMarkers

Descripción Clase para la colección de marcadores. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TCustomMarkers -> TMarkers Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TMarker Lista de marcadores en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TMarker y la añade en el array de Items. Más información
function Add: TMarker;
Devuelve Nuevo marcador.
Insert (+) Crea una nueva instancia de TMarker y la añade en el array de Items. Más información
function Insert(Index: Integer): TMarker;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo marcador.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TMarker

Descripción Clase para los marcadores. Más información en Marker class. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent -> TCustomMarker -> TMarker Propiedades

Propiedad Tipo Descripción
ColoredMarker (*) Boolean Características aplicables cuando el marcador es de tipo mtColored.
StyledMarker (*) TStyledMarker Características aplicables cuando el marcador es de tipo mtStyledMarker.
Heredadas de TCustomMarker
Animation (*) TAnimation Tipo de animación para los marcadores.
Clickable (*) Boolean Si se establece en true, el marcador recibe eventos del ratón.
Draggable (*) Boolean Si se establece en true, el marcador puede desplazarse.
Flat (*) Boolean Si se establece en true, no se mostrará la sombra del marcador.
Icon (*) string Icono a mostrar. Puede ser una url o un archivo en el PC. Si no se especifica, se mostrará el icono por defecto.
InfoWindow (*) TBaseInfoWindow InfoWindows asociado al objeto.
MarkerType (*) TMarkerType Tipo de marcador. Ver valores
TMarkerType = (mtStandard, mtColored, mtStyledMarker);
Optimized (*) Boolean La optimización hace que muchos marcadores sean como un único elemento estático.
Position (*) TLatLng Posición del marcador.
RaiseOnDrag (*) Boolean Si se establece a false, deshabilita el subir y bajar del marcador al arrastrarlo.
ShowInfoWinMouseOver (*) Boolean Si true, el InfoWindos se muestra cuando el ratón entra en el objeto y se cierra cuando sale.
Title (*) string Esta propiedad se usa, si procede, para establecer el nombre que aparece en el editor de la colección y es el texto ayuda que aparece al posicionar el ratón encima del marcador.
Visible (*) Boolean Si se establece a true, el marcador será visible.
ZIndex (*) Integer Índice dentro de la colección.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Heredados de TCustomGMMarker
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
CenterMapToMarker (+) Centra el mapa en el marcador. Obsoleta, en su lugar usar CenterMapTo. Más información
procedure CenterMapToMarker;
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en la ventana de información. Más información
procedure CenterMapTo;
OpenCloseInfoWin (+) Muestra o oculta la ventana de información. Más información
procedure OpenCloseInfoWin; virtual;

 


Clase TAnimation

Descripción Clase interna para determinar el tipo de animación de un marcador. Herencia TObject -> TPersistent -> TAnimation Propiedades

Propiedad Tipo Descripción
Bounce (*) Boolean Si se establece a true, el marcador rebota hasta parar la animación.
OnDrop (*) Boolean Si se establece a true, el marcador cae desde la parte superior del mapa terminando con un pequeño rebote.

 


Clase TBaseInfoWindow

Descripción Clase base para ser usada desde otros componentes que representa una ventana de información. Más información en InfoWindow class. Herencia TObject -> TPersistent -> TBaseInfoWindow Propiedades

Propiedad Tipo Descripción
CloseOtherBeforeOpen (*) Boolean Poner a true para cerrar otras ventanas de información abiertas.
DisableAutoPan (*) Boolean Deshabilita el auto-pan en abierto.
HTMLContent (*) string Contenido a mostrar en la InfoWindow. Éste puede ser un elemento HTML, texto plano, o una cadena que contenga HTML. El InfoWindow se agrandará acorde al contenido. Para especificar unas determinadas medidas para el contenido, establece el contenido como un elemento HTML con esas medidas.
MaxWidth (*) Integer Ancho máximo del InfoWindows, independientemente de la anchura del contenido. A 0 sin máximo.
PixelOffset (*) TGMSize Offset, en píxeles, del extremo de la ventana de información desde el punto en las coordenadas geográficas en las que se ancla la ventana de información.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(aOwner: TPersistent); override;
Parámetro Descripción
aOwner Propietario del objecto.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
GetConvertedString (+) El método GetConvertedString devuelve la propiedad HTMLContent formateada para poder ser pasada por parámetro a una función JavaScript. Más información
function GetConvertedString: string;
Devuelve Cadena formateada.

Eventos

Evento Tipo Descripción
OnCloseOtherBeforeOpenChange (+) TNotifyEvent El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (+) TNotifyEvent El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (+) TNotifyEvent El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (+) TNotifyEvent El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (+) TNotifyEvent El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TStyledMarker

Descripción Características para un marcador de tipo ColoredMarker. Más información en StyledMarker library. Herencia TObject -> TPersistent -> TCustomStyledMarker -> TStyledMarker Propiedades

Propiedad Tipo Descripción
BackgroundColor (*) TColor Color de fondo.
StarColor (*) TColor Color de la estrella.
TextColor (*) TColor Color del texto.
Heredadas de TCustomStyledMarker
ShowStar (*) Boolean Mostrar o ocultar una estrella en la parte superior derecha del marcador.
StyledIcon (*) TStyledIcon Tipo del marcador. Ver valores
TStyledIcon = (siMarker, siBubble);

 


Clase TGMSize

Descripción Una instancia de la clase TGMSize representa un tamaño bidimensional. Más información en Size class. Herencia TObject -> TPersistent -> TGMSize Propiedades

Propiedad Tipo Descripción
Height (*) Integer Altura a lo largo del eje y, en píxeles
Width (*) Integer La anchura a lo largo del eje x, en píxeles.

Eventos

Evento Tipo Descripción
OnChange TNotifyEvent El evento OnChange se dispara cuando Height o Width cambia.

 


Clase TGMInfoWindow

Descripción Clase para la gestión de InfoWindow. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TGMInfoWindow Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TInfoWindow Array con la colección de elementos.
VisualObjects (*) [I: Integer]: TInfoWindow Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TInfoWindow y la añade en el array de Items. Más información
function Add(Lat: Real = 0; Lng: Real = 0; HTMLContent: string = ''): TInfoWindow;
Parámetro Descripción
Lat Latitud del InfoWindow.
Lng Longitud del InfoWindow.
HTMLContent Contenido del InfoWindow en formato HTML.
Devuelve Nuevo InfoWindow.
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.

Eventos

Evento Tipo Descripción
OnPositionChange (*) TLatLngIdxEvent Este evento se dispara cuando cambia la posición del InfoWindow.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TInfoWindows

Descripción Clase para la colección de InfoWindow. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TInfoWindows Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TInfoWindow Lista de infowindow en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TInfoWindow y la añade en el array de Items. Más información
function Add: TInfoWindow;
Devuelve Nuevo infowindow.
Insert (+) Crea una nueva instancia de TInfoWindow y la añade en el array de Items. Más información
function Insert(Index: Integer): TInfoWindow;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo infowindow.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TInfoWindow

Descripción Clase para la gestión de ventanas de información. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent -> TInfoWindow Propiedades

Propiedad Tipo Descripción
AutoOpen (*) Boolean Si se establece a true, cuando se cree, se mostrará automáticamente.
CloseOtherBeforeOpen (*) Boolean Poner a true para cerrar otras ventanas de información abiertas.
DisableAutoPan (*) Boolean Deshabilita el auto-pan en abierto.
HTMLContent (*) string Contenido a mostrar en la InfoWindow. Éste puede ser un elemento HTML, texto plano, o una cadena que contenga HTML. El InfoWindow se agrandará acorde al contenido. Para especificar unas determinadas medidas para el contenido, establece el contenido como un elemento HTML con esas medidas.
MaxWidth (*) Integer Ancho máximo del InfoWindows, independientemente de la anchura del contenido. A 0 sin máximo.
PixelOffset (*) TGMSize Offset, en píxeles, del extremo de la ventana de información desde el punto en las coordenadas geográficas en las que se ancla la ventana de información.
Position (*) TLatLng TLatLng donde se mostrará la ventana de información.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
OpenClose (+) Muestra o oculta la ventana de información. Más información
procedure OpenClose;
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en la ventana de información. Más información
procedure CenterMapTo;

 


Clase TGMPolyline

Descripción Clase para la gestión de polilíneas. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TGMBasePolyline -> TGMPolyline Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TPolyline Array con la colección de elementos.
Heredadas de TGMBasePolyline
VisualObjects (*) [I: Integer]: TPolyline Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TPolyline y la añade en el array de Items. Más información
function Add: TPolyline;
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;
Heredados de TGMBasePolyline
GetPath (+) El método GetPath recupera los cambios realizados por el usuario directamente en la polilinea. Más información
procedure GetPath;
SetPath (+) El método SetPath establece los nuevos LinePoints a la polilínea. Más información
procedure SetPath;
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.

Eventos

Evento Tipo Descripción
OnCurveLineChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad CurveLine de una polilínea.
OnIconChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Icon de una polilínea.
Heredados de TGMBasePolyline
OnClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario pulsa una polilínea.
OnClickableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Clickable de una polilínea.
OnDblClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario hace doble click una polilínea.
OnEditableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Editable de una polilínea.
OnGeodesicChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Geodesic de una polilínea.
OnMouseDown (*) TLatLngIdxEvent Este evento se dispara al pulsar en el polilínea.
OnMouseMove (*) TLatLngIdxEvent Este evento se dispara cuando el ratón se mueve por encima del polilínea.
OnMouseOut (*) TLatLngIdxEvent Este evento se dispara cuando el ratón sale del polilínea.
OnMouseOver (*) TLatLngIdxEvent Este evento se dispara cuando el ratón entra en el área del polilínea.
OnMouseUp (*) TLatLngIdxEvent Este evento se dispara al soltar el polilínea.
OnPathChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Path de una polilínea.
OnRightClick (*) TLatLngIdxEvent Este evento ocurre cuando en una polilínea se pulsa el botón derecho del ratón.
OnStrokeColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeColor de una polilínea.
OnStrokeOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeOpacity de una polilínea.
OnStrokeWeightChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeWeight de una polilínea.
OnVisibleChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Visible de una polilínea.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TPolylines

Descripción Clase para la colección de polilíneas. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TBasePolylines -> TPolylines Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TPolyline Lista de polilíneas en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TPolyline y la añade en el array de Items. Más información
function Add: TPolyline;
Devuelve Nueva polilínea.
Insert (+) Crea una nueva instancia de TPolyline y la añade en el array de Items. Más información
function Insert(Index: Integer): TPolyline;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nueva polilínea.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TPolyline

Descripción Clase para las polilíneas. Más información en Polyline class. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent / ILinePoint -> TBasePolyline -> TBasePolylineVCL -> TPolyline Propiedades

Propiedad Tipo Descripción
CurveLine (*) TCurveLine Propiedades para una polilínea con linea curva.
Icon (*) TIconSequence Características para el icono y la repetición.
Heredadas de TBasePolylineVCL
StrokeColor (*) TColor Color del trazo.
Heredadas de TBasePolyline
AutoUpdatePath (*) Boolean Si se establece a true, cada vez que se modifique el recorrido en el mapa, se actualizará el array de LinePoints.
Clickable (*) Boolean Indica si la polilínea recibe eventos del ratón.
CountLinePoints (+) Integer Devuelve la cantidad de LinePoints.
Editable (*) Boolean Si se establece a true, el usuario puede editar la figura arrastrando los puntos de control mostrados en los vertices y en cada segmento.
Geodesic (*) Boolean Si se establece a true, muestra cada arista como una geodésica (un segmento de un «gran círculo»). Una geodésica es el camino más corto entre dos puntos de la superfície terrestre. Si es false, muestra cada arista como una línea recta en pantalla.
InfoWindow (*) TBaseInfoWindow InfoWindows asociado al objeto.
Items (+) [I: Integer]: TLinePoint Array con la colección de elementos.
LinePoints (*) TLinePoints Secuencia ordenada de coordenadas de la polilínea.
StrokeOpacity (*) Real Opacidad del trazo entre 0.0 y 1.0.
StrokeWeight (*) Integer Anchura del trazo en píxeles.
Text (*) string Esta propiedad se usa, si procede, para establecer el nombre que aparece en el editor de la colección.
Visible (*) Boolean Si la polilínea es visible en el mapa.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Heredados de TBasePolyline
AddLinePoint (+) Crea un nuevo punto en la polilinea. Más información
function AddLinePoint(Lat, Lng: string): TLinePoint; overload;
function AddLinePoint(Lat: Real = 0; Lng: Real = 0): TLinePoint; overload;
Parámetro Descripción
Lat Latitud del punto.
Lng Longitud del punto.
Devuelve Nuevo TLinePoint.
AfterConstruction (+) Respuesta después de la ejecución del último constructor. Más información
procedure AfterConstruction; override;
ClearLinePoints (+) Borra todos los puntos. Más información
procedure ClearLinePoints;
ComputeArea (+) Devuelve el area de una ruta cerrada. El area calculada usa las mismas unidades que Radius. El radio por defecto es el radio de la Tierra en metros, en cuyo caso el área es en metros cuadrados. Más información
function ComputeArea(Radius: Real = -1): Real;
Parámetro Descripción
Radius Radio a usar.
Devuelve Area.
DecodePath (+) Decodifica un string codificado en una secuencia de LatLng. Más información
procedure DecodePath(EncodedPath: string; Add: Boolean = False);
Parámetro Descripción
EncodedPath Path a decodificar.
Add Si es true, se añaden los puntos resultantes de la decodificación a los actuales. Si es false (por defecto), antes de cargar los nuevos puntos resultantes de la decodificación, se borrarán los puntos actuales.
DeleteLinePoint (+) Borra un punto. Más información
procedure DeleteLinePoint(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
EncodePath (+) Codifica una secuencia de TLatLng en un string codificado. Más información
function EncodePath: string;
Devuelve String codificado.
GetCenter (+) Devuelve el centro de la polilinea. Más información
procedure GetCenter(LL: TLatLng);
Parámetro Descripción
LL TLatLng con el centro.
GetPath (+) El método GetPath recupera los cambios realizados por el usuario directamente en la polilinea. Más información
procedure GetPath;
InsertLinePoint (+) Inserta un nuevo punto en la polilinea en el índice especificado. Más información
function InsertLinePoint(Index: Integer; Lat, Lng: Real): TLinePoint;
Parámetro Descripción
Index Posición en la que insertar.
Lat Latitud del punto.
Lng Longitud del punto.
Devuelve TLinePoint.
IsLocationOnEdge (+) Calcula si el punto dado se encuentra en o cerca de una polilínea, o el borde de un polígono, dentro de una tolerancia especificada. Más información
function IsLocationOnEdge(LatLng: TLatLng; Tolerance: Integer = -1): Boolean; overload;
Parámetro Descripción
LatLng Punto a calcular.
Tolerance Tolerancia. -1 sin tolerancia.
Devuelve True si el punto se encuentra en o cerca de una polilínea, o el borde de un polígono.
IsLocationOnEdge (+) Calcula si el punto dado se encuentra en o cerca de una polilínea, o el borde de un polígono, dentro de una tolerancia especificada. Más información
function IsLocationOnEdge(Lat, Lng: Real; Tolerance: Integer = -1): Boolean; overload;
Parámetro Descripción
Lat Latitud a calcular.
Lng Longitud a calcular.
Tolerance Tolerancia. -1 sin tolerancia.
Devuelve True si el punto se encuentra en o cerca de una polilínea, o el borde de un polígono.
MoveLinePoint (+) Mueve un punto a una nueva posición dentro del array de LinePoints. Más información
procedure MoveLinePoint(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
PolylineToStr (+) Convierte en una cadena el conjunto de LinePoints. Los elementos están separados por punto y coma (;) y las coordenadas (lat/lng) separados por una barra vertical (|). Más información
function PolylineToStr: string;
Devuelve Cadena con la conversión.
SetPath (+) Establece el nuevo recorrido. Más información
procedure SetPath;
ZoomToPoints (+) Establece el zoom óptimo para visualizar la polilínea. Más información
procedure ZoomToPoints;
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en el primer punto de la polilinea. Más información
procedure CenterMapTo;
OpenCloseInfoWin (+) Muestra o oculta la ventana de información. Más información
procedure OpenCloseInfoWin; virtual;

 


Clase TIconSequence

Descripción Clase para determinar el icono y la repetición a mostrar en la polilínea. Herencia TObject -> TPersistent -> TCustomIconSequence -> TIconSequence Propiedades

Propiedad Tipo Descripción
Icon (*) TSymbol Propiedades del icono.
Heredadas de TCustomIconSequence
DistRepeat (*) TValue Propiedades de repetición.
OffSet (*) TValue Propiedades del OffSet.

 


Clase TValue

Descripción Clase para determinar la repetición del icono mostrado. Herencia TObject -> TPersistent -> TValue Propiedades

Propiedad Tipo Descripción
Measure (*) TMeasure Valor de la medida (píxeles o porcentaje). Ver valores
TMeasure = (mPixels, mPercentage);
Value (*) Integer Valor de la medida.

 


Clase TSymbol

Descripción Clase para determinar la repetición del icono mostrado. Herencia TObject -> TPersistent -> TCustomSymbol -> TSymbol Propiedades

Propiedad Tipo Descripción
FillColor (*) TColor Color de relleno.
StrokeColor (*) TColor Color del trazo.
Heredadas de TCustomSymbol
FillOpacity (*) Real Opacidad del relleno entre 0.0 y 1.0.
Path (*) TSymbolPath Símbolo a mostrar. Ver valores
TSymbolPath = (spNONE, spBACKWARD_CLOSED_ARROW, spBACKWARD_OPEN_ARROW, spCIRCLE,
          spFORWARD_CLOSED_ARROW, spFORWARD_OPEN_ARROW, spDASHEDLINE);
StrokeOpacity (*) Real Opacidad del trazo entre 0.0 y 1.0.
StrokeWeight (*) Integer Anchura del trazo en píxeles.

 


Clase TColoredMarker

Descripción Características para un marcador de tipo ColoredMarker. Lo siento, he perdido la referencia para más información. Herencia TObject -> TPersistent -> TCustomColoredMarker -> TColoredMarker Propiedades

Propiedad Tipo Descripción
CornerColor (*) TColor Color de la esquina.
PrimaryColor (*) TColor Color de relleno.
StrokeColor (*) TColor Color del trazo.
Heredadas de TCustomColoredMarker
Height (*) Integer Altura del marcador.
Width (*) Integer Ancho del marcador.

 


Clase TLinePoint

Descripción Clase interna para la gestión de puntos de un TPolyline o TPolygon. Herencia TObject -> TPersistent -> TCollectionItem -> TLinePoint Propiedades

Propiedad Tipo Descripción
Lat (*) Real Latitud del punto.
Lng (*) Real Longitud del punto.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
GetLatLng (+) Devuelve la posición del punto. Más información
function GetLatLng: TLatLng;
Devuelve TLatLng con la posición del punto.
LatToStr (+) Combierte el valor de Lat en una cadena. Más información
function LatToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión del valor. Por defecto 6.
Devuelve Cadena con la latitud.
LngToStr (+) Combierte el valor de Lng en una cadena. Más información
function LngToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión del valor. Por defecto 6.
Devuelve Cadena con la longitud.
SetLatLng (+) Establece la posición del punto. Más información
procedure SetLatLng(LatLng: TLatLng);
Parámetro Descripción
LatLng Nueva posición.
StringToReal (+) Dada una cadena, la convierte en un valor real teniendo en cuenta la configuración regional. Más información
function StringToReal(Value: string): Real;
Parámetro Descripción
Value Cadena a convertir a real.
Devuelve Real con la conversión.
ToStr (+) Combierte la TLatLng en una cadena. Más información
function ToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión de los valores. Por defecto 6.
Devuelve Cadena con la TLatLng.

 


Clase TLinePoints

Descripción Clase interna para la gestión de puntos de un Polyline o Polygon. Herencia TObject -> TPersistent -> TCollection -> TLinePoints Métodos

Método Descripción
Add (+) Crea una nueva instancia de TLinePoint y la añade en el array de Items. Más información
function Add: TLinePoint;
Devuelve Nuevo elemento.
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Create (+) Constructor de la clase. Más información
constructor Create(Owner: TObject; ItemClass: TCollectionItemClass);
Parámetro Descripción
Owner Propietario de la colección.
ItemClass Clase de los nuevos elementos.
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Insert (+) Crea una nueva instancia de TLinePoint y la añade en el array de Items. Más información
function Insert(Index: Integer): TLinePoint;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo elemento.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
PointsToStr (+) Convierte en una cadena el conjunto de elementos de la colección. Los elementos están separados por punto y coma (;) y las coordenadas (lat/lng) separados por una barra vertical (|). Esta función está obsoleta. En su lugar usar el método de clase PointsToStr de la clase TGMGenFunc de la unidad GMFunctions. Más información
function PointsToStr(Precision: Integer = 6): string;
Parámetro Descripción
Precision Precisión de los valores. Por defecto 6.
Devuelve Cadena con la conversión.

 


Clase TGMPolygon

Descripción Clase para la gestión de polígonos. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TGMBasePolyline -> TGMPolygon Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TPolygon Array con la colección de elementos.
Heredadas de TGMBasePolyline
VisualObjects (*) [I: Integer]: TPolygon Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TPolygon y la añade en el array de Items. Más información
function Add: TPolygon;
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;
Heredados de TGMBasePolyline
GetPath (+) El método GetPath recupera los cambios realizados por el usuario directamente en la polilinea. Más información
procedure GetPath;
SetPath (+) El método SetPath establece los nuevos LinePoints a la polilínea. Más información
procedure SetPath;
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.

Eventos

Evento Tipo Descripción
OnFillColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad FillColor de un polígono.
OnFillOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad FillOpacity de un polígono.
Heredados de TGMBasePolyline
OnClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario pulsa una polilínea.
OnClickableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Clickable de una polilínea.
OnDblClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario hace doble click una polilínea.
OnEditableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Editable de una polilínea.
OnGeodesicChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Geodesic de una polilínea.
OnMouseDown (*) TLatLngIdxEvent Este evento se dispara al pulsar en el polilínea.
OnMouseMove (*) TLatLngIdxEvent Este evento se dispara cuando el ratón se mueve por encima del polilínea.
OnMouseOut (*) TLatLngIdxEvent Este evento se dispara cuando el ratón sale del polilínea.
OnMouseOver (*) TLatLngIdxEvent Este evento se dispara cuando el ratón entra en el área del polilínea.
OnMouseUp (*) TLatLngIdxEvent Este evento se dispara al soltar el polilínea.
OnPathChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Path de una polilínea.
OnRightClick (*) TLatLngIdxEvent Este evento ocurre cuando en una polilínea se pulsa el botón derecho del ratón.
OnStrokeColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeColor de una polilínea.
OnStrokeOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeOpacity de una polilínea.
OnStrokeWeightChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeWeight de una polilínea.
OnVisibleChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Visible de una polilínea.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TPolygons

Descripción Clase para la colección de polígonos. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TBasePolylines -> TPolygons Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TPolygon Lista de polígonos en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TPolygon y la añade en el array de Items. Más información
function Add: TPolygon;
Devuelve Nuevo polígono.
Insert (+) Crea una nueva instancia de TPolygon y la añade en el array de Items. Más información
function Insert(Index: Integer): TPolygon;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo poligono.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TPolygon

Descripción Clase para los polígonos. Más información en TPolygon class. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent / ILinePoint -> TBasePolyline -> TBasePolylineVCL -> TPolygon Propiedades

Propiedad Tipo Descripción
FillColor (*) TColor Color de relleno.
FillOpacity (*) Real Opacidad del relleno entre 0.0 y 1.0.
Heredadas de TBasePolylineVCL
StrokeColor (*) TColor Color del trazo.
Heredadas de TBasePolyline
AutoUpdatePath (*) Boolean Si se establece a true, cada vez que se modifique el recorrido en el mapa, se actualizará el array de LinePoints.
Clickable (*) Boolean Indica si la polilínea recibe eventos del ratón.
CountLinePoints (+) Integer Devuelve la cantidad de LinePoints.
Editable (*) Boolean Si se establece a true, el usuario puede editar la figura arrastrando los puntos de control mostrados en los vertices y en cada segmento.
Geodesic (*) Boolean Si se establece a true, muestra cada arista como una geodésica (un segmento de un «gran círculo»). Una geodésica es el camino más corto entre dos puntos de la superfície terrestre. Si es false, muestra cada arista como una línea recta en pantalla.
InfoWindow (*) TBaseInfoWindow InfoWindows asociado al objeto.
Items (+) [I: Integer]: TLinePoint Array con la colección de elementos.
LinePoints (*) TLinePoints Secuencia ordenada de coordenadas de la polilínea.
StrokeOpacity (*) Real Opacidad del trazo entre 0.0 y 1.0.
StrokeWeight (*) Integer Anchura del trazo en píxeles.
Text (*) string Esta propiedad se usa, si procede, para establecer el nombre que aparece en el editor de la colección.
Visible (*) Boolean Si la polilínea es visible en el mapa.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
ContainsLocation (+) Calcula si el punto dado se encuentra dentro del polígono. Más información
function ContainsLocation(Lat, Lng: Real): Boolean; overload;
Parámetro Descripción
Lat Latitud a calcular.
Lng Longitud a calcular.
Devuelve True si el punto esta dentro del polígono.
ContainsLocation (+) Calcula si el punto dado se encuentra dentro del polígono. Más información
function ContainsLocation(LatLng: TLatLng): Boolean; overload;
Parámetro Descripción
LatLng Punto a calcular.
Devuelve True si el punto esta dentro del polígono.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Heredados de TBasePolyline
AddLinePoint (+) Crea un nuevo punto en la polilinea. Más información
function AddLinePoint(Lat, Lng: string): TLinePoint; overload;
function AddLinePoint(Lat: Real = 0; Lng: Real = 0): TLinePoint; overload;
Parámetro Descripción
Lat Latitud del punto.
Lng Longitud del punto.
Devuelve Nuevo TLinePoint.
AfterConstruction (+) Respuesta después de la ejecución del último constructor. Más información
procedure AfterConstruction; override;
ClearLinePoints (+) Borra todos los puntos. Más información
procedure ClearLinePoints;
ComputeArea (+) Devuelve el area de una ruta cerrada. El area calculada usa las mismas unidades que Radius. El radio por defecto es el radio de la Tierra en metros, en cuyo caso el área es en metros cuadrados. Más información
function ComputeArea(Radius: Real = -1): Real;
Parámetro Descripción
Radius Radio a usar.
Devuelve Area.
DecodePath (+) Decodifica un string codificado en una secuencia de LatLng. Más información
procedure DecodePath(EncodedPath: string; Add: Boolean = False);
Parámetro Descripción
EncodedPath Path a decodificar.
Add Si es true, se añaden los puntos resultantes de la decodificación a los actuales. Si es false (por defecto), antes de cargar los nuevos puntos resultantes de la decodificación, se borrarán los puntos actuales.
DecodePath (+) Decodifica un string codificado en una secuencia de LatLng. Más información
procedure DecodePath(EncodedPath: string; Add: Boolean = False);
Parámetro Descripción
EncodedPath Path a decodificar.
Add Si es true, se añaden los puntos resultantes de la decodificación a los actuales. Si es false (por defecto), antes de cargar los nuevos puntos resultantes de la decodificación, se borrarán los puntos actuales.
DeleteLinePoint (+) Borra un punto. Más información
procedure DeleteLinePoint(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
EncodePath (+) Codifica una secuencia de TLatLng en un string codificado. Más información
function EncodePath: string;
Devuelve String codificado.
GetCenter (+) Devuelve el centro de la polilinea. Más información
procedure GetCenter(LL: TLatLng);
Parámetro Descripción
LL TLatLng con el centro.
GetPath (+) El método GetPath recupera los cambios realizados por el usuario directamente en la polilinea. Más información
procedure GetPath;
InsertLinePoint (+) Inserta un nuevo punto en la polilinea en el índice especificado. Más información
function InsertLinePoint(Index: Integer; Lat, Lng: Real): TLinePoint;
Parámetro Descripción
Index Posición en la que insertar.
Lat Latitud del punto.
Lng Longitud del punto.
Devuelve TLinePoint.
IsLocationOnEdge (+) Calcula si el punto dado se encuentra en o cerca de una polilínea, o el borde de un polígono, dentro de una tolerancia especificada. Más información
function IsLocationOnEdge(LatLng: TLatLng; Tolerance: Integer = -1): Boolean; overload;
Parámetro Descripción
LatLng Punto a calcular.
Tolerance Tolerancia. -1 sin tolerancia.
Devuelve True si el punto se encuentra en o cerca de una polilínea, o el borde de un polígono.
IsLocationOnEdge (+) Calcula si el punto dado se encuentra en o cerca de una polilínea, o el borde de un polígono, dentro de una tolerancia especificada. Más información
function IsLocationOnEdge(Lat, Lng: Real; Tolerance: Integer = -1): Boolean; overload;
Parámetro Descripción
Lat Latitud a calcular.
Lng Longitud a calcular.
Tolerance Tolerancia. -1 sin tolerancia.
Devuelve True si el punto se encuentra en o cerca de una polilínea, o el borde de un polígono.
MoveLinePoint (+) Mueve un punto a una nueva posición dentro del array de LinePoints. Más información
procedure MoveLinePoint(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
PolylineToStr (+) Convierte en una cadena el conjunto de LinePoints. Los elementos están separados por punto y coma (;) y las coordenadas (lat/lng) separados por una barra vertical (|). Más información
function PolylineToStr: string;
Devuelve Cadena con la conversión.
SetPath (+) Establece el nuevo recorrido. Más información
procedure SetPath;
ZoomToPoints (+) Establece el zoom óptimo para visualizar el polígono. Más información
procedure ZoomToPoints;
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en el primer punto de la polilinea. Más información
procedure CenterMapTo;
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
OpenCloseInfoWin (+) Muestra o oculta la ventana de información. Más información
procedure OpenCloseInfoWin; virtual;

 


Clase TGMRectangle

Descripción Clase para la gestión de rectángulos. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TCustomGMRectangle -> TGMRectangle Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TRectangle Array con la colección de elementos.
Heredadas de TCustomGMRectangle
VisualObjects (*) [I: Integer]: TRectangle Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TRectangle y la añade en el array de Items. Más información
function Add(SWLat: Real = 0; SWLng: Real = 0; NELat: Real = 0; NELng: Real = 0): TRectangle;
Parámetro Descripción
SWLat Latitud suroeste del rectángulo.
SWLng Longitud suroeste del rectángulo.
NELat Latitud noreste del rectángulo.
NELng Longitud noreste del rectángulo.
Devuelve Una nueva instancia de TRectangle.
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;

Eventos

Evento Tipo Descripción
Heredados de TCustomGMRectangle
OnBoundsChanged (*) TLinkedComponentChange Este evento ocurre cuando cambian los límites de un rectángulo.
OnClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario pulsa un rectángulo.
OnClickableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Clickable de un rectángulo.
OnDblClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario hace double-clic en un rectángulo.
OnEditableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Editable de un rectángulo.
OnFillColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad FillColor de un rectángulo.
OnFillOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad FillOpacity de un rectángulo.
OnMouseDown (*) TLatLngIdxEvent Este evento se dispara al pulsar en el rentángulo.
OnMouseMove (*) TLatLngIdxEvent Este evento se dispara cuando el ratón se mueve por encima del rectángulo.
OnMouseOut (*) TLatLngIdxEvent Este evento se dispara cuando el ratón sale del rectángulo.
OnMouseOver (*) TLatLngIdxEvent Este evento se dispara cuando el ratón entra en el área del rectángulo.
OnMouseUp (*) TLatLngIdxEvent Este evento se dispara al soltar el rectángulo.
OnRightClick (*) TLatLngIdxEvent Este evento ocurre cuando en un rectángulo se pulsa el botón derecho del ratón.
OnStrokeColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeColor de un rectángulo.
OnStrokeOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeOpacity de un rectángulo.
OnStrokeWeightChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeWeight de un rectángulo.
OnVisibleChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Visible de un rectángulo.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TRectangles

Descripción Clase para la colección de rectángulos. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TCustomRectangles -> TRectangles Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TRectangle Lista de rectángulos en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TRectangle y la añade en el array de Items. Más información
function Add: TRectangle;
Devuelve Nuevo rectángulo.
Insert (+) Crea una nueva instancia de TRectangle y la añade en el array de Items. Más información
function Insert(Index: Integer): TRectangle;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo rectángulo.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TRectangle

Descripción Clase para los rectángulos. Más información en Rectangle class. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent -> TCustomRectangle -> TRectangle Propiedades

Propiedad Tipo Descripción
FillColor (*) TColor Color de relleno.
StrokeColor (*) TColor Color del trazo.
Heredadas de TCustomRectangle
Bounds (*) TLatLngBounds Límites del rectángulo.
Clickable (*) Boolean Indica si este rentángulo recivirá eventos del ratón.
Editable (*) Boolean Si se establece a true, el usuario puede editar este rectángulo desplazando el control mediantes los puntos mostrados en las esquinas y en cada lado.
FillOpacity (*) Real Opacidad del relleno con valores entre 0.0 y 1.0.
InfoWindow (*) TBaseInfoWindow InfoWindows asociado al objeto.
StrokeOpacity (*) Real Opacidad del trazo entre 0.0 y 1.0.
StrokeWeight (*) Integer Anchura del trazo en píxeles.
Text (*) string Esta propiedad se usa, si procede, para establecer el nombre que aparece en el editor de la colección.
Visible (*) Boolean Si el rectángulo es visible en el mapa.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Heredados de TCustomRectangle
ComputeArea (+) Devuelve el area de una ruta cerrada. El area calculada usa las mismas unidades que Radius. El radio por defecto es el radio de la Tierra en metros, en cuyo caso el área es en metros cuadrados. Más información
function ComputeArea(Radius: Real = -1): Real;
Parámetro Descripción
Radius Radio a usar.
Devuelve Area.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
GetCenter (+) Devuelve el centro del rectángulo. Más información
procedure GetCenter(LL: TLatLng);
Parámetro Descripción
LL TLatLng con el centro del rectángulo.
GetStrPath (+) Convierte en una cadena los cuatro puntos del rectángulo. Los puntos están separados por punto y coma (;) y las coordenadas (lat/lng) separados por una barra vertical (|). Más información
function GetStrPath: string;
Devuelve Cadena con la conversión.
ZoomToPoints (+) Establece el zoom óptimo para visualizar el rectángulo. Más información
procedure ZoomToPoints;
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en el primer punto de el rectángulo. Más información
procedure CenterMapTo;
OpenCloseInfoWin (+) Muestra o oculta la ventana de información. Más información
procedure OpenCloseInfoWin; virtual;

 


Clase TGMCircle

Descripción Clase para la gestión de círculos. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TCustomGMCircle -> TGMCircle Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TCircle Array con la colección de elementos.
Heredadas de TCustomGMCircle
VisualObjects (*) [I: Integer]: TCircle Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TCircle y la añade en el array de Items. Más información
function Add(Lat: Real = 0; Lng: Real = 0; Radius: Integer = 0): TCircle;
Parámetro Descripción
Lat Latitud del círculo.
Lng Longitud del círculo.
Radius Radio del círculo.
Devuelve Una nueva instancia de TCircle.
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;

Eventos

Evento Tipo Descripción
Heredados de TCustomGMRectangle
OnCenterChange (*) TLatLngIdxEvent Este evento ocurre cuando cambia la propiedad Center de un círculo.
OnClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario pulsa un círculo.
OnClickableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Clickable de un círculo.
OnDblClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario hace doble click un círculo.
OnEditableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Editable de un círculo.
OnFillColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad FillColor de un círculo.
OnFillOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad FillOpacity de un círculo.
OnMouseDown (*) TLatLngIdxEvent Este evento se dispara al pulsar en el círculo.
OnMouseMove (*) TLatLngIdxEvent Este evento se dispara cuando el ratón se mueve por encima del círculo.
OnMouseOut (*) TLatLngIdxEvent Este evento se dispara cuando el ratón sale del círculo.
OnMouseOver (*) TLatLngIdxEvent Este evento se dispara cuando el ratón entra en el área del círculo.
OnMouseUp (*) TLatLngIdxEvent Este evento se dispara al soltar el círculo.
OnRadiusChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Radius de un círculo.
OnRightClick (*) TLatLngIdxEvent Este evento ocurre cuando en un círculo se pulsa el botón derecho del ratón.
OnStrokeColorChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeColor de un círculo.
OnStrokeOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeOpacity de un círculo.
OnStrokeWeightChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad StrokeWeight de un círculo.
OnVisibleChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Visible de un círculo.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TCircles

Descripción Clase para la colección de círculos. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TCustomCircles -> TCircles Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TCircle Lista de círculos en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TCircle y la añade en el array de Items. Más información
function Add: TCircle;
Devuelve Nuevo círculo.
Insert (+) Crea una nueva instancia de TCircle y la añade en el array de Items. Más información
function Insert(Index: Integer): TCircle;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo círculo.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TCircle

Descripción Clase para los círculos. Más información en Circle class. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent -> TCustomCircle -> TCircle Propiedades

Propiedad Tipo Descripción
FillColor (*) TColor Color de relleno.
StrokeColor (*) TColor Color del trazo.
Heredadas de TCustomCircle
AutoResize (*) TSizeable Características para el autoagrandado del círculo.
Center (*) TLatLng Centro del círculo.
Clickable (*) Boolean Indica si este círculo recivirá eventos del ratón.
Editable (*) Boolean Si se establece a treu, el usuario puede editar el círculo arrastrando los puntos de control mostrados en el centro y alrededor de la circunferencia del círculo.
FillOpacity (*) Real Opacidad del relleno con valores entre 0.0 y 1.0.
InfoWindow (*) TBaseInfoWindow InfoWindows asociado al objeto.
Radius (*) Integer Radio en metros en la superficie de la Tierra.
StrokeOpacity (*) Real Opacidad del trazo entre 0.0 y 1.0.
StrokeWeight (*) Integer Anchura del trazo en píxeles.
Text (*) string Esta propiedad se usa, si procede, para establecer el nombre que aparece en el editor de la colección.
Visible (*) Boolean Si el círculo es visible en el mapa.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Heredados de TCustomCircle
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
GetBounds (+) Devuelve el TLatLngBounds del círculo. Más información
procedure GetBounds(LLB: TLatLngBounds);
Parámetro Descripción
LLB La TLatLngBounds.
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en el círculo. Más información
procedure CenterMapTo;
OpenCloseInfoWin (+) Muestra o oculta la ventana de información. Más información
procedure OpenCloseInfoWin; virtual;

 


Clase TSizeable

Descripción Clase para el agrandado automático del círculo. Herencia TObject -> TPersistent -> TCustomSizeable -> TSizeable Propiedades

Propiedad Tipo Descripción
Heredadas de TCustomSizeable
Active (*) Boolean Activa o desactiva el autoincremento.
Circular (*) Boolean Si se establece a true, al llegar al máximo volverá mínimo nuevamente para volver a incrementarse.
Increment (*) Integer Incremento del radio por cada intervalo de tiempo.
Max (*) Integer Radio máximo hasta el que se agrandará.
Min (*) Integer Radio inicial del círculo.
Speed (*) Integer Velocidad de incremento del radio en milisegundos.

 


Clase TGMDirection

Descripción Clase para gestionar direcciones entre dos o más lugares. Más información en:

Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TCustomGMDirection -> TGMDirection Propiedades

Propiedad Tipo Descripción
DirectionsRender (*) TDirectionsRenderer Propiedades que pueden establecerse al objeto DirectionsRenderer.
DirectionsResult (+) [I: Integer]: TDirectionsResult Array de resultados.
Heredadas de TCustomGMDirection
AutoShow (*) Boolean Si se establece a true, se mostrará la ruta automáticamente al procesarla.
Count (+) Integer Número de resultados.
DirectionsRequest (*) TDirectionsRequest Propiedades que pueden establecerse al objeto DirectionsRequest.
HiddeOthers (*) Boolean Si se establece a true, oculta las otras rutas mostradas.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Heredados de TCustomGMDirection
AddWaypoint (+) Crea una nueva instancia de TWaypoint y la añade en el array de DirectionsRequest.Waypoints. Más información
function AddWaypoint: TWaypoint;
Devuelve Una nueva instancia de TWaypoint.
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
ClearWaypoint (+) Borra todos los elementos de la colección DirectionsRequest.Waypoints. Más información
procedure ClearWaypoint;
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Delete (+) Borra una ruta especificada. Más información
procedure Delete(ResultIndex: Integer);
Parámetro Descripción
ResultIndex Índice dentro del array DirectionsResult.
DeleteWaypoint (+) Borra un elemento de la colección DirectionsRequest.Waypoints. Más información
procedure DeleteWaypoint(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Execute (+) Realiza el cálculo de la ruta. Más información
procedure Execute; virtual;
MoveWaypoint (+) Mueve un item a una nueva posición dentro del array de DirectionsRequest.Waypoints. Más información
procedure MoveWaypoint(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
ShowRoute (+) Muestra una ruta especificada. Más información
procedure ShowRoute(ResultIndex, RouteIndex: Integer; HiddeOthers: Boolean = True);
Parámetro Descripción
ResultIndex Índice dentro del array DirectionsResult.
RouteIndex Índice dentro del array DirectionsResult.Routes.
HiddeOthers A true, oculta las otras rutas mostradas.

Eventos

Evento Tipo Descripción
Heredados de TCustomGMDirection
OnDirectionsChanged (*) TNotifyEvent Este evento se dispara cuando se produce algún cambio en la ruta mostrada en el mapa.

 


Clase TDirectionsResult

Descripción Respuesta Directions devuelta por el servidor de direcciones. Clase base. Más información en google.maps.DirectionsResult object specification Herencia TObject -> TCustomDirectionsResult -> TDirectionsResult Propiedades

Propiedad Tipo Descripción
DirectionsRender (+) TDirectionsRenderer Condiciones de la consulta.
Heredadas de TCustomDirectionsResult
Count (+) Integer Número de Routes.
FromTo (+) string Cadena que contiene la búsqueda realizada en formato «Desde a Hasta».
Index (*) Integer Índice identificador del TDirectionsResult dentro del array de resultados.
Routes (+) [Index: Integer]: TDirectionsRoute Array de TDirectionsRoute, cada una de las cuales contiene información acerca de las etapas y los pasos de los que está compuesta.
Status (+) TDirectionsStatus Estado de la consulta. Ver valores
TDirectionsStatus = (dsINVALID_REQUEST, dsMAX_WAYPOINTS_EXCEEDED, dsNOT_FOUND,
          dsOK, dsOVER_QUERY_LIMIT, dsREQUEST_DENIED, dsUNKNOWN_ERROR, dsZERO_RESULTS);
XMLData (+) TStringList XML de la respuesta.

Métodos

Método Descripción
Heredados de TCustomDirectionsResult
ShowRoute (+) Muestra una determinada ruta. Más información
procedure ShowRoute(RouteIndex: Integer = 0; HiddeOthers: Boolean = True);
Parámetro Descripción
RouteIndex Ruta a mostrar.
HiddeOthers A true, oculta las otras rutas mostradas.

 


Clase TDirectionsRenderer

Descripción Define las propiedades que pueden ser establecidas en un objeto DirectionsRenderer. Más información en google.maps.DirectionsRendererOptions object specification Herencia TObject -> TCustomDirectionsRenderer -> TDirectionsRenderer Propiedades

Propiedad Tipo Descripción
PolylineOptions (*) TPolylineOptions Opciones para las polilíneas.
Heredadas de TCustomDirectionsRenderer
Draggable (*) Boolean Si se establece a true, permite al usuario desplazar y modificar el camuno de las rutas procesadas por DirectionsRenderer.
MarkerOptions (*) TMarkerOptions Opciones para los marcadores.
PreserveViewport (*) Boolean Si se establece a false, el mapa se centra y se le aplica el zoom necesario para mostrar el conjunto de direcciones.
SuppressBicyclingLayer (*) Boolean Suprime el procesamiento de BicyclingLayer cuando se solicita cómo llegar en bicicleta.
SuppressInfoWindows (*) Boolean Suprime el procesamiento de las ventanas de información.
SuppressMarkers (*) Boolean Suprime el procesamiento de marcadores.
SuppressPolylines (*) Boolean Suprime el procesamiento de polilíneas.

 


Clase TDirectionsRequest

Descripción Respuesta Directions devuelta por el servidor de direcciones. Más información en google.maps.DirectionsRequest object specification Herencia TObject -> TPersistent -> TDirectionsRequest Propiedades

Propiedad Tipo Descripción
AvoidHighways (*) Boolean Si se establece a true, el servicio Directions evitará las autopistas siempre que sea posible.
AvoidTolls (*) Boolean Si se establece a true, el servicio Directions evitará las carreteras de peaje siempre que sea posible.
Count (+) Integer Cantidad de puntos de paso intermedios.
Destination (*) TLatLngStr Localización del destino. Puede especificarse como una cadena que será geocodificada o un LatLng.
OptimizeWaypoints (*) Boolean Si se establece a true, DirectionService intentará reordenar los puntos de paso intermedios suministrados para minimizar el coste global de la ruta. Si se optimizan los puntos de paso, se tendrá que mirar TDirectionsRoute.WaypointOrder en la respuesta para determinar la nueva ordenación.
Origin (*) TLatLngStr Localización del origen. Puede especificarse como una cadena que será geocodificada o un LatLng.
ProvideRouteAlt (*) Boolean Si debe o no proveer rutas alternativas.
Region (*) TRegion Código de la región usado como influencia para las solicitudes de geocodificación. Ver valores
TRegion = (r_NO_REGION, rAFGHANISTAN, rALAND, rALBANIA, rALGERIA, rAMERICAN_SAMOA, rANDORRA,
          rANGOLA, rANGUILLA, rANTARCTICA, rANTIGUA_AND_BARBUDA, rARGENTINA, rARMENIA, rARUBA,
          rASCENSION_ISLAND, rAUSTRALIA, rAUSTRIA, rAZERBAIJAN, rBAHAMAS, rBAHRAIN, rBANGLADESH,
          rBARBADOS, rBELARUS, rBELGIUM, rBELIZE, rBENIN, rBERMUDA, rBHUTAN, rBOLIVIA,
          rBOSNIA_AND_HERZEGOVINA, rBOTSWANA, rBRAZIL, rBRITISH_INDIAN_OCEAN_TERRITORY,
          rBRITISH_VIRGIN_ISLANDS, rBRUNEI, rBULGARIA, rBURKINA_FASO, rBURUNDI, rCAMBODIA,
          rCAMEROON, rCANADA, rCAPE_VERDE, rCAYMAN_ISLANDS, rCENTRAL_AFRICAN_REPUBLIC, rCHAD,
          rCHILE, rCHRISTMAS_ISLAND, rCOCOS_KEELING_ISLANDS, rCOLOMBIA, rCOMOROS, rCOOK_ISLANDS,
          rCOSTA_RICA, rCOTE_D_IVOIRE, rCROATIA, rCUBA, rCYPRUS, rCZECH_REPUBLIC,
          rDEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA, rDEMOCRATIC_REPUBLIC_OF_THE_CONGO, rDENMARK,
          rDJIBOUTI, rDOMINICA, rDOMINICAN_REPUBLIC, rEAST_TIMOR, rECUADOR, rEGYPT, rEL_SALVADOR,
          rEQUATORIAL_GUINEA, rERITREA, rESTONIA, rETHIOPIA, rEUROPEAN_UNION, rFALKLAND_ISLANDS,
          rFAROE_ISLANDS, rFEDERATED_STATES_OF_MICRONESIA, rFIJI, rFINLAND, rFRANCE,
          rFRENCH_GUIANA, rFRENCH_POLYNESIA, rFRENCH_SOUTHERN_AND_ANTARCTIC_LANDS, rGABON,
          rGEORGIA, rGERMANY, rGHANA, rGIBRALTAR, rGREECE, rGREENLAND, rGRENADA, rGUADELOUPE,
          rGUAM, rGUATEMALA, rGUERNSEY, rGUINEA, rGUINEA_BISSAU, rGUYANA, rHAITI,
          rHEARD_ISLAND_AND_MCDONALD_ISLANDS, rHONDURAS, rHONG_KONG, rHUNGARY, rICELAND,
          rINDIA, rINDONESIA, rIRAN, rIRAQ, rISLE_OF_MAN, rISRAEL, rITALY, rJAMAICA, rJAPAN,
          rJERSEY, rJORDAN, rKAZAKHSTAN, rKENYA, rKIRIBATI, rKUWAIT, rKYRGYZSTAN, rLAOS, rLATVIA,
          rLEBANON, rLESOTHO, rLIBERIA, rLIBYA, rLIECHTENSTEIN, rLITHUANIA, rLUXEMBOURG, rMACAU,
          rMACEDONIA, rMADAGASCAR, rMALAWI, rMALAYSIA, rMALDIVES, rMALI, rMALTA, rMARSHALL_ISLANDS,
          rMARTINIQUE, rMAURITANIA, rMAURITIUS, rMAYOTTE, rMEXICO, rMOLDOVA, rMONACO, rMONGOLIA,
          rMONTENEGRO, rMONTSERRAT, rMOROCCO, rMOZAMBIQUE, rMYANMAR, rNAMIBIA, rNAURU, rNEPAL,
          rNETHERLANDS, rNETHERLANDS_ANTILLES, rNEW_CALEDONIA, rNEW_ZEALAND, rNICARAGUA, rNIGER,
          rNIGERIA, rNIUE, rNORFOLK_ISLAND, rNORTHERN_MARIANA_ISLANDS, rNORWAY, rOMAN, rPAKISTAN,
          rPALAU, rPALESTINIAN_TERRITORIES, rPANAMA, rPAPUA_NEW_GUINEA, rPARAGUAY,
          rPEOPLE_S_REPUBLIC_OF_CHINA, rPERU, rPHILIPPINES, rPITCAIRN_ISLANDS, rPOLAND, rPORTUGAL,
          rPUERTO_RICO, rQATAR, rREPUBLIC_OF_IRELAND_AND_NORTHERN_IRELAND, rREPUBLIC_OF_KOREA,
          rREPUBLIC_OF_THE_CONGO, rREUNION, rROMANIA, rRUSSIA, rRWANDA, rSAINT_HELENA,
          rSAINT_KITTS_AND_NEVIS, rSAINT_LUCIA, rSAINT_VINCENT_AND_THE_GRENADINES,
          rSAINT_PIERRE_AND_MIQUELON, rSAMOA, rSAN_MARINO, rSAO_TOME_AND_PRINCIPE, rSAUDI_ARABIA,
          rSENEGAL, rSERBIA, rSEYCHELLES, rSIERRA_LEONE, rSINGAPORE, rSLOVAKIA, rSLOVENIA,
          rSOLOMON_ISLANDS, rSOMALIA, rSOUTH_AFRICA, rSOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS,
          rSOUTH_SUDAN, rSPAIN, rSRI_LANKA, rSUDAN, rSURINAME, rSWAZILAND, rSWEDEN, rSWITZERLAND,
          rSYRIA, rTAIWAN, rTAJIKISTAN, rTANZANIA, rTHAILAND, rTHE_GAMBIA, rTOGO, rTOKELAU, rTONGA,
          rTRINIDAD_AND_TOBAGO, rTUNISIA, rTURKEY, rTURKMENISTAN, rTURKS_AND_CAICOS_ISLANDS,
          rTUVALU, rUGANDA, rUKRAINE, rUNITED_ARAB_EMIRATES, rUNITED_KINGDOM,
          rUNITED_STATES_OF_AMERICA, rUNITED_STATES_VIRGIN_ISLANDS, rURUGUAY, rUZBEKISTAN,
          rVANUATU, rVATICAN_CITY, rVENEZUELA, rVIETNAM, rWALLIS_AND_FUTUNA, rWESTERN_SAHARA,
          rYEMEN, rZAMBIA, rZIMBABWE);
TransitOpt (*) TTransitOptions Configuración que sólo aplicará a las solicitudes cuando TravelMode sea TRANSIT.
TravelMode (*) TTravelMode Tipo de ruta solicitada. Ver valores
TTravelMode = (tmBICYCLING, tmDRIVING, tmTRANSIT, tmWALKING);
UnitSystem (*) TUnitSystem Sistema de unidades preferido a utilizar para mostrar la distancia. Ver valores
TUnitSystem = (usIMPERIAL, usMETRIC);
Waypoints (+) [I: Integer]: TWaypoint Array de puntos de paso intermedios.
WaypointsList (*) TWaypointsList Array de puntos de paso intermedios.

 


Clase TWaypoint

Descripción Punto de paso intermedio para el cálculo de una ruta. Herencia TObject -> TPersistent -> TCollectionItem -> TWaypoint Propiedades

Propiedad Tipo Descripción
Location (*) TLatLngStr Dirección o punto de coordenadas grográficas del punto de paso.
StopOver (*) Boolean A true indica que este punto de paso es una parada entre el origen y el destino.
Title (*) string Descripción para el punto de paso.

 


Clase TWaypointsList

Descripción Colección de puntos de paso de una ruta. Herencia TObject -> TPersistent -> TCollection -> TWaypointsList Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TWaypoint Lista de elementos en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TWaypoint y la añade en el array de Items. Más información
function Add: TWaypoint;
Devuelve Nuevo elemento
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Create (+) Constructor de la clase. Más información
constructor Create(aOwner: TPersistent); override;
Parámetro Descripción
aOwner Propietario del objecto.
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Insert (+) Crea una nueva instancia de TWaypoint y la añade en el array de Items. Más información
function Insert(Index: Integer): TWaypoint;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo elemento.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.

 


Clase TDirectionsRoute

Descripción Una única ruta que contiene un conjunto de etapas en un DirectionsResult. Más información en DirectionsRoute object specification. Herencia TObject -> TDirectionsRoute Propiedades

Propiedad Tipo Descripción
Bounds (+) TLatLngBounds Límites para la ruta.
Copyrights (+) string Texto del Copyrights a mostrar para esta ruta.
CountLeg (+) Integer Número de Legs.
CountOverviewPath (+) Integer Número de OverviewPath.
CountWarning (+) Integer Número de Warnings.
CountWaypointOrder (+) Integer Número de WaypointOrder.
Leg (+) [Index: Integer]: TDirectionsLeg Array de DirectionsLegs, cada uno de los cuales contiene información acerca de los pasos de los que se compone.
OverviewPath (+) [Index: Integer]: TLatLng Array de los TLatLng que representan el curso entero de la ruta.
Sumary (+) string Resumen de la ruta.
Warning (+) [Index: Integer]: string Advertencias a mostrar cuando se muestre esta dirección.
WaypointOrder (+) [Index: Integer]: Integer Si optimizeWaypoints está establecida a true, esta propiedad contiene la reordenación de los puntos de paso introducidos.

 


Clase TMarkerOptions

Descripción Opciones para el marcador de una ruta. Más información en MarkerOptions object specification. Herencia TObject -> TPersistent -> TMarkerOptions Propiedades

Propiedad Tipo Descripción
Clickable (*) Boolean Si se establece a true, el marcador recibirá eventos del ratón.
Draggable (*) Boolean Si se establece como true, el marcador se puede desplazar.
Flat (*) Boolean Si se establece a true, no se mostrará la sombra del marcador.
Icon (*) string Icono a mostrar para el marcador.

 


Clase TPolylineOptions

Descripción Opciones para el marcador de una ruta. Más información en MarkerOptions object specification. Herencia TObject -> TPersistent -> TCustomPolylineOptions -> TPolylineOptions Propiedades

Propiedad Tipo Descripción
StrokeColor (*) TColor Color del trazo.
Heredadas de TCustomPolylineOptions
Clickable (*) Boolean Indica si la Polilinea recibirá los eventos del ratón.
Geodesic (*) Boolean Cuando se establece a true, devuelve cada borde como una geodésica.
StrokeOpacity (*) Real Opacidad del trazo entre 0.0 y 1.0.
StrokeWeight (*) Integer Anchura del trazo en píxeles.

 


Clase TLatLngStr

Descripción Clase interna con información de un punto de coordenadas geográficas y/o una dirección. Herencia TObject -> TPersistent -> TLatLngStr Propiedades

Propiedad Tipo Descripción
Address (*) string Cadena con la dirección de un lugar.
LatLng (*) TLatLng Punto de coordenadas geográficas.

 


Clase TTransitOptions

Descripción Respuesta Directions devuelta por el servidor de direcciones. Clase base. Más información en TransitOptions object specification. Herencia TObject -> TPersistent -> TTransitOptions Propiedades

Propiedad Tipo Descripción
ArrivalDate (*) TDate Día de llegada deseado para la ruta.
ArrivalTime (*) TTime Hora de llegada deseada para la ruta.
DepartureDate (*) TDate Día de salida deseado para la ruta.
DepartureTime (*) TTime Hora de salida deseada para la ruta.

 


Clase TDirectionsLeg

Descripción Una única etapa que consiste en un conjunto de pasos en un TDirectionsResult. Algunos campos de la etapa puede no ser devueltos para todas las peticiones. Más información en DirectionsLeg object specification. Herencia TObject -> TDirectionsLeg Propiedades

Propiedad Tipo Descripción
ArrivalTime (+) TTimeClass Hora de llegada estimada para esta etapa. Sólo aplicable para peticiones TRANSIT.
CountStep (+) Integer Cantidad de Steps.
CountViaWaypoints (+) Integer Cantidad de ViaWaypoints.
DepartureTime (+) TTimeClass Hora estima de salida para esta etapa. Sólo aplicable para peticiones TRANSIT.
Distance (+) TDistance Distancia total cubierta por esta etapa. Esta propiedad puede no estar definida si la distancia no es conocida.
Duration (+) TDuration Duración total para esta etapa. Esta propiedad puede no estar definida si la duración no es conocida.
EndAddress (+) string Dirección del destino de esta etapa.
EndLocation (+) TLatLng Indica el destino actual geocodificado.
StartAddress (+) string Dirección del origen de esta etapa.
StartLocation (+) TLatLng Indica el origen actual geocodificado.
Step (+) [Index: Integer]: TDirectionsStep Array de TDirectionsStep, cada uno de los cuales contiene información acerca de los pasos individuales de esta etapa.
ViaWaypoints (+) [Index: Integer]: TLatLng Array de puntos de paso a lo largo de esta etapa que no fueron especificado en la petición inicial, resultado del desplazamiento por parte del usuario de la polilinea o por la selección de una ruta alternativa.

 


Clase TDirectionsStep

Descripción Un DirectionsStep en un DirectionsResult. Algunos de los campos pueden no estar informados. Más información en DirectionsStep object specification. Herencia TObject -> TDirectionsStep Propiedades

Propiedad Tipo Descripción
CountPath (+) Integer Numero de Paths.
Distance (+) TDistance Distancia cubierta por este paso. Esta propiedad puede no estar definida dado que la distancia puede no conocerse.
Duration (+) TDuration Tiempo normal usado para realizar este paso en segundos y en formato texto. Esta propiedad puede no estar definida dado que la duración puede no conocerse.
EndLocation (+) TLatLng Localización de llegada de este paso.
Instructions (+) string Instrucciones de este paso.
Path (+) [Index: integer]: TLatLng Secuencia de LatLngs que describen el curso de este paso.
StartLocation (+) TLatLng Localización de salida de este paso.
Steps (+) TDirectionsStep Pasos secundarios de este paso.
Transit (+) TTransitDetails Detalles específicos del tránsito acerca de este paso. Esta propiedad no estará definida a menos que el medio de transporte de este paso sea TRANSIT.
TravelMode (+) TTravelMode Modo de transporte usado en este paso. Ver valores
TTravelMode = (tmBICYCLING, tmDRIVING, tmTRANSIT, tmWALKING);

 


Clase TDuration

Descripción Representación de la duración como un valor numérico y su representación en cadena. Más información en Duration object specification. Herencia TObject -> TDuration Propiedades

Propiedad Tipo Descripción
Text (+) string Cadena que representa el valor de la duración.
Value (+) Integer Duración en segundos.

 


Clase TDistance

Descripción Representación de distancias como un valor numérico y su representación en cadena. Más información en Distance object specification. Herencia TObject -> TDistance Propiedades

Propiedad Tipo Descripción
Text (+) string Representación del valor de la distancia, usando la UnitSystem especificada en la solucitud.
Value (+) Integer Distancia en metros.

 


Clase TTimeClass

Descripción Hora de un salida/llegada. Más información en Time object specification. Herencia TObject -> TTimeClass Propiedades

Propiedad Tipo Descripción
Text (+) string Cadena que representa el valor de la hora. La hora se muestra en la zona horaria de la parada.
TimeZone (+) string Zona horaria en la que se encuentra esta parada. El valor es el nombre de la zona horaria definida en la base de datos IANA Time Zone.
Value (+) TDateTime Hora de esta salida o llegada.

 


Clase TTransitDetails

Descripción Detalles de un paso específico. Más información en TransitDetails object specification. Herencia TObject -> TTransitDetails Propiedades

Propiedad Tipo Descripción
ArribalStop (+) TTransitStop La parada de la llegada de este paso de tránsito.
ArribalTime (+) TTimeClass La hora de llegada de este paso.
DepartureStop (+) TTransitStop La parada de salida de este paso de tránsito.
DepartureTime (+) TTimeClass La hora de salida de este paso.
Headsign (+) string La dirección en la que viajar en esta línea, tal como está indicado en el vehículo o en la parada de la salida.
Headway (+) Integer Número previsto de segundos entre vehículos equivalentes en esta parada.
Line (+) TTransitLine Detalles sobre el transporte público usado en este paso.
NumStops (+) Integer Numero de paradas de este paso. Incluye la parada de llegada, pero no la parada de salida.

 


Clase TTransitStop

Descripción Un punto de un paso de tránsito específico. Más información en TransitStop object specification. Herencia TObject -> TTransitStop Propiedades

Propiedad Tipo Descripción
Location (+) TLatLng Ubicación de esta parada.
Name (+) string Nombre de esta parada de tránsito.

 


Clase TTransitLine

Descripción Detalles de un Transporte público usado en un paso específico. Más información en TransitLine object specification. Herencia TObject -> TTransitLine Propiedades

Propiedad Tipo Descripción
Agencie (+) [Index: Integer]: TTransitAgency Agencias que operan en esta línea de transporte público.
Color (+) string El color de uso común en la señalización de esta línea de transporte público, representado como una cadena hexadecimal.
CountAgencie (+) Integer Contador del número de agencias.
Icon (+) string La dirección URL de un icono asociado a esta línea.
Name (+) string Nombre completo de esta línea de transporte público, ej. «8 Avenue Local».
ShortName (+) string Nombre corto de la línea de transporte público, ej. «E».
TextColor (+) string El color del texto de uso común en la señalización de esta línea de transporte público, representado como una cadena hexadecimal.
Url (+) string URL de la agencia que es específico de esta línea de transporte público.
Vehicle (+) TTransitVehicle El tipo de vehículo usado, ej. train o bus.

 


Clase TTransitAgency

Descripción Detalles de un Transporte público usado en un paso específico. Más información en TransitLine object specification. Herencia TObject -> TTransitAgency Propiedades

Propiedad Tipo Descripción
Name (+) string Nombre de la agencia de transporte.
Phone (+) string Número de teléfono de la agencia de transporte.
Url (+) string URL de la agencia de transporte.

 


Clase TTransitVehicle

Descripción Tipo de vehículo usado, ej tren o autobús. Más información en TransitVehicle object specification. Herencia TObject -> TTransitVehicle Propiedades

Propiedad Tipo Descripción
Icon (+) string URL para el icono que corresponde al tipo de vbehículo usado en esta línea.
LocalIcon (+) string URL para un icono que corresponde al tipo de vehículo usado en esta región en lugar del icono más general.
Name (+) string Nombre para este tipo de TransitVehicle, ej. «Train» o «Bus».
VehicleType (+) TVehicleType El tipo de vehículo usado. Ver valores
TVehicleType = (vtRAIL, vtMETRO_RAIL, vtSUBWAY, vtTRAM, vtMONORAIL, vtHEAVY_RAIL,
          vtCOMMUTER_TRAIN, vtHIGH_SPEED_TRAIN, vtBUS, vtINTERCITY_BUS, vtTROLLEYBUS,
          vtSHARE_TAXI, vtFERRY, vtCABLE_CAR, vtGONDOLA_LIFT, vtFUNICULAR, vtOTHER);

 


Clase TGMElevation

Descripción Clase para el cálculo de elevaciones. Más información en:

Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects / ILinePoint -> TCustomGMElevation -> TGMElevation Propiedades

Propiedad Tipo Descripción
Heredadas de TCustomGMElevation
CountLinePoints (+) Integer Cantidad de puntos.
ElevationResult (+) TElevationResults Resultado de la búsqueda.
ElevationType (*) TElevationType Tipo de búsqueda para las elevaciones. Ver valores
TElevationType = (etAlongPath, etForLocations);
Items(*) [I: Integer]: TLinePoint Array con la colección de elementos.
LinePoints (*) TLinePoints Camino a lo largo del cual recoger el valor de las elevaciones.
Samples (*) Integer Número de puntos equidistantes a lo largo del camino dado para los que recuperar el valor de la elevación, incluido el punto final. El numero de muestras debe ser un valor entre 2 y 512 incluidos. Sólo aplicable a ElevationType = etAlongPath.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
AddLatLngFromPoly (+) Añade puntos desde un TBasePolyline (un TPoyline o un TPolygon). Más información
procedure AddLatLngFromPoly(Poly: TBasePolyline; DeleteBeforeLoad: Boolean = True); override;
Parámetro Descripción
Poly TBasePolyline de donde obtener los datos.
DeleteBeforeLoad Si true, elimina todos los puntos existentes antes de cargar el TBasePolyline.
Heredados de TCustomGMElevation
AddLatLng (+) Crea un nuevo punto TLinePoint. Más información
function AddLatLng(Lat, Lng: Real): TLinePoint; overload;
Parámetro Descripción
Lat Latitud del punto.
Lng Longitud del punto.
Devuelve Nueva instancia de TLinePoint.
AddLatLng (+) Crea un nuevo punto TLinePoint. Más información
function AddLatLng(LatLng: TLatLng): TLinePoint; overload;
Parámetro Descripción
LatLng Latitud/Longitud del punto.
Devuelve Nueva instancia de TLinePoint.
AddLatLngFromCSV (+) Añade puntos desde un archivo CSV. Más información
procedure AddLatLngFromCSV(LatColumn, LngColumn: Integer; FileName: string;
      Delimiter: Char = ','; DeleteBeforeLoad: Boolean = True; WithRownTitle: Boolean = True);
Parámetro Descripción
LatColumn Columna con la latitud.
LngColumn Columna con la longitud.
FileName Nombre del fichero CSV.
Delimiter Delimitador usado en el fichero CSV (usualmente «,» o «;»).
DeleteBeforeLoad Si true, elimina todos los puntos existentes antes de cargar el archivo CSV.
WithRownTitle Si true, la primera fila del archivo CSV contendrá el título de las columnas.
AddLatLngFromDataSet (+) Añade puntos desde un DataSet. Más información
procedure AddLatLngFromDataSet(DataSet: TDataSet; LatField, LngField: string;
      DeleteBeforeLoad: Boolean = True);
Parámetro Descripción
DataSet DataSet de donde obtener los datos.
LatField Campo con la latitud.
LngField Campo con la longitud.
DeleteBeforeLoad Si true, elimina todos los puntos existentes antes de cargar el DataSet.
Clear (+) Borra todos los puntos. Más información
procedure Clear ;
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
DelLatLng (+) Borra un punto específico. Más información
procedure DelLatLng(Index: Integer);
Parámetro Descripción
Index Índice del punto a borrar.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Execute (+) Busca las elevaciones según los parámetros especificados. Más información
procedure Execute;

 


Clase TElevationResults

Descripción Clase para la colección de elevaciones. Herencia TObject -> TElevationResults Propiedades

Propiedad Tipo Descripción
Count (+) Integer Cantidad de elevaciones.
Items (+) [Index: Integer]: TElevationResult Lista de elevaciones.
Status (+) TElevationStatus Estado devuelto por ElevationService tras la finalización de una solicitud de elevación. Ver valores
TElevationStatus = (esINVALID_REQUEST, esOK, esOVER_QUERY_LIMIT, esREQUEST_DENIED,
          esUNKNOWN_ERROR, esNO_REQUEST);

Métodos

Método Descripción
Clear (+) Borra todos los elementos de la colección de elevaciones. Más información
procedure Clear;

 


Clase TElevationResult

Descripción Resultado de una llamada a ElevationService. Más información en google.maps.ElevationResult object specification Herencia TObject -> TElevationResult Propiedades

Propiedad Tipo Descripción
Elevation (+) Real Elevación del punto terrestre, en metro sobre el nivel del mar.
Location (+) TLatLng Ubicación de este resultado de la elevación.
Resolution (+) Real Distancia, en metros, entre los puntos de muestreo de la elevación interpolada.

 


Clase TGMGeocode

Descripción Servicio para convertir entre dirección y TLatLng. Más información en

Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMGeocode Propiedades

Propiedad Tipo Descripción
Bounds (*) TLatLngBounds LatLngBounds dentro de la que buscar.
Count (+) Integer Cantidad de resultados.
GeoResult (+) [Index: Integer]: TGeoResult Array de resultados.
GeoStatus (+) TGeocoderStatus Estado de la geolocalización. Ver valores
TGeocoderStatus = (gsERROR, gsINVALID_REQUEST, gsOK, gsOVER_QUERY_LIMIT, gsREQUEST_DENIED,
          gsUNKNOWN_ERROR, gsZERO_RESULTS, gsWithoutState);
Icon (*) string Icono para mostrar los resultados.
LangCode (*) TLangCode Idioma usado en el resultado. Ver valores
TLangCode = (lc_NOT_DEFINED, lcARABIC, lcBASQUE, lcBENGALI, lcBULGARIAN, lcCATALAN,
          lcCHINESE_SIMPLIFIED, lcCHINESE_TRADITIONAL, lcCROATIAN, lcCZECH, lcDANISH,
          lcDUTCH, lcENGLISH, lcENGLISH_AUSTRALIAN, lcENGLISH_GREAT_BRITAIN, lcFARSI,
          lcFILIPINO, lcFINNISH, lcFRENCH, lcGALICIAN, lcGERMAN, lcGREEK, lcGUJARATI,
          lcHEBREW, lcHINDI, lcHUNGARIAN, lcINDONESIAN, lcITALIAN, lcJAPANESE, lcKANNADA,
          lcKOREAN, lcLATVIAN, lcLITHUANIAN, lcMALAYALAM, lcMARATHI, lcNORWEGIAN,
          lcPOLISH, lcPORTUGUESE, lcPORTUGUESE_BRAZIL, lcPORTUGUESE_PORTUGAL, lcROMANIAN,
          lcRUSSIAN, lcSERBIAN, lcSLOVAK, lcSLOVENIAN, lcSPANISH, lcSWEDISH, lcTAGALOG,
          lcTAMIL, lcTELUGU, lcTHAI, lcTURKISH, lcUKRAINIAN, lcVIETNAMESE);
Marker (*) TGMMarker TGMMarker asociado en el que se crearán los resultados.
PaintMarkerFound (*) Boolean Si se establece a true, se crearán los marcadores en el GMMarker asociado.
Region (*) TRegion Código de pais utilizado para centrar la búsqueda. Ver valores
TRegion = (r_NO_REGION, rAFGHANISTAN, rALAND, rALBANIA, rALGERIA, rAMERICAN_SAMOA, rANDORRA,
          rANGOLA, rANGUILLA, rANTARCTICA, rANTIGUA_AND_BARBUDA, rARGENTINA, rARMENIA, rARUBA,
          rASCENSION_ISLAND, rAUSTRALIA, rAUSTRIA, rAZERBAIJAN, rBAHAMAS, rBAHRAIN, rBANGLADESH,
          rBARBADOS, rBELARUS, rBELGIUM, rBELIZE, rBENIN, rBERMUDA, rBHUTAN, rBOLIVIA,
          rBOSNIA_AND_HERZEGOVINA, rBOTSWANA, rBRAZIL, rBRITISH_INDIAN_OCEAN_TERRITORY,
          rBRITISH_VIRGIN_ISLANDS, rBRUNEI, rBULGARIA, rBURKINA_FASO, rBURUNDI, rCAMBODIA,
          rCAMEROON, rCANADA, rCAPE_VERDE, rCAYMAN_ISLANDS, rCENTRAL_AFRICAN_REPUBLIC, rCHAD,
          rCHILE, rCHRISTMAS_ISLAND, rCOCOS_KEELING_ISLANDS, rCOLOMBIA, rCOMOROS, rCOOK_ISLANDS,
          rCOSTA_RICA, rCOTE_D_IVOIRE, rCROATIA, rCUBA, rCYPRUS, rCZECH_REPUBLIC,
          rDEMOCRATIC_PEOPLE_S_REPUBLIC_OF_KOREA, rDEMOCRATIC_REPUBLIC_OF_THE_CONGO, rDENMARK,
          rDJIBOUTI, rDOMINICA, rDOMINICAN_REPUBLIC, rEAST_TIMOR, rECUADOR, rEGYPT, rEL_SALVADOR,
          rEQUATORIAL_GUINEA, rERITREA, rESTONIA, rETHIOPIA, rEUROPEAN_UNION, rFALKLAND_ISLANDS,
          rFAROE_ISLANDS, rFEDERATED_STATES_OF_MICRONESIA, rFIJI, rFINLAND, rFRANCE,
          rFRENCH_GUIANA, rFRENCH_POLYNESIA, rFRENCH_SOUTHERN_AND_ANTARCTIC_LANDS, rGABON,
          rGEORGIA, rGERMANY, rGHANA, rGIBRALTAR, rGREECE, rGREENLAND, rGRENADA, rGUADELOUPE,
          rGUAM, rGUATEMALA, rGUERNSEY, rGUINEA, rGUINEA_BISSAU, rGUYANA, rHAITI,
          rHEARD_ISLAND_AND_MCDONALD_ISLANDS, rHONDURAS, rHONG_KONG, rHUNGARY, rICELAND,
          rINDIA, rINDONESIA, rIRAN, rIRAQ, rISLE_OF_MAN, rISRAEL, rITALY, rJAMAICA, rJAPAN,
          rJERSEY, rJORDAN, rKAZAKHSTAN, rKENYA, rKIRIBATI, rKUWAIT, rKYRGYZSTAN, rLAOS, rLATVIA,
          rLEBANON, rLESOTHO, rLIBERIA, rLIBYA, rLIECHTENSTEIN, rLITHUANIA, rLUXEMBOURG, rMACAU,
          rMACEDONIA, rMADAGASCAR, rMALAWI, rMALAYSIA, rMALDIVES, rMALI, rMALTA, rMARSHALL_ISLANDS,
          rMARTINIQUE, rMAURITANIA, rMAURITIUS, rMAYOTTE, rMEXICO, rMOLDOVA, rMONACO, rMONGOLIA,
          rMONTENEGRO, rMONTSERRAT, rMOROCCO, rMOZAMBIQUE, rMYANMAR, rNAMIBIA, rNAURU, rNEPAL,
          rNETHERLANDS, rNETHERLANDS_ANTILLES, rNEW_CALEDONIA, rNEW_ZEALAND, rNICARAGUA, rNIGER,
          rNIGERIA, rNIUE, rNORFOLK_ISLAND, rNORTHERN_MARIANA_ISLANDS, rNORWAY, rOMAN, rPAKISTAN,
          rPALAU, rPALESTINIAN_TERRITORIES, rPANAMA, rPAPUA_NEW_GUINEA, rPARAGUAY,
          rPEOPLE_S_REPUBLIC_OF_CHINA, rPERU, rPHILIPPINES, rPITCAIRN_ISLANDS, rPOLAND, rPORTUGAL,
          rPUERTO_RICO, rQATAR, rREPUBLIC_OF_IRELAND_AND_NORTHERN_IRELAND, rREPUBLIC_OF_KOREA,
          rREPUBLIC_OF_THE_CONGO, rREUNION, rROMANIA, rRUSSIA, rRWANDA, rSAINT_HELENA,
          rSAINT_KITTS_AND_NEVIS, rSAINT_LUCIA, rSAINT_VINCENT_AND_THE_GRENADINES,
          rSAINT_PIERRE_AND_MIQUELON, rSAMOA, rSAN_MARINO, rSAO_TOME_AND_PRINCIPE, rSAUDI_ARABIA,
          rSENEGAL, rSERBIA, rSEYCHELLES, rSIERRA_LEONE, rSINGAPORE, rSLOVAKIA, rSLOVENIA,
          rSOLOMON_ISLANDS, rSOMALIA, rSOUTH_AFRICA, rSOUTH_GEORGIA_AND_THE_SOUTH_SANDWICH_ISLANDS,
          rSOUTH_SUDAN, rSPAIN, rSRI_LANKA, rSUDAN, rSURINAME, rSWAZILAND, rSWEDEN, rSWITZERLAND,
          rSYRIA, rTAIWAN, rTAJIKISTAN, rTANZANIA, rTHAILAND, rTHE_GAMBIA, rTOGO, rTOKELAU, rTONGA,
          rTRINIDAD_AND_TOBAGO, rTUNISIA, rTURKEY, rTURKMENISTAN, rTURKS_AND_CAICOS_ISLANDS,
          rTUVALU, rUGANDA, rUKRAINE, rUNITED_ARAB_EMIRATES, rUNITED_KINGDOM,
          rUNITED_STATES_OF_AMERICA, rUNITED_STATES_VIRGIN_ISLANDS, rURUGUAY, rUZBEKISTAN,
          rVANUATU, rVATICAN_CITY, rVENEZUELA, rVIETNAM, rWALLIS_AND_FUTUNA, rWESTERN_SAHARA,
          rYEMEN, rZAMBIA, rZIMBABWE);
XMLData (+) TStringList XML resultante de la geocodificación.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar.. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(aOwner: TComponent); override;
Parámetro Descripción
aOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
DoMarkers (+) Crea los marcadores resultantes de la geocodificación en el TGMMarker asociado. Más información
procedure DoMarkers;
Geocode (+) Geolocaliza la TLatLng pasada por parámetro. Más información
procedure Geocode(LatLng: TLatLng); overload;
Parámetro Descripción
LatLng TLatLng a geolocalizar.
Geocode (+) Geolocaliza la dirección pasada por parámetro. Más información
procedure Geocode(Address: string); overload;
Parámetro Descripción
Address Dirección a geolocalizar.
Geocode (+) Geolocaliza la Lat/Lng pasada por parámetro. Más información
procedure Geocode(Lat, Lng: Real); overload;
Parámetro Descripción
Lat Latitud a geolocalizar.
Lng Longitud a geolocalizar.

Eventos

Evento Tipo Descripción
AfterGetData (*) TNotifyEvent Evento disparado después de conseguir los datos.
AfterParseData (*) TNotifyEvent Evento disparado después de analizar los datos.
BeforeParseData (*) TNotifyEvent Evento disparado antes de analizar los datos.
OnParseData (*) TParseData Evento disparado durante el análisis de los datos.

 


Clase TGeoResult

Descripción Un único resultado de la geocodificación devuelto por el servidor de geocodificación. Una consulta de geocodificación puede devolver varios resultados. Más información en google.maps.GeocoderResult object specification Herencia TObject -> TGeoResult Propiedades

Propiedad Tipo Descripción
AddrCompList (+) TAddressComponentsList Lista de GeocoderAddressComponents.
FormatedAddr (+) string Cadena que contiene la dirección interpretable por humanos de la localización.
Geometry (+) TGeometry Información geométrica del GeocoderResult.
TypeList (+) TStringList Lista de cadenas que representan el tipo de elemento devuelto por la geocodificación.

 


Clase TAddressComponentsList

Descripción Clase interna para gestionar la lista de componentes de la dirección. Herencia TObject -> TAddressComponentsList Propiedades

Propiedad Tipo Descripción
Count (+) Integer Cantidad de elementos en la lista.
Items (+) [Index: Integer]: TAddressComponent Lista de TAddressComponent.

 


Clase TAddressComponent

Descripción Un componente de la dirección único dentro de un GeocoderResult. Una dirección completa puede constar de múltiples componentes de dirección. Más información en google.maps.GeocoderAddressComponent object specification Herencia TObject -> TAddressComponent Propiedades

Propiedad Tipo Descripción
AddrCompTypeList (+) TStringList Lista de cadenas que representan el tipo de este componente de la dirección.
LongName (+) string Texto completo del componente de la dirección.
ShortName (+) string Abreviación o texto corto del componente de la dirección dado.

 


Clase TGeocodeGeometry

Descripción Información geométrica del GeocoderResult. Más información en google.maps.GeocoderGeometry object specification Herencia TObject -> TGeocodeGeometry Propiedades

Propiedad Tipo Descripción
Bounds (+) TLatLngBounds Límites precisos de este GeocodeResult, si aplica.
Location (+) TLatLng Las coordenadas de éste resultado.
LocationType (+) TGeocoderLocationType Tipo de ubicación devuelta en la localización. Ver valores
TGeocoderLocationType = (gltAPPROXIMATE, gltGEOMETRIC_CENTER, gltRANGE_INTERPOLATED,
          gltROOFTOP, gltNOTHING);
Viewport (+) TLatLngBounds Los límites de la ventana recomendada para mostrar este GeocodeResult.

 


Clase TGeometry

Descripción Clase para acceder a la libraría Geometry. Más información en

Herencia TObject -> TGeometry Métodos

Método Descripción
ComputeArea (+) Devuelve el área de una ruta cerrada. El área calculada usa las mismas unidades que Radius. El radio por defecto es el radio de la Tierra en metros, en cuyo caso el área es en metros cuadrados.Los puntos tiene que estar separados por punto y coma (;) y la Lat/Lng de un punto por una barra vertical (|). Más información
class function ComputeArea(Map: TCustomGMMap; PointsStr: string; Radius: Real = -1): Real;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
PointsStr String con los puntos.
Radius Radio. -1 radio por defecto.
Devuelve Area.
ComputeDistanceBetween (+) Devuelve la distancia entre dos LatLngs. Más información
class function ComputeDistanceBetween(Map: TCustomGMMap; Origin, Dest: TLatLng;
      Radius: Real = -1): Real;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
Origin TLatLng origen.
Dest TLatLng destino.
Radius Radio. -1 radio por defecto.
Devuelve Distancia entre los puntos.
ComputeHeading (+) Devuelve los grados entre dos TLatLng. Más información
class function ComputeHeading(Map: TCustomGMMap; Origin, Dest: TLatLng): Real;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
Origin TLatLng origen.
Dest TLatLng destino.
Devuelve Grados entre los puntos.
ComputeLength (+) Devuelve la longitud del camino dado.Los puntos tiene que estar separados por punto y coma (;) y la Lat/Lng de un punto por una barra vertical (|). Más información
class function ComputeLength(Map: TCustomGMMap; PointsStr: string;
      Radius: Real = -1): Real;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
PointsStr Cadena con los puntos.
Radius Radio. -1 radio por defecto.
Devuelve Longitud.
ComputeOffset (+) Devuelve la TLatLng resultante de desplazarse una distancia desde un origen en unos grados específicos. Más información
class procedure ComputeOffset(Map: TCustomGMMap; Origin: TLatLng; Distance,
      Heading: Real; Result: TLatLng; Radius: Real = -1);
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
Origin TLatLng origen.
Distance Distancia a desplazarse.
Heading Grados.
Result TLatLng resultante.
Radius Radio. -1 radio por defecto.
ComputeOffsetOrigin (+) Devuelve la TLatLng del origen sabiendo la TLatLng destino, los metros desplazados y los grados iniciales. Más información
class procedure ComputeOffsetOrigin(Map: TCustomGMMap; Dest: TLatLng; Distance,
      Heading: Real; Result: TLatLng; Radius: Real = -1);
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
Dest TLatLng destino.
Distance Distancia desplazada.
Heading Grados.
Result TLatLng resultante.
Radius Radio. -1 radio por defecto.
ComputeSignedArea (+) Devuelve el area de una ruta cerrada.Los puntos tiene que estar separados por punto y coma (;) y la Lat/Lng de un punto por una barra vertical (|). Más información
class function ComputeSignedArea(Map: TCustomGMMap; PointsStr: string;
      Radius: Real = -1): Real;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
PointsStr String con los puntos.
Radius Radio. -1 radio por defecto.
Devuelve Longitud.
DecodePath (+) Decodifica un string codificado en una secuencia de TLatLng. Más información
class function DecodePath(Map: TCustomGMMap; EncodedPath: string): string;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
EncodedPath Path a decodificar.
Devuelve Cadena con puntos decodificados.
EncodePath (+) Codifica una secuencia de TLatLng en un string codificado.Los puntos tiene que estar separados por punto y coma (;) y la Lat/Lng de un punto por una barra vertical (|). Más información
class function EncodePath(Map: TCustomGMMap; PointsStr: string): string;
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
PointsStr Cadena con los puntos a codificar.
Devuelve Cadena codificada.
Interpolate (+) Devuelve la TLatLng que se encuentra en la fracción dada del camino entre la TLatLng origen y la TLatLng destino. Más información
class procedure Interpolate(Map: TCustomGMMap; Origin, Dest: TLatLng;
      Fraction: Real; Result: TLatLng);
Parámetro Descripción
Map Mapa para acceder a las funciones JavaScript.
Origin TLatLng origen.
Dest TLatLng destino.
Fraction Fracción.
Result TLatLng resultante.
IsLocationOnEdge (+) Calcula si el punto dado se encuentra en o cerca de una polilínea, o el borde de un polígono, dentro de una tolerancia especificada. Más información
class function IsLocationOnEdge(GMPoly: TGMBasePolyline; Idx: Integer;
      LatLng: TLatLng; Tolerance: Integer): Boolean;
Parámetro Descripción
GMPoly GMPolyline o GMPolygon.
Idx Índice que especifica una Polyline o Polygon.
LatLng TLatLng a calcular.
Tolerance Tolerancia. -1 sin tolerancia.
Devuelve True si el punto se encuentra en o cerca de una polilínea, o el borde de un polígono.
ContainsLocation (+) Calcula si el punto dado se encuentra dentro del polígono especificado. Más información
class function ContainsLocation(GMPoly: TGMPolygon; Idx: Integer;
      LatLng: TLatLng): Boolean;
Parámetro Descripción
GMPoly GMPolygon.
Idx Índice que especifica un Polygon.
LatLng TLatLng a calcular.
Devuelve True si el punto se encuentra dentro del polígono.

 


Clase TGMGroundOverlay

Descripción Clase para la gestión de imágenes superpuestas. Herencia TObject -> TPersistent -> TComponent -> TGMBase -> TGMObjects -> TGMLinkedComponent -> TGMGroundOverlay Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TGroundOverlay Array con la colección de elementos.
VisualObjects (*) [I: Integer]: TGroundOverlay Colección de elementos.
Heredadas de TGMLinkedComponent
AutoUpdate (*) Boolean Si Active, modifica los objetos de forma automática, sino, necesita recargar el mapa.
Count (+) Integer Obtienen el número de elementos de la colección.
Heredadas de TGMObjects
Map (*) TCustomGMMap Mapa asociado al componente.
Heredadas de TGMBase
AboutGMLib (*) string Muestra un formulario «Acerca de» con información de la GMLib.
APIUrl (*) string Muestra una url a la página del API de Google Maps relacionada.
Language (*) TLang Especifica el idioma en que se mostrarán los mensajes de las excepciones mostradas por la clase/componente. Ver valores
TLang = (Espanol, English, French, PortuguesBR, Danish, German, Russian);

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TGroundOverlay y la añade en el array de Items. Más información
function Add(Url: string; SWLat: Real = 0; SWLng: Real = 0; NELat: Real = 0; NELng: Real = 0): TGroundOverlay;
Parámetro Descripción
Url Url o path del fichero imagen a superponer.
SWLat Latitud suroeste de la superposición.
SWLng Longitud suroeste de la superposición.
NELat Latitud noreste de la superposición.
NELng Longitud noreste de la superposición.
Devuelve Una nueva instancia de TGroundOverlay.
Heredados de TGMLinkedComponent
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(AOwner: TComponent); override;
Parámetro Descripción
AOwner Propietario del componente.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Clear (+) Borra todos los elementos de la colección. Más información
procedure Clear;
Delete (+) Borra un elemento de la colección. Más información
procedure Delete(Index: Integer);
Parámetro Descripción
Index Posición a borrar.
Move (+) Mueve un item a una nueva posición dentro del array de Items. Más información
procedure Move(CurIndex, NewIndex: Integer);
Parámetro Descripción
CurIndex Índice del elemento a mover.
NewIndex Índice destino.
ShowElements (+) Muestra los objetos en el mapa. Más información
procedure ShowElements; override;

Eventos

Evento Tipo Descripción
OnBoundsChanged (*) TLinkedComponentChange Este evento ocurre cuando cambian los límites de una superposición.
OnClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario pulsa una superposición.
OnClickableChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Clickable de una superposición.
OnDblClick (*) TLatLngIdxEvent Este evento ocurre cuando el usuario hace double-clic en una superposición.
OnOpacityChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Opacity de una superposición.
OnUrlChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Url de una superposición.
OnVisibleChange (*) TLinkedComponentChange Este evento ocurre cuando cambia la propiedad Visible de una superposición.
Heredados de TGMLinkedComponent
OnCloseClick (*) TLinkedComponentChange El evento OnCloseClick se dispara cuando la InfoWindows se cierra manualmente.
OnCloseOtherBeforeOpenChange (*) TLinkedComponentChange El evento OnCloseOtherBeforeOpenChange se dispara cuando cambia la propiedad CloseOtherBeforeOpen.
OnDisableAutoPanChange (*) TLinkedComponentChange El evento OnDisableAutoPanChange se dispara cuando cambia la propiedad DisableAutoPan.
OnHTMLContentChange (*) TLinkedComponentChange El evento OnHTMLContentChange se dispara cuando cambia la propiedad HTMLContent.
OnMaxWidthChange (*) TLinkedComponentChange El evento OnMaxWidthChange se dispara cuando cambia la propiedad MaxWidth.
OnPixelOffsetChange (*) TLinkedComponentChange El evento OnPixelOffsetChange se dispara cuando cambia la propiedad PixelOffset.

 


Clase TGroundOverlays

Descripción Clase para la colección de superposiciones. Herencia TObject -> TPersistent -> TCollection -> TLinkedComponents -> TGroundOverlays Propiedades

Propiedad Tipo Descripción
Items (+) [I: Integer]: TGroundOverlay Lista de superposiciones en la colección.

Métodos

Método Descripción
Add (+) Crea una nueva instancia de TGroundOverlay y la añade en el array de Items. Más información
function Add: TGroundOverlay;
Devuelve Nuevo TGroundOverlay.
Insert (+) Crea una nueva instancia de TGroundOverlay y la añade en el array de Items. Más información
function Insert(Index: Integer): TGroundOverlay;
Parámetro Descripción
Index Posición en la que insertar.
Devuelve Nuevo TGroundOverlay.
Heredados de TLinkedComponents
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(GMLinkedComponent: TGMLinkedComponent; ItemClass: TCollectionItemClass); virtual;
Parámetro Descripción
GMLinkedComponent Propietario de la colección.
ItemClass Clase de los nuevos elementos.

 


Clase TGroundOverlay

Descripción Clase para las superposiciones. Más información en GroundOverlay class. Herencia TObject -> TPersistent -> TCollectionItem -> TLinkedComponent -> TGroundOverlay Propiedades

Propiedad Tipo Descripción
Bounds (*) TLatLngBounds Límites de la superposición.
Clickable (*) Boolean Indica si esta superposicón recivirá eventos del ratón.
InfoWindow (*) TBaseInfoWindow InfoWindows asociado al objeto.
Opacity (*) Real Opacidad entre 0.0 y 1.0.
Text (*) string Esta propiedad se usa, si procede, para establecer el nombre que aparece en el editor de la colección.
Url (*) string Url o path del fichero de la imagen a mostar.
Visible (*) Boolean Si la superposición es visible en el mapa.
Heredadas de TLinkedComponent
Tag (*) Integer La propiedad Tag no tiene un sentido específico. Puede almacenar un valor entero adicional para comodidad del programador.

Métodos

Método Descripción
Assign (+) El método Assign copia el contenido de un objeto similar. Más información
procedure Assign(Source: TPersistent); override;
Parámetro Descripción
Source Objeto a copiar el contenido.
Create (+) Constructor de la clase. Más información
constructor Create(Collection: TCollection); override;
Parámetro Descripción
Collection Collection identifica la instancia TCollection a la que pertenece el nuevo elemento.
Destroy (+) Destructor de la clase. Más información
destructor Destroy; override;
Heredados de TLinkedComponent
CenterMapTo (+) Centra el mapa en el primer punto de la superposición. Más información
procedure CenterMapTo;
OpenCloseInfoWin (+) Muestra o oculta la ventana de información. Más información
procedure OpenCloseInfoWin; virtual;

 


Clase TStreetView

Descripción Características del panorama StreetView. Herencia TObject -> TPersistent -> TStreetView Propiedades

Propiedad Tipo Descripción
Visible (*) Boolean Hace visible el panoráma StreetView.

 


Clase TCurveLine

Descripción Clase para determinar las propiedades de una línea curva. Basado en Curved Line Plugin for Google Maps Api. Herencia TObject -> TPersistent -> TCurveLine Propiedades

Propiedad Tipo Descripción
Active (*) Boolean Activar línea curva. Si se activa, sólo se tendrán en cuenta los puntos inicial y final del path.
Horizontal (*) Boolean Para lineas horizontales o verticales.
Multiplier (*) Integer Multiplicador para la línea curva.
Resolution (*) Real Numero para definir cuántos puntos habrá en la línea curva. Por ejemplo, 0.1 significa que habrá un punto cada 10% a lo largo de la línea, 0.05 significa que habrá un punto cada 5% a lo largo de la línea.

 

  367 Responses to “GMLib – Google Maps Library”

  1. Hola que tal, excelente tu pagina, apenas he dado con ella y se me hace muy interesante, estoy probando tus componentes para Google Maps y despues de jugar un poco con los ejemplos que vienen con las librerias, me puse a checar el que permite insertar etiquetas en el mapa «GMMarker» y quisiera saber si me puedes indicar como puedo hacer para insertar un marcador por codigo, lo que pasa es que si deseo poner marcadores desde el Componente con el «Marker Editor» me funciona excelente.

    Pero en mi caso yo lo quiero utilizar con una base de datos, tengo mis campos Longitud, Latitud, Titulo y HTMLContent y me gustaria saber como agregarle las cordenas que filtro para que me las muestre segun las que cumplan con la condicion que seleccione supongo que sera algo como

    Procedure TForm1.CargarMarcadores;
    var
    i: Integer;
    begin
    for i:0 to Table1.RecordCount do
    GMMarker1.VisualObjects //// Agregarle la Longitud, Latitud conforme encuentra los registros
    ….

    He intentado con la ayuda que da el propio delphi cuando escribes y te muestra la lista de opciones pero no sabria cual es la que me permite agregarlo manualmente, te agradeceria mucho me pudieras comentar cual seria esta forma 🙂

    Saludos

    P.D. Muchas gracias por compartir tu codigo es muy util y educativo

    • Buenas,

      Ante todo gracias por probar los componentes y hacer de «conejillo de indias» dada la «juventud» de los mismos (no son ni beta jejejeje)

      Lo que quieres es sencillo de hacer. Desde la clase TGMMarker tienes un método para ello y podría ser algo así

      procedure TForm1.bAddMarkerClick(Sender: TObject);
      var
        Marker: TMarker;
      begin
        // con esta simple linea lo tienes añadido
        Marker := GMMarker1.Add;
        // a partir de aquí ya puedes informar las propiedades a tu gusto
        Marker.Position.Lat := 10.543345;
        Marker.Position.Lng := -4.344567;
        Marker.Title := 'título para el marcador';
        .....
      end;
      

      Si sólo le vas a dar valor a la lat/lon y título, puedes hacerlo directamente desde el método Add.

      procedure TForm1.bAddMarkerClick(Sender: TObject);
      var
        Marker: TMarker;
      begin
        // con esta simple linea lo tienes añadido
        Marker := GMMarker1.Add(10.543345, -4.344567, 'título para el marcador');
      end;
      

      Espero te sea de ayuda

      Nos leemos
      cadetill

      • Cadetill muchas gracias por tu respuesta, me ayudo mucho pero aun sigo con el detalle de que si tengo yo las ubicaciones en mi base de datos (restaurantes, cines, parques, etc) y por ejemplo filtro «restaurantes» el resultado me muestra en un DBGrid las columnas Latitud, Longitud y Titulo o Nombre si lo hago uno por uno tocandolo no hay problema, pero si quiero que me carge el X numero de restaurantes que tengo en mi base y que cumplen el criterio de mi consulta que se muestran en el dbgrid se traba mi aplicacion.

        Mi aplicacion es sencilla y utilizo mysql donde almaceno direcciones y lugares y ahora que veo la posibilidad de ubicarlos en un mapa me parecio muy buena idea

        Mi consulta es basicamente


        SELECT
        MainDB.ID,
        MainDB.LUGAR,
        MainDB.LATITUD,
        MainDB.LONGITUD
        FROM
        MainDB
        WHERE
        MainDB.LUGAR = 'RESTAURANT'

        Y ya que me los muestra en la DBGrid los intento leer de la siguiente manera


        procedure TForm1.Button2Click(Sender: TObject);
        var
        Marker: TMarker;
        Lat, Long: Real;
        begin
        Lat:= Table1.FieldbyName('Latitud').ASFloat;
        Long:= Table1.FieldbyName('Longitud').ASFloat;
        UniTable1.First;
        While Not UniTable1.Eof do
        Marker := GMMarker1.Add(Lat , Long, 'título para el marcador');
        Unitable1.Next;
        end;

        No se si haya una mejor forma de hacerlo directo desde una consulta pero si es asi no sabria por donde leer los datos para que los carge directos al mapa mientras realiza la consulta, por eso ya que tengo los datos en la DbGrid los intento cargar uno por uno 🙂

        Cualquier sugerencia se agradece 😀

        • Por cierto una observación igual no se si sea relevante pero a mi si me parece curioso y creo que por eso no me carga las coordenadas aunque se las ponga manuales, yo me encuentro en México y aquí el símbolo decimal es el «.» y veo que en España es «,» de hecho cuando compilo tus ejemplos que incluyes e intento cargar las coordenadas que vienen de ejemplo me dice que hay un error y para que me funcione lo tengo que poner con «.» 🙂 saludos

          —————————
          Gmmarker_demo
          —————————
          ‘41,380908’ is not a valid floating point value.

        • Buenas

          La forma en que cargas los marcadores es la correcta. No hay otra manera que hacer el bucle. Aun no hay un «TDBMarker» jejejeje Quizás en un futuro 😉

          Sólo un comentario. Si no vas a usar el TMarker creado, puedes obviar la variable 😉

          En cuanto al tema del separador decimal, pues es cierto, la demo está pensada para la gente que use como separador decimal la coma, no el punto. No obstante, eso sólo afecta a la demo, no al componente, ¿correcto?

          Nos leemos
          cadetill

          • Muchas gracias mi estimado Cadetill, por alguna razon he notado que cuando cargo alguna corrdinada me sale un error que en estos momentos no tengo el dato, busque en google y corresponde si mal no recuerdo al mismo script de carga de google maps.

            Pues de la forma en que cargo los marcadores aunque algo rudimentaria 😀 por no decir mas jajajaja me esta dando errores, ya que cada que ejecuto el codigo el programa se traba y tengo que cerrarlo, pero si lo ejecuto

            ( disculpame si no queda las etiquetas de codigo porque intente ponerselas pero no me salio 😀 )


            procedure TForm1.Button2Click(Sender: TObject);
            var
            Marker: TMarker;
            Lat, Long: Real;
            begin
            Lat:= Table1.FieldbyName('Latitud').ASFloat;
            Long:= Table1.FieldbyName('Longitud').ASFloat;
            Marker := GMMarker1.Add(Lat , Long, 'título para el marcador');
            Unitable1.Next;
            end;

            Por cada ves que oprimo el boton me carga perfectamente los marcadores claro que no es lo ideal 😀 intentare probar de otras formas para ver porque se bloquea mi programa.

            Por cierto lo de un TDBMarker no estaria nada descabellado 😉

          • Pd. En efecto lo de la coma por punto solo afecta la demo, el componente funciona excelente 😀

    • hola, bueno estoy tratando de hacer algo parecido a tu programa y al principio me tope con que esta version no es compatible con firemonkey x3. ahora bien como hace para capturar en tu base de datos la logitud y latitud?

  2. Buen inicio de semana Cadetill, pues bien a base de ensayo y error ya pude hacer que de manera «automatica» me carge los marcadores, al principio me costo trabajo debido a que me faltaba una line a que hacia referencia a que utilizaria la Tabla, por eso se bloqueaba, despues el problema surgio porque queria leer directamente de los DBEdits, y solo me cargaba el primer marcador, asi que lo que se me ocurrio es que al recorrer los registros encontrados me leyera el valor directo de cada «campo» de mi base de datos, y quedo de la siguiente forma por si alguien mas le llega a interesar:

    procedure TForm1.Button2Click(Sender: TObject);
    var
    Marker: TMarker;
    begin
    with Form1.Table1 do begin
    First;
    while not eof do begin
    Marker := GMMarker1.Add(Table1.FieldByName('Latitud').AsFloat , Table1.FieldByName('Longitud').AsFloat, Table1.FieldByName('Lugar').AsString);
    Next;
    end;
    end;
    end;

  3. Nuevamente saludando Cadetill, mira intente buscar algún procedimiento desde tu componente para quitar las etiquetas, pero no lo encontre 😀

    Asi que me invente un pequeño procedimiento

    procedure TForm1.LimpiarMarcadores;
    var
    i: Integer;
    begin
    for I := 1 to Table1.RecordCount do
    GMMarker1.Delete(0);
    end;

    El unico detalle es que debe de haber marcadores si no marcara error «List index out of bounds (0)» lo cual es logico considerando que quiero borrar y no hay nada que borrar 🙂

    Otra pregunta, intento cargar desde mi FormShow

    procedure TForm1.FormShow(Sender: TObject);
    begin
    GMMap1.RequiredProp.Center.Lat := Latitud;
    GMMap1.RequiredProp.Center.Lng := Longitud;
    GMMap1.RequiredProp.Zoom := 8;
    GMMap1.DoMap;
    end;

    Pero me devuelve el siguiente error: «Página inicial aun no cargada.»

    Ese mismo codigo lo pongo en un boton y me funciona perfectamente.

    Hay algun metodo o forma o estoy omitiendo algo que evita que pueda cargar la pagina de forma automatica??

    Por cierto de verdad muchas gracias por tu paciencia 😀 y comentarios 😀

    • Buenas,

      Todo componente descendiente de TGMLinkedComponent (léase TGMMarker, TGMInfoWindows,….) tienen el método Clear, con lo que con un simple GMMarker1.Clear, borras los marcadores.

      Con un bucle también podrías hacerlo, pero en lugar de basarte en la tabla, recorrer directamente los marcadores que tienes

      for i := GMMarker1.VisualObjects.Count – 1 downto 0 do GMMarker1.Delete(i);

      Respecto al otro problema, como digo en la ayuda, lo primero que se tiene que hacer es activar el TGMMap (Active := true)para cargar el HTML básico que se necesita para operar con el componente. Esto dispara el evento AfterPageLoaded con el parámetro First a true, que puedes usar para disparar el DoMap o habilitar el botón que lo muestro o activar un TTimer que al cabo de x milisegondos se dispare y realice el DoMap,….

      Espero te ayude y gracias a ti por probarlo

      Nos leemos
      cadetill

  4. Excelente!!! trabajo. Los voy a probar.
    Saludos

  5. Estimado Cadetill gracias por tus comentarios pero no se si sea solo a mi pero el metodo Clear, me da error al compilar, lo pongo de la misma manera «GMMarker1.Clear» y no me permite continuar incluso cuando lo escribo manualmente, despues del punto en la lista de funciones y procedimientos no me aparece la funcion o metodo CLEAR

    No se si lo puedas checar para ver si en tu delphi si funciona, saludos

    • jejeje, perdón, no me acordaba que es un método que he añadido para la próxima versión de los componentes que no tardará en salir (y que contendrá el objeto TGMPolyline) 🙂

      Si «tienes prisa» puedes usar el bucle que te comentaba y, cuando suba la nueva versión, pues ya lo sustituyes por el nuevo método 🙂

      Nos leemos
      cadetill

      • 😀 Ya decia yo que no me aparecia, por mientras lo estoy dejando como te mencione, porque el bucle que me indicas por alguna razon no me lo compila asi con DownTO pero igual es por algun detalle lo voy a checar, ya que si la nueva version contiene CLEAN estaria excelente y mas limpio, porque de mi forma noto que de repente me borra todos los marcadores pero despues cuando cargo otros me deja los anteriores, supongo porque como me djiste lo baso en mis registros encontrados no en los marcadore.

        En horabuena por la siguiente version y esperandola para probarla 😀 Saludos

  6. Saludos Cadetill aqui de nuevo saludando 😀

    Un comentario o detalle que he notado no si sea por la cuestion de precision del componente o por alguna otra cuestion, ya que solo en mis ratos libres estoy trabajando en mi programita 😀

    Lo que pasa es que cuando copio las latitudes y longitudes desde los mapas de google con el explorador o firefox me las muestra correctamente con el componente, pero si las copio de google maps la aplicacion, las cordenadas me aparecen diferentes incluso si las ocupo en las del explorador me da otra ubicacion, no es algo tan malo ya que en mapas cargados desde la pagina las ubicaciones me dan exactas en donde selecciono, pero me parece curiosa la diferencia, saludos

  7. Llevaba tiempo buscando una librería que me permitiese trabajar en Delphi 5.. y la encontré !!

    He conseguido compilar GMLib 0.1.1 en Delphi 5 (eliminando las llamadas a ShowCollectionEditor y retocando ligeros detalles) sin errores, así como las Demos.

    Sólo tengo una pequeña sugerencia (por el uso que quiero darle) y es que (aun, espero) no permite elegir el icono de los Marcadores.

    De todas formas, funciona genial, gran trabajo !!

    • Hola Fernando,

      Me alegra saber que has podido compilar sin muchos problemas con una versión tan vieja de Delphi 🙂 La verdad es que no me pensaba que hubiera gente que aun programara en versiones anteriores a Delphi 6 jejejeje Por casa debo de tener alguna versión de Delphi 3, 4 y 5. Miraré de instalarlas a ver si para la próxima versión puedo hacer que se compile también en estas versiones de Delphi

      Gracias por probar los componentes

      Nos leemos
      cadetill

  8. Hola a todos:
    Llevo tiempo manejando una página con planos de Google Maps que desarrollo en modo artesanal (o sea, con mucho trabajo) y me gustaría que la página que mostrara resultados (marks) se generara dinamicamente. estoy buscando a alguien que me pueda hacer el trabajo. O sea, la base de datos con los datos que necesito pasar al mapa, el interface de entrada de información a dicha base de datos y los códigos PHP que generen el plano a partir de los datos de búsqueda introducidos por el visitante de la página. ¿Sabeis de alguien que me lo pudiera hacer?

  9. Hola, intente instalarlo en Delphi XE, pero sin éxito, veo que los paquetes de los componentes existen actualmente para D6, D7, D2007, D2010, DXE2 pero no para DXE, tienes algún tip para esta instalación?

    • Buenas Erasmo

      No tengo el XE para poder hacer el paquete ni probarlo, pero vamos, imagino que el paquete de D2010 o DXE2 debería de servirte y compilar en XE. Si no te compila, dime qué errores te da para poder ayudarte a compilarlo

      Nos leemos

      • Hola cadetill,

        De antemano gracias!, te comento que efectivamente, logre compilar y registrar los componentes en DelphiXE con el paquete D2010 realizando estos cambios en en la sentencia
        {$IF CompilerVersion < 22} la cambie por {$IF CompilerVersion < 23}.

        Ahora! realizando el hola mundo con estos componentes, no logro que en los eventos me de las coordenadas (LatLng: TLatLng) estas siempre me las da en cero. por ejemplo, en el evento GMMap1CenterChanged(Sender: TObject; LatLng: TLatLng), siempre que se dispara, LatLng siempre bienen en Cero; incluso en los demos en el log de eventos, me vienen en cero. Sabes si es algo que tenga que ver con el lenguaje, soy de Mexico.

        • Disculpas, el cambio que te mencione anteriormente lo realice en GMMap.pas y el mensaje de error fue:

          [DCC Error] GMMap.pas(1621): E2009 Incompatible types: ‘Parameter lists differ’

          nos leemos.

          • Ya encontré cual es el detalle… y efectivamente tenia que ver con el regionalismo, comente la linea linea 164 del WebControl.pas, la funcion quedo de la siguiente manera:


            function TWebControl.GetFloatField(const aFormName, aField: string;
            DefaultValue: Real): Real;
            var
            Strg: string;
            Val: Extended;
            begin
            Result := DefaultValue;

            WebFormNames;

            if Forms.IndexOf(aFormName) = -1 then Exit;

            WebFormFields(aFormName);

            if Fields.IndexOf(aField) -1 then
            begin
            Strg := Trim(WebFormFieldValue(Forms.IndexOf(aFormName), aField));
            //Strg := StringReplace(Strg, '.', ',', [rfReplaceAll]);
            if (Strg '') and TryStrToFloat(Strg, Val) then
            Result := Val;
            end;
            end;

          • Hola Erasmo

            Me alegra que hayas podido instalar los componentes. Miraré de hacer el cambio que mencionas en el código para poder instalarlo en XE sin problemas 🙂

            Con respecto al problema que has tenido con el LatLng, no termino de entender por qué no te funciona. Se supone que las funciones de Google necesitan un numérico con un separador de decimales de punto. La función esa lo único que hace es eso, reemplazar las comas (separador decimal usado en España) por puntos (separador decimal americano y, por ende, usado por Google).

            Intentaré investigar un poco el tema. Si descubres algo más, te estaré agradecido si lo comentas

            Nos leemos

          • Buenas,

            Instalando la ultima actualización me di cuanta que las coordenadas me las sigue dando en Cero, entonces regrese a la linea 164 de WebControl.pas, analice los comentarios en donde me dices lo que hace esa linea, remplazar el punto por la coma

            Strg := StringReplace(Strg, ‘,’, ‘.’, [rfReplaceAll]);

            esto es valido en tu región, en donde se separa los decimales con coma, pero en México no funciona,

            Coloque una validación, que solo se ejecute esa linea mientras exista un separador decimal con coma.

            if DecimalSeparator = ‘,’ then Strg := StringReplace(Strg, ‘.’, ‘,’, [rfReplaceAll]);

            Me dices que te parece.

            Saludos.

          • Buenas Erasmo,

            Pues me parece genial, simple y sencillo. En la próxima versión ya aparecerá el cambio (ya lo he realizado)

            Gracias 😉

  10. Excelente trabajo. Apenas he encontrado tus componentes y estoy experimentando con ellos. Al principio me encontré igualmente con el problema de los separadores decimales y de millares como Erasmo con la configuración regional de México.

    Se me ha ocurrido, no hay una manera de «seleccionar» un área del mapa con el ratón y que esa área sea un cuadrado traslucido mientras se este seleccionando? O al menos que se note con un rectángulo de selección.

    Gracias nuevamente

    • Buenas Ricardo

      Muchas gracias por aunque sea probarlos 🙂

      Respecto a lo que me comentas, no termino de entender lo que quieres. ¿Puedes explicarte algo mejor?

      • En esencia, es seleccionar un área del mapa, tipo selección de Autocad, sólo eso. Ya obtuve las coordenadas de la selección usando el método OnClick del GMMap pero me falta lo «visual» para indicar que se está seleccionando. Tal vez ya esté implementado en alguna de las funciones de Java pero desconozco la API de Google Maps. Gracias

        • Buenas,

          Lo que no entiendo es eso de la selección. Es decir, entiendo que quieres que aparezca un rectángulo mientras estás seleccionando un área del mapa, lo que no veo es la utilidad o qué quieres conseguir seleccionando una zona del mapa. Por otro lado, desde el API de Google Maps no hay ninguna opción que lo permita, se tendría que implementar mediante JavaScript de alguna manera. También se tendría que tener en cuenta que el mapa no se pudiera «mover» con el ratón (propiedad Draggable).

          Nos leemos
          cadetill

          • Ya he pensado en esos detalles y hasta este momento debido a mis escasos conocimientos de la manipulación del TWebBrowser / GoogleMaps API / Java son casi insalvables para mí 🙁

            Para efectos de pruebas solamente uso un clic para definir la primera esquina y un segundo clic para la definir la segunda, esto es para hacer zoom a la zona seleccionada de manera mas rápida y no dar clic varias veces en el control o usar la rueda del ratón repetidamente, un zoom rápido a una zona específica del mapa.

  11. Un saludo de nuevo. He descubierto otra falla, no sé si alguien más lo ha hecho, he aquí el escenario:

    De acuerdo a las instrucciones de http://code.google.com/p/vcl-styles-utils/ o http://theroadtodelphi.wordpress.com/2012/03/20/delphi-vcl-styles-and-twebbrowser-source-code-released/ para sustituir el TWebBrowser por un TVclStylesWebBrowser con una clase superpuesta y dar soporte completo de VCL Styles, ya no aparece nada de mapas en el browser asociado al GMMap.

    Reportaré de igual manera el problema al desarrollador de vcl-styles-utils

  12. Buenas cadetill,

    Trabajando con los markers, tengo la necesidad de relacionarlo con otro objeto, en mi caso específicamente con un registro de una consulta sql, veo que en la mayoría de componentes que manejan TColecction tienen una propiedad que se llama object, en la cual puedes asignar cualquier tipo de objeto y así también un propiedad Tag.

    Estaria muy bien también contar con estas propiedades en lo TMarker.

    ¿Que te parece la idea?

    Nos leemos.

  13. Buenas cadetill,

    Ahora con una consulta, para implementar iconos personalizados, en que lugar debo de colocar la lista de iconos disponibles.

    Nos leemos.

  14. Buenos dias Cadetill:
    Enhorabuena por tu trabajo, y gracias por compartirlo.

    He estado haciendo pruebas con tu codigo y me parece magnifico. Se me ocurren algunas sugerencias como el ya comentado TDBMarker, y una utilidad que me parece tambien interesante y es obtener las coordenadas de un lugar a partir de la direccion tal y como lo hace Google Maps. Hasta ahora yo las consigo pasando la direcccion a traves de la url que usa Google Maps y extrayendo de la respuesta que devuelve googlemap los datos que me interesan. Supongo que habra mil formas mejores de hacerlo pero ….
    URLDownloadToFile(nil, PChar('http://maps.google.com/maps?output=kml&q='+direccion) ...

  15. Very usefull and intuitive component, i hope that this project will grow up strong!

  16. very nice components, i have been trying them and come across an issue when use the onclick for the GMmap component always returned 0 for both the Lat and Lng.

    Am i doing something wrong?

    I also noticed that the demos also do this.

  17. […] Tienen muy buena pinta. Podéis revisar el diagrama completo de la estructura de clases aquí, y la descripción de todas las clases en la siguiente página. […]

  18. Hi,

    I just want to thank you for sharing these components.
    You did a great work and I’m looking forward for your next version….

    Best regard,

    SW

  19. […] ha visto la luz la siguiente versión de los componentes de Cadetill para trabajar con Google Maps. La librería GMLib; En este caso la versión 0.1.5a. Añaden bastantes correcciones y nuevas funcionalidades respecto […]

  20. Buenas tardes:

    Veo que los componentes siguen evolucionando. Enhorabuena por tu magnifico tranajo y por compartirlo con los novatillos en delphi. Seria interesante poder extraer de TAddressComponent o de alguna manera partes de esa direccion completa, por ejemplo, el Codigo Postal

    Un saludo y gracias por compartir tu trabajp

    • Hola Jesus

      Imagino que te referirás al componente TGMGeoCode, verdad? Una geocodificación puede dar cero o varios resultados. Cuando se produce al menos 1 resultado, éste (o éstos en el caso de que sean varios) se guardan en el array GeoResult del TGMGeoCode. Cada posición del array GeoResult contiene un objeto de la clase TGeoResult. Estos objetos TGeoResult tienen una propiedad, la AddrCompList de la clase TAddressComponentsList que, como podrás imaginar por la coletilla de «List», es una colección de TAddressComponent. Pues bien, esta lista de TAddressComponent lo que contiene es una «fracción» de la dirección geocodificada. Por ejemplo, si geocodifico «C/ reial 60, tarragona» obtendré 7 TAddressComponent y uno de ellos es el código postal. Así pues, sólo tienes que recorrer esta lista y buscar el tipo «postal_code» (en la propiedad AddrCompTypeList del TAddressComponent).

      Te invito a que hagas la prueba de una geocodificación en la MegaDemo que se incluye junto a los componentes y compruebes lo que te comento.

      Saludos y gracias
      cadetill

  21. Felicitaciones amigo Cadetill,
    También desde Argentina estamos probando tu componente.

    Que hay en cuánto a la generación de Rutas de Viaje?

    Me refiero a si es posible, tal cual lo hace la web de GMaps, poner una direccion de partida y un destino para que trace el recorrido utilizando las vías existentes y sus sentidos de dirección habilitados. para la circulación…

    No hablar de si es posible crear una ruta al estilo «Viajante de comercio» ( TSP, Travelling Salesman Problem) con destinos concatenados.

    Abrazo cordial,
    YAKO

    • Hola YAKO

      Antetodo gracias por probar la GMLib 🙂

      Referente a la pregunta, es precisamente en lo que estoy trabajando en estos momentos, en el servicio de direccionamiento de Google Maps. Ya no queda mucho para que esté terminado, así que imagino que en breve podré sacar una nueva versión con este componente (y otras mejoras que he ido haciendo desde que cerré la versión 0.1.5).

      Saludos
      cadetill

  22. Buenos dias:

    Gracias de nuevo por tu esfuerzo y por compartirlo….Animo y ahora que casi lo tienes terminado :P…. a ver si le metes mano al API de Google Calendar. Seria la caña manejar el Calendar de Google desde Delphi

    Saludos y gracias de nuevo

  23. Hola cadetill ! Exelente trabajo, Felicitaciones

    Tengo problemas con el componente GMPolyline1.
    Creo un polyline con la interfaz grafica.

    Hago un boton con :
    GMPolyline1[0].AddLinePoint(20, -99);
    GMPolyline1[0].AddLinePoint(21, -100);

    Si no creo antes un LinePoint en la interfez graphica, me saca un msg de error.
    Entonces agrege un LinePoint en la interfaz graphica y agrege al boton:
    GMPolyline1[0].DeleteLinePoint(0);

    Si hago con otro boton: GMPolyline1[0].ClearLinePoints; (ahi todo muy bien, la linea desaparece)
    Pero si vuelvo a oprimir el boton de antes para crear una linea, el delphi no esta feliz y me dice «este objeto no tiene relacion en javacript»

    Tambien si hago un loop para poner muchos puntos (1000 por ejemplo), se tarda mucho para aparecer.
    Ahi creo tiene que ver con el autoUpdate. Debo desabilitar el auto update y autoupdatepath y poner depues del loop un GMPolyline1[0].Setpath ?

    Seguro hay algo que hago mal 🙁
    Muchas gracias y Saludos !

    • Hola cephi

      Antetodo gracias por usar los componentes.

      Referente a la primera pregunta, es cierto, es un bug de los componentes que tengo localizado y que será corregido en la próxima versión.
      Y con lo que respecta a la segunda pregunta, pues la verdad es que no he probado a crear un polyline con tantos puntos, por lo que no podría decirte. En cuanto vuelva de vacaciones miro de hacer alguna prueba a ver 😉

      Nos leemos

  24. hi cadetill,

    thanks for the component it sure help me a lot after you help me back then i need to ask one more dumb question. how could i create a polygon at runtime i have two seperate tstrings which contains long and lat respectively. i cannot see how you do it in your demo. thanks again

    • Hi Charlie

      You can add a TPolyline with Add method of TGMPolyline, and you can add TLinePoint with AddLinePoint method of TPolyline, BUT at the moment TPolyline have a bug, and you have an error if you don’t define at design time minimum one TPoliLine. To the next version this bug will be fixed

      Regards

      • hi cadetill,

        can you set me a small sample? i was again getting confused? thanks!!! and will wait for your update i just want to try it out. i can actually did use every component you made and was great so far except this one hehehe!! please provide me a sample? just a simple procedure for it. thanks again

        • Yes, no problem, this is an example (but remember, this not work correctly until the next version)

          procedure TForm1.Button1Click(Sender: TObject);
          var
            Polyline: TPolyline;
          begin
            // create a TPolyline
            Polyline := GMPolyline1.Add;
            // set properties
            Polyline.Editable := True;
            Polyline.StrokeColor := clRed;
            Polyline.StrokeOpacity := 0.5;
          
            // create TLinePoint
            Polyline.AddLinePoint(41.2254, 2.22354);
            Polyline.AddLinePoint(41.2000, 2.22354);
            Polyline.AddLinePoint(41.3654, 2.23344);
            Polyline.AddLinePoint(41.4566, 2.23454);
          end;
          
  25. Hola, estoy probando tus libreririas y me ha surgido una pregunta referente a si hay alguna forma de limitar la region del mapa que yo quiero ver solamente. Ej. enviarle la coordenadas x1,y1,x2,y2.

    Nada en espera de tu respuestas.

    Gracias por estos componentes.

    • Buenas Luis

      Ante todo gracias por probar los componentes.

      Respecto a la duda, si quieres que tu mapa mantenga unos límites (bounds) tienes que retocar 3 cosas del mapa

      1. quitarle el control de zoom (propiedad VisualProp.ZoomCtrl.Show
      2. que no pueda moverse (propiedad NonVisualProp.Options.Draggable)
      3. que no pueda hacerse dobleclick (propiedad NonVisualProp.Options.DisableDoubleClickZoom)

      Si los límites son conocidos, puedes usar el método LatLngBoundsSetBounds de TGMMap para establecerlos.

      Espero sea lo que quieres

      Nos leemos

  26. Hola, estoy intentando obtener la ubicación de unas coordenadas (lat, lng) y cuando invoco el metodo de GMGeoCode1.Geocode(lat, lng), este me trae el tres resultado y por ende me pinta tres marker en el mapa, no se supone que debe traer solamente un solo resultado.

    La idea es enviarle las coordenada y este me devuerva los datos de esa coordenada.

    Nada en espera de tu respuesta.

    Gracias.

    • Buenas Luis

      Cuando geocodificas una lat/lng, Google puede devolver más de un resultado. Por ejemplo, si coges las coordenadas de una calle de una ciudad te devolverá (ej: 41,38086598 – 2,12257899):

      1. La dirección completa – type: street_address (Av de Juan XXIII, 10-12, 08028 Barcelona, España)
      2. El código postal – type: postal_code (08028 Barcelona, España)
      3. La localidad – type: locality, political (Barcelona, España)
      4. La provincia – type: administrative_area_level_2, political (Barcelona, España)
      5. La comunidad autonómica – type: administrative_area_level_1, political (Cataluña, España)
      6. Y el país – type: country, political (España)

      Si lo que quieres es saber la dirección, tendrás que ir a buscar el resultado que sea de type = street_address

      Espero haberte ayudado

      Nos leemos

  27. Otra coas, me gustaría saber si puedo realizar algunos cambios a los componentes, esto los haría si tu me lo permites, pero todo el código te lo enviaría para que lo valides y lo pongas como siempre lo haces publico.

    en espera de tu respuesta ?

  28. Un saludo, no se si a alguien mas le ha tocado el error que me da el browser, recien acabo de instalar la 0.1.5 y la 0.1.6 claro no ambas a la vez, pero las dos me tiran el error:

    Error en el script de Internet Explorer
    Error en el script de esta página
    Linea: 1062
    Carácter: 16
    Error: ‘google’ is undefined
    Código: 0
    URL: about:blank
    ¿Desea continuar ejecutando scripts en esta página?

    Y ya no despliega mapa alguno

    A alguien le ha ocurrido? Alguna solución?

  29. Hola amigo

    Ya he instalado tu componente en XE2 y quiero destacar que es muy fácil de instalar, las instrucciones breves, concisas y precisas, es decir, cero problemas, excelente.

    Abrí de inmediato la MegaDemo. Que decir, está genial. intentaré hacer algunas modificaciones (observaciones desde el punto de vista de un usuario vago) y te las hago llegar, no doy fechas porque yo si que soy un vago. pero prometo hacerte llegar algo pronto 🙂

    Gracias y felicidades por el componente.

    Saludos

    Saludos

  30. English man English for us plzzz

    • First of all, thanks you for test the components.

      You need to know that this is a spanish blog and all content are in spanish. However, if a person have a question about the components, he can ask me in english, french, spanish or portugues and I will respond in this language (or in english).

      If you have some doubt, feel free to ask about it in english (or another language that I say before) 😉

      Thanks again
      cadetill

  31. Excelente trabajo !!!! Muchísimas gracias por el trabajo !!!

  32. hi cadetill,

    i know, i know it’s me again….. hehehe thanks for the patience.

    see i have downloaded the newest version of the components. im glad things are much easier now. but i have another question. heres the thing. in TGMInfoWindow Component. i tried to load popups on runtime with a database access of coordinates. the procedure i did can load coordinates in small records but the thing is when the records increases so it the time it takes to load components. please check my procedure and tell me how to do things easier. here’s the procedure

    procedure AddPolylineInfoWindow(Lat,Lng,Contents:TStrings);
    var
      Polyline: TPolyline;
      I : Integer;
      X : TInfoWindow;
    begin
      // create a TPolyline
      Polyline := Form1.GooglePolyline.Add;
    
      // set properties
      //Polyline.Editable := True;
      Polyline.StrokeColor := clBlue;
      Polyline.StrokeWeight := 4;
      Polyline.StrokeOpacity := 0.5;
      Form1.ProgressBar1.Max := Lat.Count - 1;
      Form1.ProgressBar1.Min := 0;
      Form1.ProgressBar1.Position := I;
      for I := 0 to Lat.Count - 1 do
       Begin
       Form1.ProgressBar1.Position := I;
       if Form1.InfoWindow1.Checked then
        X := Form1.GoogleInfoWindow.Add(StrToFloat(Lat[I]),StrToFloat(Lng[I]),Contents[I]);
       Polyline.AddLinePoint(StrToFloat(Lat[I]),StrToFloat(Lng[I]));
       End;
      if Form1.InfoWindow1.Checked then
       begin
       X.AutoOpen := True;
       X.CloseOtherBeforeOpen := True;
       end;
    end;

    Please reply to me again….. thanks!!!!

    • EDIT:
      see i have downloaded the newest version of the components. i am glad things are now much easier. but i have another question. heres the thing. in TGMInfoWindow Component. i tried to load popups on runtime with a TStrings access of coordinates. the procedure i did can load coordinates in small records, but When the records gets bigger, it Increases the time it takes to load the Popups. Please check my procedure and tell me how to do things easier.

  33. Hola. Muchas gracias por la información. Me gustaría saber si es que acaso en la Clase TGMMap, en la capa Transit, se pueden agregar rutas de transporte público de una ciudad determinada, en caso de no encontrarse en la lista de ciudades compatibles. Mi idea es poder llegar a crear una aplicación que use Google maps, y muestre un posible recorrido de transporte público para una ciudad que no está en la lista a partir del punto de origen y el punto de destino.
    De antemano, gracias.

  34. Error en TWebBrowser

    Un saludo, sin querer encontré un error, no tiene que ver directamente con los componentes GM pero es un riesgo latente, he hecho el reporte en el sitio de Google Project pero creo que no está de más informarlo al resto de la comunidad:

    F5 Update error inside the WebBrowser Window

    Reported by ME :), Sep 25, 2012

    What steps will reproduce the problem?
    1. Start a new blank project.
    2. Add a TWebBrowser component onto a blank form.
    3. Add a TGMMap, link it to the WebBrowser and setup the minium code for map display.
    4. Run the project.
    5. Inside the WebBrowser press F5.

    What is the expected output? What do you see instead?
    An exception raises: Project Project.exe raised exception class EOleException with message ‘Argumento no válido’.

    What version of the product are you using? On what operating system?
    – GMLib 0.1.7
    – Embarcadero Delphi XE2 Version 16.0.4429.46931 Update 4
    – Windows XP Pro Spanish (Build 2600: SP3)
    – Under VirtualBox 4.1.22r80657

    Please provide any additional information below.

    The error raises on Line 304 of WebControl.pas
    Result := Forms.Item(FormNumber, ») as IHTMLFormElement

    The var FormNumber contains the value -1, that can be the source of the error.

  35. How to disable scrollbars in GMMAP WEbBrowser?

    The code below does not work.

    procedure TfrmMain.WebBrowser1DocumentComplete(Sender: TObject;
    const pDisp: IDispatch; var URL: OleVariant);
    begin
    Application.ProcessMessages;
    WebBrowser1.OleObject.Document.Body.Style.OverflowY := ‘hidden’;
    end;

    • Hi nasaman

      In the new version of GMLib I will do this feature 🙂

      Until this release, you can do this:
      1.- open resources/map.html with a text editor (like notepad, notepad++,…)
      2.- add this code

      <script language=javascript>
        document.documentElement.style.overflowY = 'hidden';
      </script>

      3.- compile resources with resources/rc.cmd
      4.- recompile the GMLib

      That is all

      Regards

  36. hola cadetill,

    agradecerte que hayas publicado los componentes, son muy útiles y fáciles de usar, enhorabuena por la «currada» y ánimo para continuar mejorándolos

    entrando en materia, estoy probando la versión v.0.1.8, en Delphi XE3 y me surge lo siguiente:

    se instalan perfectamente siguiendo las instrucciones, sin embargo al intentar probarlos me ocurre lo siguiente con la MegaDemo: al abrir el proyecto salta «A component named Label10 already exists». Después de ignorar el error te abre el proyecto pero al intentar compilarlo falta «GMBase.dcu».

    He comprobado que en la carpeta src de los componentes (en esta v.0.1.8) no aparece GMBase.pas, he descargado la v.0.1.7 y en esta sí que aparece así que he copiado el GMBase de la otra versión en la nueva y ahora ya compila pero aparecen errores.
    Lo mismo en las otras demos, aparecen errores de parámetros , etc

    Quisiera saber pues, si es algún detalle de la nueva versión o que símplemente las demos no están adaptadas a todos los cambios introducidos.

    En cualquier caso sería interesante poder probar las demos con los nuevos componentes.

    saludos y ánimos para seguir con este gran proyecto

    • Hola halconmilenario

      Ante todo gracias por probar la GMLib.

      Efectivamente, la MagaDemo veo que da ese error. Para solucionarlo simplemente ignorar el error (se perderá un label de una pantalla, pero bueno, no pasa nada -lo corregiré para la próxima versión-).

      Con lo referente a GMBase.dcu, esta es una unidad que ha desaparecido en esta nueva versión. No debería de darte este problema (de hecho acabo de probarlo y no me lo ha dado). No obstante, mira que en los uses no haya ninguna referencia a esta unidad y, en caso de haberla, quítala. Si siguieras con problemas, podría enviarte por correo los binarios de la MegaDemo.

      Ya me contarás

      Saludos

  37. Buenas tardes
    estoy tratando de instalar la libreria en delphi 7 y me marca un error que donde dice

    requires

    indy,

    segun yo ya instale los paquetes indy pero aun asi no me funciona

    me podrian auydar??

  38. Hola nuevamente

    Se que es una pregunta tonta pero ando un poco perdido

    me marca un error en las funciones AnsireplaceStr

    estoy trabajando con delphi 7

    algo me falta?

  39. ya no me marca ahi agregue la unidad strutils

    ahora me marca error en este

    UTF8ToString

    que tengo que agregar ?
    Gracias

  40. Pues en lugar de usar

    // UTF8ToString

    Memo1.Lines.Text := ANSISTRING(Stream.DataString);

    // modifique el utf por el ansi y corrio el ejemplo

    es el primer ejemplo que estoy probando donde

    me regresa

    {
    «results» : [
    {
    «address_components» : [
    {
    «long_name» : «Chihuahua»,
    «short_name» : «Chihuahua»,
    «types» : [ «locality», «political» ]
    },
    {
    «long_name» : «Chihuahua»,
    «short_name» : «CHIH»,
    «types» : [ «administrative_area_level_1», «political» ]
    },
    {
    «long_name» : «Mexico»,
    «short_name» : «MX»,
    «types» : [ «country», «political» ]
    }
    ],
    «formatted_address» : «Chihuahua, Mexico»,
    «geometry» : {
    «bounds» : {
    «northeast» : {
    «lat» : 28.77290820,
    «lng» : -105.96128960
    },
    «southwest» : {
    «lat» : 28.55867740,
    «lng» : -106.16710590
    }
    },
    «location» : {
    «lat» : 28.6305810,
    «lng» : -106.07370
    },
    «location_type» : «APPROXIMATE»,
    «viewport» : {
    «northeast» : {
    «lat» : 28.77290820,
    «lng» : -105.96128960
    },
    «southwest» : {
    «lat» : 28.55867740,
    «lng» : -106.16710590
    }
    }
    },
    «types» : [ «locality», «political» ]
    }
    ],
    «status» : «OK»
    }

    esta bien con el ansi??

  41. Hola Cadetill,

    Me gustaría que me tome una pregunta: El uso de GMlib, ¿cómo puedo saber si un marcador se encuentra dentro de un polígono?

    ¡gracias

    • Hola Pedro

      Si te refieres dentro del área del polígono, con el único que podrás saberlo es con el rectángulo, ya que éste se forma con un LatLngBounds y esta clase tiene un método (no obstante este método se debería de implementar porque actualmente no lo está).

      Si a lo que te refieres es saber si un punto está dentro del array de TLinePoints, pues deberías de recorrer dicho array y cada posición usar el método GetLatLng que te devolverá un TLatLng y así poder usar el método IsEqual de esta clase.

      Espero te sirva

      Saludos

  42. Maximum level of MaxZoom 15?
    MaxZoom level rise is there?

  43. Hi Cadetill,
    Thanks a lot for sharing this component.

    I’ve tried to compile gmlib_0.1.8 using C++ builder 2010 but failed.
    Detail:
    1 ) GMLib_C2010.cbproj is the project I use.
    2) GMBase.pas and GMSize.pas not there. So I copied them from gmlib_0.1.7.
    3) After copied these two files, I could compile but got a link error:
    Checking project dependencies…
    Building GMLib_C2010.cbproj (Release configuration)
    [ILINK32 Error] Fatal: Unable to open file ‘DB.OBJ’
    I have no clue why this happened.

    Thanks again for your help.
    Regards.

    • Hi Robbert

      I don’t have C++Builder 2010 to test it but…. GMBase and GMSize are two units obsoletes. If exist some references to they, delete it, there are not required. DB unit is required into the GMElevations unit. This unit is a Delphi/C++ unit, what version of C++ have you, standard?

      Regards

      • Thanks cadetill.

        I could install the VCLs now:

        C++ 2010 Installation steps in case someone needs it:
        ~~~~~~~~~~~~~~~~~~~~~~~~~~~
        1. Open project «GMLib_C2010.cbproj»
        2. Remove GMBase and GMSize from the project( defined in GMLib_C2010.cbproj ).
        3. Add db.pas into project. You can find it from ..\Program Files\Embarcadero\RAD Studio\7.0\source\Win32\db»
        4. Right click on «GMLib_C2010.cbproj.bpl» and click «Install»
        5. Go to «Tools > Options > Environment Options > C++ Options > Path and Directories»»
        Click «Include Path > […]» button
        Browse to the «\lib\C2010» folder and press «OK», «Add»
        Click «Library Path > […]» button
        Browse to the «\lib\C2010» folder and press «OK», «Add»

        Some small issues:
        1) version not updated in Design Packages
        GoogleMaps Library v0.1.6(xxx) -> should be v0.1.8 isn’t it?
        2) I’ve created a test application, and just added GMMAP VCL. if «Build with runtime pacakges» is unchecked, build will fail with these two errors:
        [ILINK32 Error] Error: Unable to open file ‘UABOUTFRM.DFM’
        fix: Copy the file from ./src to project’s root directory or add ./src to «Library Path»
        [ILINK32 Error] Error: Unable to open file ‘GMMAPRES.RES’
        fix: Add the file from ./resource to project
        If you check «Build with runtime pacakges», the application will be built without any error.

        Cheers.

  44. Estoy probando la versión 0.1.8 para XE3 pero no has incluido el fichero
    GMBase.pas
    lo he pillado de la versión 0.1.7 y con esto me compila y me instala los componentes,
    pero no me funcionan las demos, por ejemplo la demo de GMPolyline me da 8 errores de compilación
    [dcc32 Hint] UGMPolylineFrm.pas(342): H2443 Inline function ‘Point’ has not been expanded because unit ‘System.Types’ is not specified in USES list
    [dcc32 Error] UGMPolylineFrm.pas(576): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Error] UGMPolylineFrm.pas(583): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Error] UGMPolylineFrm.pas(590): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Error] UGMPolylineFrm.pas(633): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Error] UGMPolylineFrm.pas(640): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Error] UGMPolylineFrm.pas(647): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Error] UGMPolylineFrm.pas(654): E2009 Incompatible types: ‘Parameter lists differ’
    [dcc32 Fatal Error] GMPolyline_Demo.dpr(5): F2063 Could not compile used unit ‘UGMPolylineFrm.pas’

    gracias

  45. Cadetill, gracias por compartir estos excelentes componentes…Los estoy incorporando a una aplicación que estoy construyendo.

    Tengo una consulta.

    Se que existe la posibilidad de al hacer click sobre la marca o pasar el ratón sobre ella desplegar información.

    Lo que requiero es poder desplegar el icono y el Title juntos. Me puedes hechar un cable.

    Muy agradecido.

    • Hola cloayza

      Un title es como la propiedad Hint de los componentes, sólo aparece cuando pasas el ratón por encima del componente (en este caso un marcador). Si lo que quieres es tener un marcador con su texto visible, tendrás que usar un marcador estilo mtStyledMarker y establecer la propiedad StyledMarker.StyledIcon como siBubble

      Espero te sirva

      Saludos

  46. «Hola Cocute
    GMBase ya no se incluye en el proyecto de la GMlib. Si se hace referencia a él bórrala que es un error.
    Por otro lado decirte que la única demo funcional es la MegaDemo, las demás demos no he tenido tiempo a actualizarlas.»

    «Hello Cocute
    GMBase no longer included in the project GMlib. If you refer to it is a mistake to delete it.
    On the other hand say that the only functional demo is megademo, other demos I have not had time to update them.»

    Hello,

    it’s a pity! All your efforts in develop such a framework is for nothing if you are not able
    to manage it, that your demos works well. The GMBase issue cost me a lot of time, because
    a other similar framework uses the same Unit-Name. (http://www.delphipraxis.net/157004-google-maps-ueber-com-component-object-model.html). I can confirm the megademo works. All other examples has failed. I use D2010. I hope you have the time to fix the demos and I will test your promising framework again. I appreciate your work!
    Kind Regards, Mark

  47. Hi,

    Not sure if you’re aware of this, but the latest version is missing two critical source files.
    There’s no «GMBase.pas» included anywhere in the zip file.
    And «GMSize.pas» is also missing.

  48. hii
    i want to detect point is inside polygon or no ?
    google map had this function in java
    google.maps.geometry.poly.containsLocation(point, poly)
    how can use this in your componnet?

    and other quastion :
    please give me simple code of how can i add polygons to my map ?i cant learn with your demo codes

    thank u

    • Hi nima

      I don’t knew of this feature. I will implement it in future versions.

      Demo:

      var
      Poly: TPolygon;
      begin
      // firts of all you need to create a TPolygon
      Poly := TPolygon(FGMPoly.Add);
      // and now, add the points
      Poly.AddLinePoint(31.555, 2.222);
      Poly.AddLinePoint(31.444, 2.333);
      Poly.AddLinePoint(31.333, 2.111);
      .....

      Regards

      • thank u very much for your fast answer im just had other quastion
        after i create polygone, when user changed the patch with moving polygone point on the map
        i want to know index of the point is changed by user because i need to save polygone points lat and lng on the text file and if user changed the polygone points in application i must edit saved points lat and lng

  49. I keep getting ‘inital page not loaded’ error and have to wait sometimes up to 3 minutes before I can call DoMap. How do I get this to load quickly?

  50. Buenas estoy usando la libreria y al momento de instalarlo no me aparece como las instrucciones lo menciona aunque logre instalarlo pero me pide un dcu que es el de GMBase.dcu no logro encontrarlo

    Por otra parte funciona pero ahy un detalle al momento de jalar con el mause el mapa como regularmente lo hace en el google maps, sale un error de referencia Access Violation at address 004034aa in module

  51. Hola Cadetill.

    Estoy empezando a ver tus componentes de Gmlib. En un principio creo que cumplen mis expectativas y mucho mas para un trabajo que voy a hacer. GRACIAS. Lo único que no me cuadra bien es el componente twebbrowser (delphi xe2) que con html5 me da ¿problemas? y el que tu usas o recomiendas CDEF3 da menos problemas pero también me hace cosas ¿raras ?. Conoces algún otro que vaya muy bien con html5, json, …. etc. ¿? De nuevo GRACIAS.

    Saludos.

  52. hello
    i really need to use this function in componnet plase help me 🙁
    google.maps.geometry.poly.containsLocation(point,polygon)
    this fuction detect point is inside the polygone or no

  53. Hola Cadetill.
    Felicitaciones por el trabajo con la GMLib. Es en verdad exelente.
    Queria aprovechar para consultarte por el metodo SetCenter del mapa. Me esta dando «Script error» con el siguiente mensaje «Unable to get value of the property ‘FromLatLngToPoint'». Object is null or undefined.

    Si me puedes ayudar te lo agradeceria mucho.
    Saludos.

  54. Gracias por tu gran trabajo y dispculpa que te moleste con mis dudas, serias tan amable de mostrarme un ejemplo de TGMInfoWindow lo estoy trabajando en C++Builder XE3 pero tengo problemas, muchas gracias Saludos.

  55. I am really thanks for your work. Now I can make my program shows google map :).

    But I have problem, when I drag webbrowser and then release drag, it show Access Violation. I am not using ondrag or afterdrag event, I just slide to see another part of the map.

    Here the screenshoot: http://i97.photobucket.com/albums/l223/afin_x/gmaperror_zps6c191d60.jpg

  56. Fantástico trabajo. Creo que nos ha simplificado mucho el trabajo para hacer “cositas” con GMaps.

    Utilizo tu librería para posicionar ciertos elementos estáticos (utilizo TCircle) y otros dinámicos (TMarker) sobre el mapa con iconos propios bastantes pequeños. Los dinámicos actualizan su posición en “cuasi-tiempo real” estando la información disponible cada 5 segundos aproximadamente .

    Al iniciar el aplicativo, como tiene que insertar tantos objetos en el mapa, a veces sale el mensaje de que si se desea detener la ejecución del script porque se éste va muy lento.

    ¿Hay alguna forma de saber si la página web no está ejecutando ningún script? He probado con las propiedades del TWebBrowser y no he conseguido nada. Básicamente lo que quiero conseguir es esperar hasta que la web termine de ejecutar los scripts, para luego seguir haciendo cosas en el mapa.

    Por otra parte, la fuente de información (cambios de posición) está disponible desde distintos lugares. Mi intención inicial era crear un hilo independiente por cada fuente y modificar la posición de los TMarker dinámicos relacionados con cada fuente, accediendo al mapa concurrentemente. Evidentemente con mecanismos de concurrencia de procesos. El problema es parecido al anterior, al ir cada hilo por libre, la página web no da abasto a modificar los elementos y no hace nada. Al final, decidí los accesos a las distintas fuentes de forma secuencial, y darle tiempo a la página a refrescar. Sabiendo cuando ha finalizado la modificación de un hilo se podría comenzar el siguiente. ¿Se puede hacer algo?

    Lo dicho. Enhorabuena por el trabajo.

    Saludos.

    Álvaro

    • Hola Álvaro

      Ante todo, gracias por probar/usar los componentes.

      Referente al tema de cargas masivas, decirte que si son marcadores, hay una opción de carga masiva (actualmente preparado sólo para CSV, pero se podría mirar de hacer para preparar otro tipo de carga) que carga unos 100 marcadores/seg, con lo que en pocos segundos puedes llegar a cagar cientos de marcadores. Con eso ya evitarías el problema del script.

      El tema de la aplicación multihilo, la verdad es que no he probado los componentes en esa situación. Si te apetece, mediante skype podemos echar una charla y te explico cómo funcionan internamente a ver qué se puede hacer.

      Gracias de nuevo

      Saludos

      • Gracias por la respuesta.

        El problema de la carga es que los datos se leen desde una BBDD y habría que crear un fichero csv por cada fuente de información (son objetos distintos de la misma clase) y dependiendo de los permisos de escritura se podría hacer o no. He estado revisando el método LoadFromCSV de la clase y en mi código no hago cosas distintas a las que se hace en el método. Los marcadores que utilizo son los elementos dinámicos, por lo que la carga no es siempre de los mismos elementos.

        Puede ser que la máquina donde estoy probando vaya justita, y además el acceso a internet deja mucho que desear. A veces sale y a veces no el mensaje. El problema se presenta al añadir los TCircle a un objeto TGMCircle creado en tiempo de ejecución. Cada objeto de fuente de datos (todos de la misma clase) tiene un objeto TGMCircle a los que se añaden los TCircle. He probado primero añadir los TCircle y después asignar el mapa al TGMCircle o añadir los TCircle ya asignado el mapa al TGMCircle. En tiempo de ejecución da más o menos lo mismo.

        Por ahora no tengo disponible Skipe. Ya te contaré mis progresos. La verdad, una vez arrancado y realizando las actualizaciones de posición de forma secuencial por cada fuente de datos (hay 14) va perfectamente. Con hilos de ejecución he conseguido que se actualice, pero no se gana nada de tiempo y no me gusta el efecto. Parece ser que utilizando el método Synchronize del hilo, te actualiza los marker del mapa todos a la vez.

        Muchas gracias otra vez y si hago avances te cuento.
        Álvaro

        • Hola de nuevo Álvaro

          Con respecto a la carga de datos, lo más importante es que desactives la propiedad AutoUodate y que, una vez cargados todos, ejecutes el método ShowElements. Este método en el TGMMarker es público, pero en TGMCircle es protected (voy a hacerla public en todos los componentes para la próxima versión). Si no desactivas el AutoUpdate, lo que hace el componentes es crear y mostrar el objeto en el mapa, desactivando, primero crea todos los objetos y luego los muestra todos de golpe.

          También puedo preparar una función de carga desde un DataSet para próximas versiones 😉

          Nos leemos

  57. Otra cosa cadetill.

    He notado que según se va ejecutando el programa aumenta el consumo de memoria considerablemente.
    Una vez cargado los datos, creados los objetos en tiempo real del programa y los TCircle y TMarker en el TGMMAP/TWebBorwser, ya no se crean más objetos.

    La ejecución del programa consiste básicamente en cambiar la posición de los TMarker.
    ¿Puede esto aumentar la menoria del proceso?

    Si no es así seguiré investigando a ver donde me consume tanta memoria.

    Gracias de antemano.
    Álvaro

  58. Hello Dear Admin
    is google.maps.geometry.poly.containsLocation (point, poly) option addet to componnet in release V 0.1.9 ?im waiting for long time for new release

  59. Hi, please, is possible to use GMLib in Delphi XE ?
    I try to compile D2010 or XE2 version, but both with errors 🙁
    Thanke for answer,
    Petr

  60. Hi, thanks, I tryed latest version 0.1.9, but there is only version for XE2 and XE3, of course not XE. I need in my project other components witch I have in XE only, so I cannot upgrade to XE2 or 3 :-(.
    Hope for new release with XE soon 🙂
    Regards,
    Petr.

  61. Hola cadetil.

    Trabajo con Sergio (bitfarm), creo que lo conoces. Estamos empezando a utilizar las GMLib (v.0.1.9) y me he encontrado con el siguiente problema. Quiero crear/actualizar una lista de TMarkers asociados a un objeto TGMMarker. Tengo puesta la propiedad «autoupdate=false». Cuando inserto o modifico los TMarkers y llamo al método ShowElements no se dibuja nada en el mapa. He estado ojeando el código y he visto que el método TCustomGMMarker.ShowElements llama al método ChangeProperties de cada uno de sus items. Lo extraño es que el método ChangeProperties comienza con una cláusula if con un montón de condiciones que si no se cumplen lanzan un exit. Entre esas condiciones está ésta

    not TCustomGMMarker(TCustomMarkers(Collection).FGMLinkedComponent).AutoUpdate

    con lo que nunca se llega a dibujar nada.

    He probado a quitar el not inicial y entonces todo funciona correctamente.

    ¿Hay algo que se me escape? ¿Es posible que no esté utilizando bien el componente?

    Un saludo,
    Adrián Vives.

  62. dear admin
    is it possible to use your component in firemonky apps?

  63. Hola de nuevo Cadetil.

    Te aviso de unas propiedades que actualmente están inaccesibles desde código y sería interesante tener disponibles.

    Se trata de las propiedades:

    Tpoliline.icon.icon.FillColor
    Tpoliline.icon.icon.StrokeColor

    El resto se pueden modificar por código (fillOpacity, strokeOpacity,…) pero estas no. Así que si intentas dibujar por código (creando las polilineas por código, claro) puedes obtener líneas punteadas (dashed) pero siempre en rojo (color por defecto al parecer).

    Veo que puede ser algo complicado porque el objeto Tpoliline.icon.icon es un TCustomSymbol que tiene como published las siguientes propiedades:


    property FillOpacity: Real read FFillOpacity write SetFillOpacity; // 0 to 1
    property Path: TSymbolPath read FPath write SetPath;
    property StrokeOpacity: Real read FStrokeOpacity write SetStrokeOpacity; // 0 to 1
    property StrokeWeight: Integer read FStrokeWeight write SetStrokeWeight; // 1 to 10

    Pero es la clase TSymbol, que hereda de la anterior, la que publica las propiedades de color:


    property FillColor: TColor read FFillColor write SetFillColor;
    property StrokeColor: TColor read FStrokeColor write SetStrokeColor;

    Ahí lo dejo, no sin antes agradecerte estas completas y utilísimas librerías. Buen trabajo.

    Un saludo,
    Adrián.

    • Hola Adrian

      Sí, conozco este dato y miraré de solucionarlo en próximas versiones. Hoy por hoy sólo puedes acceder a las propiedades de tipo TColor por código mediante un casteo a su clase.

      Para hacer compatible las GMLib con FMX, una de las propiedades afectadas son las de color (TColor para VCL) que para FMX tienen que ser TAlphaColor. Para lograrlo, la jerarquía de clases suele ser algo así: TCustomMiClase (con todas las propiedades menos las de color) –> TMiClase (con las propiedades de color). La propiedad que se publica es de tipo TCustomMiClase pero la que realmente se crea es de tipo TMiClase gracias al polimorfismo. Por eso en el Inspector ves todas las propiedades, pero por código no.

      En el caso que expones, la clase publicada es TCustomSymbol, pero internamente se crea un objeto de tipo TSymbol. Así pues, si haces
      TSymbol(Tpoliline.icon.icon).FillColor
      podrás acceder a las propiedades de color.

      Sé que no es lo más elegante, pero hasta una próxima versión en que lo arregle es lo que hay 😉

      Nos leemos

  64. Hola Cadetill nuevamente vuelvo a utilizar tus componentes despues de algo de tiempo, excelente trabajo por cierto 🙂

    Mira estoy intentando Obtener los valores de un GMMarker1

    Primero que nada ya tengo en una tabla Latitud, Longitud y Titulo, todo perfecto, pero quiero mostrar en un MessageBox por ejemplo esos mismos datos, o por lo menos el Titulo que aparece cuando coloco el mouse sobre el. Pero no he podido encontrar la forma adecuada, mira hago lo siguiente en el DobleClick:


    ShowMessage(GMMarker1.Items[0].Title);
    Query1.Locate('ID', GMMarker1.Items[0].Title, [loCaseInsensitive, loPartialKey]);

    Si lo escribo asi solo me muestra el registro 1 y no se como saber que numero de Item es esa Marca, Lo de abajo es porque quiero que me sincronice el Marcador que selecciono con el registro que almaceno esos datos para que se vea la demás información en los DBEdits, pero tampoco funciono ya que ni siquiera se mueve la DBGrid 🙂

    No se si me podrías dar una idea de como obtener el Titulo de mi Marcador que es el nombre del registro y así inventarme algo para que se sincronice con el Datasource supongo, o directamente con la DBGrid que tiene los datos.

    Saludos

    • Hola Erik

      Si estás usando el evento DblClick del TGMMarker, tienes el parámetro Index que es el índice del TMarker dentro del array de marcadores. También tienes el parámetro LinkedComponent, que casteándolo a un TMarker, tienes el propio marcador. Cualquiera de los dos parámetros te sirven para acceder al título del marcador.

      Nos leemos

  65. Hola de nuevo Cadetill gracias por tu respuesta, ya intente lo que me dijiste GMMarker1.Items. -> y me despliega la ayuda y ahi veo la informacion que necesito, como el titulo y numero de item actual ZIndex

    Escribo lo siguiente:


    GMMarker1.Items.ZIndex;

    Pero me marca error al compilarlo porque necesita saber en que numero de Item estoy:


    GMMarker1.Items[?].ZIndex;

    Se que necesita que le diga que numero de item esta actualmente seleccionado para poder mostrarme los datos, por ejemplo


    GMMarker1.Items[?].Title;
    GMMarker1.Items[?].ZIndex;
    GMMarker1.Items[?].Position;
    GMMarker1.Items[?].Animation; // Saber el item actual ayudaría a solo Animar al seleccionado y al cambiar dejar de animarlo

    Vi que con GMMarker1.VisualObjects.Count me dice cuantos elementos se cargaron pero lo que si no he logrado conseguir es poder decirle al GMMarker1 el numero de Item actual, no se si me pudieras dar alguna referencia porque ya lo intente inventando varias cosas pero no me detecta el que presiono, y por ende no puedo acceder a los demas datos.

    Tal ves sea una cosa sumamente facil pero ya le intente bastante y nada que doy con la solucion ojala me puedas orintar, saludos

    • Hola de nuevo Erik

      Como te digo, si lo haces des del DblClick del TGMMarker, tienes el parámetro Index que te da ese índice que quieres

      GMMarker1.Items[Index].Title;

      Así como el parámetro LinkedComponent que es el propio Item

      TMarker(LinkedComponent).Title;

      Si lo haces desde otro lado que no sea un evento del TGMMarker, pues ya depende de ti saber el Item al que quieres acceder.
      Si lo que quieres es recorrer en un bucle todos los items, un simple bucle te basta

        for i := 0 to GMMarker1.Count - 1 do
        begin
          GMMarker1[i].Title := 'ooooo';
        end;

      Nos leemos

      • Muchisimas gracias Cadetill como siempre, me imagine que seria algo sencillo pero nada que le encontre, muchas gracias voy a probar lo del bucle para ver si puedo animar solo el marcador que seleccione de mi DBGrid ya mas o menos tengo una idea, la cual consiste en recorrer todos los marcadores y si coincide alguno con el titulo que lo Anime 🙂 ya te contare, muchas gracias y un saludo 🙂

        • Por si a alguien le sirve aqui les dejo como le hice para poder animar solo el Marcador que esta relacionado con mi DBGrid y que al seleccionar otro deje de Animar al anterior:

          procedure TForm1.DBGrid1CellClick(Column: TColumn);
          Var
          i: Integer;
          begin
          if GMMarker1.Items[PosicionAnterior].Animation.Bounce = True then
          GMMarker1.Items[PosicionAnterior].Animation.Bounce:= False;

          for i := 0 to GMMarker1.Count – 1 do
          begin
          if GMMarker1[i].ZIndex = UniQuery1.RecNo – 1 then
          GMMarker1.Items[i].Animation.Bounce:= True;
          PosicionAnterior:= UniQuery1.RecNo – 1;
          end;
          end;

          Lo que hice como me dijiste fue recorrer con un Bucle los marcadores, cuando pasa por el marcador que coincide con mi registro en la Grid, entonces lo anima, guardo esa posición de la grid en una variable que se llama PosicionAnterior y cuando selecciono otro elemento de mi grid con un click checo si ese marcador esta Animado, si lo esta lo desactivo y recorro nuevamente buscando el actual.

          Esta muy chapucero y nada elegante pero hasta ahorita me esta funcionando 🙂 un saludo.

  66. Thank you for your effort on this lib. Very nice. While working with the GMDirections stuff, i noticed it computes and renders a route on the map just fine, but if i try to iterate through the routes in code the count is 0? I can’t seem to access all the routes and leg info. Any ideas? I’m using Delphi 7 with gmlib 0.1.9.

  67. No tengo como agradecer algo de esta magnitud pienso en tantas aplicacione que no se por cual empezar

  68. Hola Xavier.
    Estoy echándole un vistazo a los componentes, cosa que quería hacer desde hace tiempo. Tengo algún proyecto que trabaja con mapas (temas de GPS, tracks, waypoints,…-http://www.ibpindex.com/index.asp-) y estoy planteándome utilizar en él los componentes, ya que superan con mucho lo que yo tengo hecho de forma «manual».
    Haciendo pruebas, se me ha planteado una duda, que seguramente se puede realizar, pero que a primera vista con el ejemplo y el código no he sabido encontrar.

    Se trata de centrar el mapa a partir de una ruta (polyline); El centrado no es problema, utilizando el método «CenterMapTo» de la propia clase, pero lo que no consigo es adecuar el zoom para que se ajuste también a esta polyline. Es decir, poder calcular el zoom óptimo para visualizarla (el mayor posible, sin perder puntos).

    El primer paso imagino que podría ser calcular el área que contiene todos los puntos, cosa que se podría realizar utilizando «LatLngBoundsExtend» sobre los puntos de la polilinea (no se si hay otra más eficiente), pero lo que no acabo de ver es cómo calcular el «zoom óptimo» para esta zona.

    Espero no «molestar»mucho.

    P:D: Ya lo he comentado en el foro, pero considero son un gran trabajo.

    Un saludo y gracias.

    _______________
    Germán

    • Hola Germán, un gusto «verte» por aquí 🙂

      Esto lo tengo implementado para los marcadores, pero la verdad es que para las demás figuras no se me había pasado por la cabeza implementarlo. Dado que es muy buena idea, lo haré para la próxima versión de los componentes (que no creo que tarde ya demasiado).

      A la que lo tenga implementado, si quieres te lo comento y, si no quieres esperarte a que libere la próxima versión, te lo descargas vía SVN 😉

      Un abrazo y gracias a ti por probar los componentes

      Nos vemos

  69. Es posible conseguir este componente para C++BUILDER 2007. Gracias.

  70. […] para termos nosso mapa. Caso você queira se aprofundar mais na suite de componetes acesse o Blog de Cadetill e consulte a documentação de todos os componentes da […]

  71. Hola Cadetill,
    muchas gracias por estos fantásticos componentes, son realmente fantásticos.

    Quería comentarte una duda para ver si me la puedes resolver. La versión 3 de la API ofrece la posibilidad de pintar mapas de calor para representar densidades de puntos . El funcionamiento es muy parecido a las polilineas, pero lo que se muestra es un mapa de calor. De acuerdo a la API de Google maps, hay que definir un array con los puntos y luego crear la capa de esta forma:

    heatmap = new google.maps.visualization.HeatmapLayer({
    data: pointArray
    });

    heatmap.setMap(map);

    Sabes si hay alguna forma de dibujar este tipo de capa usando GMLib?

    Un saludo y muchas gracias.
    Enrique

  72. Estimado desarrollador, primero felicitaciones para el proyecto.

    Estoy empezando con los componentes en Brasil y me gustaría un poco de ayuda y orientación de cómo debe hacer el siguiente caso:

    1 -) Tengo una lista de las direcciones que se muestran en el mapa todas las marcas de estas direcciones en un mismo mapa.

    ¿Cómo hacer esto? y posible?

    • Ola Wildner

      Te recomiendo que en tu base de datos tengas 2 campos (lat / lng) para almacenar las coordenadas de cada dirección. ¿Por qué? Pues porqué sólo puede hacerse 1 geolocalización por segundo (excepto las 8 primeras) y, si son muchas, el tiempo de espera puede ser largo. En cambio, si tienes los campos de lat/lng, sólo te tardará la 1era vez.

      Espero te sirva

  73. […] para termos nosso mapa. Caso você queira se aprofundar mais na suite de componetes acesse o Blog de Cadetill e consulte a documentação de todos os componentes da […]

  74. Estimado amigo, un grn aporte tuyo por la librerias gmlib.

    Nosotros que amamos delphi estamos muy agradecidos.

    Tengo unas consultas:

    1) Existe alguna forma de poder incluir dentro de un circulo un texto descriptivo.
    2) Existe la posibilidad de cargar mapas de OSM sin dejar de usar el API de google?
    3) El componente TWEBBrowser es algo lento para mostrar mapas, has pensado usar el componente Delphi-EmbeddedWB

    Un gran abrazo

    Saludos desde PERU

    Tengo un interesante proyecto en desarrollo Google Maps + GPS + Android + Transporte Publico de Pasajeros. si estas interesado puedo darte detalles.

    • Hola Bruce

      Saludos desde el otro lado del Atlántico 😉

      1) La verdad es que no. Mi nivel de JS es bastante escaso y eso tendría que hacerse en ese lenguaje (y no he visto nada hecho al respecto) 🙁
      2) No me he mirado nunca OSM, pero imagino que se tendrá que usar su propia API (cose que no creo sea complicado de hacer, pero llevaría su tiempo, claro)
      3) La verdad es que no, y no creo que lo haga a no ser que exista alguna versión para FMX. No quiero «perder» el tiempo en componentes que sólo estén para VCL, ya que mi idea es hacerlo para ambos frameworks.

      El proyecto que quieres hacer suena muy interesante. Si no es molestia, sí, me gustaría me mandaras detalles (puedes ver mi correo en cualquiera de los .pas de los componentes o en el changelog.txt o install.txt que acompañan al proyecto) 🙂

      Saludos

  75. En lo referente a mapas de Open Street Map (OSM) no me referia a usar su API , solo a superponer los mapas OSM en Layers o algo asi. y seguir usando el API de google para seguir dibujando circulos, rectabgulos, marcas, etc.

    Existe alguna forma de poner texto en el mapa, eso me serviria para poner un texto descriptivo dentro de los circulos

    Saludos

    Bruce

    • No creo que se puedan poner las figuras de GoogleMaps en OSM, dado que éstas dependen directamente del mapa.

      Lo del texto, seguro que la hay, sería cuestión de buscar y/o investigar el tema, pero lo que también es seguro que tiene que ser un desarrollo aparte del API estándar de GoogleMaps, porque ésta no trae nada por defecto.

      Saludos

  76. Congratulations for this great job !
    Regards from Belgium.
    Remy

  77. Hola Cadetill como estas, acabo de actualizar los componentes a la version 1.1.0 y compile nuevamente mi programa, aparentemente todo funciona normalmente no me envia ningun error, el detalle sucede cuando intento cargar un PoliLine, que ahora me devuelve el siguiente error:

    —————————
    Gmaps
    —————————
    » is not a valid floating point value.
    —————————
    Aceptar
    —————————

    El codigo es el mismo que utilizada en una version anterior de tus componentes, cambio algo para poder remplazarlo???

    Este es mi codigo de carga:


    procedure TForm1.CargarPolyLines;
    var
    Polyline: TPolyline;
    begin
    // create a TPolyline
    Polyline := GMPolyline1.Add;
    // set properties
    Polyline.Editable := False;
    Polyline.StrokeColor := clRed;
    // Polyline.StrokeOpacity := 1.0;

    // create TLinePoint
    with Form3.Query1 do begin
    First;
    while not eof do begin
    Polyline.AddLinePoint(Query1.FieldByName('Latitud').AsFloat, Query1.FieldByName('Longitud').AsFloat);

    // Polyline.AddLinePoint(18.087076, -96.138868); //Si los coloco de esta manera si me carga la linea
    // Polyline.AddLinePoint(17.060598, -96.725357);
    Next
    end;
    end;
    Query1.First;
    end;

    Lo que hace es recorrer con el resultado de mi Query cada registro y cargar su latitud y longitud pero me da el error que te coloque arriba, con la version 0.8 me parece que es la que tenia instalada el mismo codigo funcionaba correctamente.

    Saludos

  78. hello
    thanks for your amazing component
    im looking forward to install component on XE5 i tried to install XE4 package but i got an error :

    [dcc32 Error] GMClasses.pas(1311): E2003 Undeclared identifier: ‘DecimalSeparator’
    [dcc32 Error] GMClasses.pas(1352): E2003 Undeclared identifier: ‘DecimalSeparator’
    [dcc32 Fatal Error] GMMap.pas(329): F2063 Could not compile used unit ‘GMClasses.pas’

    please help me i need to install and use in firemonkey in XE5

  79. Amazing work! Thank you.

  80. Hola Cadetill, primero que nada queria felicitarte por tu gran trabajo y agradecerte porque realmente nos ayuda mucho tu librerias en proyectos donde requiera el uso de GMaps.
    Ahora bien tengo una cuestion con los Markers, deshabilito la propiedad AutoUpdate para cargar mas de 100 markers, pero una vez cargado quiero agregar un nuevo marker y no se dibuja. Otro tema es si existe alguna forma para mejorar el desplazamiento en el mapa con muchos marcadores ya que mientras mas cantidad hay mas se pone lento.

    Espero tu respuesta! Saludos!

  81. Probé el método LoadFromDataSet y fue muy bueno el rendimiento obtenido tanto en la carga de los Markers como en el desplazamiento de la vista del mapa, muchísimas gracias!
    Otra cuestión que tengo es sobre si se podría modificar dicho método para que los Markers generados tengan la propiedad Draggable en true y los iconos los cargue desde una dirección de directorios y no de un campo del dataset.

    Desde ya muchas gracias por tus respuestas y tu aporte!

    Saludos

    • Hola de nuevo

      Por supuesto que puedes cambiar lo que quieras, para eso tienes los fuentes!! 🙂
      No obstante, más que modificar, te aconsejo que añadas un nuevo método basándote en los que ya hay, que me mandes el cambio y lo añado para que todos podamos disfrutar de él y así, en próximas actualizaciones lo tendrás por defecto y no tendrás que acordarte de volverlo a añadir/hacer los cambios.
      Saludos

  82. Hola amigo, como puedo hacer para que un marker standar muestre siempre un label?, el problema es que agrego varios markers a mi mapa pero para saber que es cada uno de los puntos marcados hayque dar click en el o pasar el mouse sobre el , seria practico que siempre estubiece visible un label indicado por el titulo.

    • Hola Alex

      GMLib es una librería que sólo pretende encapsular el API de Google Maps, no extender la misma. El comportamiento que tu pides no es algo estándar de Google Maps, por lo que no realiza ese efecto. Lo que puedes hacer en su lugar es cambiar el tipo de marcador a mtStyledMarker y con estilo siBubble, o bien tener siempre visible el InfoWindows del marcador.

  83. Hola, como puedo descargar la versión que compila con xe5? Gracias!

  84. Hola Cadetill primero que nada Felices fiestas navideñas 🙂

    Sigo probando tu trabajo y es excelente y muy util para un monton de ideas que requieran mapas de google, muchas gracias por compartirlo.

    Tengo una consulta, si cargo por ejemplo 20 marcadores, y sobre uno de ellos ocupo la herramienta de TCircle de un diametro aproximado de 1000 metros, es posible contar el numero de marcadores que estan dentro de ese perimetro?

    Hay alguna forma de detectar cuantos estan dentro del circulo?, te envio un saludo 😀

  85. Hola cadetill.

    Muchas gracias por estos componentes.

    Como puedo cambiar la propiedad MarkerType de un TMarker desde código?

    Gracias por adelantado. Un saludo!

  86. Hola amigo, estos componentes funcionan para android en el delhi xe5?
    si no es asi, planeas hacerlos compatibles?

  87. Felicidades por los componentes !!

    Sólo quería saber si estás preparando una versión que compile con Delphi XE6

    saludos.

  88. GmLib 1.2.4 Delphi 6..Delphi XE6 version 😉 😉

    http://yadi.sk/d/th-8oez8RSWK8

  89. Help help help 🙂 🙂

    google map marker with transparent text label

    Sample: http://jsfiddle.net/yV6xv/181/

  90. Hi cadetill

    I would be glad if you do XE6 version. 🙂

    Regards

  91. My project is running very slow, do you have a solution for. :S :S :S

  92. help help help help

    how they’ll integrate it. I would appreciate if you could help.

    http://stackoverflow.com/questions/11096094/google-maps-v3-marker-with-label

    🙂 🙂 🙂 🙂 🙂 🙂

  93. […] posto, segue o link para turbinar suas aplicações com os recursos da GMLib 1.3.0: GMLib – Google Maps Library v1.3.0 é  compatível com Delphi XE5 e Delphi […]

  94. Já existe uma versão compatível com Firemonkey? Utilizo o XE6 e quero desenvolver um APP android.

  95. Olá Cadetill,

    Gostaria de parabeniza-lo pelo otimo projeto.

    Iniciei alguns testes, e estou tentando montar um roteirizador, porem ao informar mais de 10 pontos, para o componente ele não traça a rota, não aparece nada no mapa, até 9 pontos o sistema gera a rota a apresenta no mapa, acima desta quantidade não .

    Sabe me informar se é um limitação da API, do componente ?

    Obrigado e parabéns pelo ótimo trabalho !

    Marcio

  96. bom dia,

    Começou ontem dar um erro «json» não está definido.

    Att
    José Carlos

  97. Boa Noite,

    Quando passa o mouse sobre algum ponto marcado

    Começou ontem dar esse erro:

    Linha: 188
    Caracter: 942
    Erro: «Json» não está definido
    Código: 0
    Url: about blank

    O que será que está errado

    Desde já agradeço sua atenção

  98. Bom dia Cadetill!

    No Windows XP SP3 com o Delphi XE2 e GMLib versão [1.4.0 Final].
    No IE8 já verifiquei a propriedade no item «Navegação» se está marcado «Desabilitar depuração Script» e desmarcado «Exibir notificação sobre cada erro de script» e nada!
    Tentei trocar a propriedade do GMMap1 language por «PortuguesBR» e «English» e nada resolveu.
    Quando clico em um «Marker» para informar o html simples que criei aparece o seguinte erro:
    «Invalid Floating Point Operation» em seguida
    «Access violation at address 633A001A in module ‘jscript.dll’. Read of address 00000000.»

    O que está faltando para acertar?

    Agredeço sua atenção!

    José Ricardo

  99. Muy buenas, estoy intentando trabajar con los componentes y la librería pero me sucede el siguiente problema.

    Ya sea a través de GeoCode1.Geocode(‘String’); o siempre que introduzca Address en alguna de las direcciones, se queda en el siguiente código eternamente. La ventana recupera el foco y todo lo demás funciona, pero no saltan más eventos de mi programa.

    procedure TGMGeoCode.GeocodeData(Data: string);
    var
    Tmp: string;
    begin
    if not Assigned(Map) then
    raise Exception.Create(GetTranslateText(‘Mapa no asignado’, Language));

    Tmp := Data + ‘,’ + QuotedStr(TCustomTransform.RegionToStr(FRegion));
    if (Bounds.NE.Lat 0) or (Bounds.NE.Lng 0) or
    (Bounds.SW.Lat 0) or (Bounds.SW.Lng 0) then
    Tmp := Tmp + ‘,’ + Bounds.SW.ToUrlValue(0) + ‘,’ + Bounds.NE.ToUrlValue(0)
    else
    Tmp := Tmp + ‘,-1,-1,-1,-1’;

    Tmp := Tmp + ‘,’ + QuotedStr(TCustomTransform.LangCodeToStr(FLangCode));
    ExecuteScript(‘GetGeocoder’, Tmp);

    //Aquí se queda pillado sin salir nunca
    repeat
    TGMGenFunc.ProcessMessages;
    until (GetIntegerField(GeocoderForm, GeocoderFormResponse) = 1);
    //
    FXMLData.Text := GetStringField(GeocoderForm, GeocoderFormXML);

    if Assigned(FAfterGetData) then FAfterGetData(Self);

    ParseData;
    end;

    ¿A que puede deberse esto?
    Gracias!

  100. Hola Cadetill, queria preguntarte si es posible utilizar la funcion MarkerClusterer de los mapas de google, ya que se me hace muy util sobre todo en mapas con infinidad de marcadores, ya que te segun el nivel de zoom lo que hace es mostrarte una especie de circulo de color con el numero de marcadores y entre mas te alejes o te acerques los reagrupa.

    Este es el enlace a la informacion de la utilizacion del MarkerClusterer:

    https://developers.google.com/maps/articles/toomanymarkers?hl=es#markerclusterer

    Saludos

  101. Hola Cadetill, estoy iniciando un proyecto que involucra mapas y baje los componentes, y lo que llevo usandolo estan super funcionales.

    Una duda que ya llevo algo de tiempo de revisar es si se puede mover el zoom del mapa por programa (talvez este sencillo pero no logro ver esto).

    La situacion es la siguiente, estoy haciendo un Marker buscando una direccion y funciona muy bien, pero el nivel de detalle que muestra el mapa no es el correcto (para la aplicacion), aparece a nivel ciudad y lo requiero a nivel calle.

    Te agradesco de antemano cualquier comentario.

  102. Estimado:

    Estoy instalando la versión 1.5.1 en Delphi XE7, correctamente instala GMLib_DX7 – GMLib_DX7_Vcl – GMLibEdit_DX7, pero para GMLib_DX7_FMX me da el siguiente mensaje:

    [dcc32 Fatal Error] F2039 Could not create output file ‘C:\Users\Public\Documents\Embarcadero\Studio\15.0\Bpl\GMLib_DXE7.bpl’
    [dcc32 Fatal Error] GMLib_DXE7_FMX.dpk(33): E2202 Required package ‘GMLib_DXE7’ not found

    Alguna solución

    Gracias

  103. Hola , rutas alternativas no están siendo preservados incluso con opción hiddeOthers ( false). Desearía que fueron asignadas todas las rutas . El color principal y de como una alternativa a otro color. Como hacer?

  104. Ola sr Cadetill.
    Sou Brasileiro e faço parte do grupo DELPHI EXPERTS, pelo FACEBOOK.
    Muito tenho aprendido nestes e em outros grupos.
    Vi seu artigo sobre GMLIB para delphi.
    Voce não teria o pacote para Delphi Seatlle ? eu ja peguei para Delphi XE8 e ainda nao migrei para a nova versao por falta destas classes.
    Agradeço desde ja pela atenção.

  105. Buenas noches Cadetill en primera instancia dar las gracias por tan excelente componente,
    por otro lado estoy muy interesado en instar el componente en la versión de Delphi XE10 Seattle ya que al descargar
    el paquete que aparece en la pagina que es 1.5.3 como ultima versión en el documento de Install.txt
    salen las siguientes plataformas:

    Delphi 6
    Delphi 7
    Delphi 2007
    Delphi 2009
    Delphi 2010
    RAD Studio XE
    RAD Studio XE2
    RAD Studio XE3
    RAD Studio XE4
    RAD Studio XE5
    RAD Studio XE6
    RAD Studio XE7
    RAD Studio XE8

    y versiones anteriores pero no hay documentación de RAD Studio Seattle 10
    no se si tengas un manual o un vídeo tutorial de como instalarla en RAD Studie Seattle 10 ya que esta version tiene nuevas cosas que nos permiten realizar nuevas cosas y es la licencia que tengo actualmente

    de nuevo muchas gracias mil bendiciones
    de antemano agradezco tu pronta respuesta.

  106. Boa tarde!
    Gostaria de saber se há possibilidade de colocar uma «label» visível abaixo de um marcador para identificar o mesmo.

  107. Buenas tardes
    Me esta saliendo el error » ‘StyledIcon’ no esta definido » cuando va a cargar el mapa
    Saludos

  108. Olá visto aqui é como se fosse a invenção da roda , porem no meu Delphi 2010 não executa, não abre os mapas. Alguém teria um código fonte pronto para enviar para mim ?
    obrigado

  109. Ola. Alguma novidade para o Delphi 10.1 Berlin? Obrigado e parabens pelo trabalho.

  110. Amigo, ¿Cuándo van a producir una nueva versión que se pueda instalar en RAD Studio XE 10.1 Berlin?

  111. Ola Cadetill, tudo bem?

    Alguma previsão para o Delphi Berlin?

    Grande abraço do Brasil.

  112. Como pego os dados da rota como a distancia depois de alterar a rota arrastando um determinado ponto?

  113. Saludos Cadetill, instale los componentes en XE10 Seattle siguiendo los pasos para XE8, y en cada paso me indico que los componentes estaban instalados, pero al abrir la paleta Google Maps, solo muestra 4 componentes, que me recomiendas.

  114. Buenas noches !

    Las primeras felicitaciones por el componente . Estoy desarrollando un sistema de enrutamiento con el componente GMDirection , para identificar a los restaurantes, combuístiveis los mensajes de marcadores en el camino. El objetivo es colocar los marcadores en el mapa por latitud y longitud, utilizando la respuesta componente de matriz ( overviewpatch ) .

    Me di cuenta de que el intervalo entre las coordenadas cambios ( overviewpatch ) en función del punto de origen y destino, como las coordenadas
    que esté registrado en la base de datos son fijos. Esto se lleva a la exactitud , porque si hay una ocurrencia con coordenadas cerca de la ruta ( overviewpatch ) es decir, dentro de la gama , el sistema tiene en cuenta .

    Me pregunto si hay una manera de obtener sólo las coordenadas ( matriz ) cuyo recorrido pasa en realidad ( polilínea ) y qué rango de criterios que utiliza la API para calcular el parche visión general .

    Sujestões son muy bienvenidos!

    ( PS : Texto traducido con google )

    Muchas gracias ! Saludos desde Brasil !

    Eduardo .

  115. Buenas…. cuando utilizo GMDirection para mostrar una ruta entre 4 puntos y uno de ellos son estas coordenadas (42.237367,-8.735198) ó (42,235902,-8.732295) cuando ejecuto el GMDirecction.Execute aparece un mensaje de error que dice

    No se puede convertir NULL a Objeto OLE

    He depurado y he llegado hasta aquí

    GMDirecction.pas – Línea 3575

    // ES: etiqueta «summary» (sólo una) // EN: «summary» tag (only one)
    if SameText(Node.NodeName, LBL_D_SUMMARY) then Result.FSumary := Node.NodeValue;

    ¿Me puedes echar un cable?

    Gracias

  116. Boa Tarde!
    Cadetill, estou com um problema e acredito que a biblioteca GMLIB possa me ajudar, já baixei sua biblioteca e já tenho pronta uma aplicação de rota com vários pontos. O meu problema é o seguinte, quero retorna um ponto próximo a outro ponto pre definido. Ex. Um ônibus irá levar os funcionários até a empresa, mas o problema é que o ônibus não vai até a casa de cada funcionário o programa retornaria um ponto que ficaria fácil para o ônibus passar sem sair muito da sua rota principal e que o funcionário não ande muito até chegar nesse ponto. Teria que estimar uns 2km para o funcionário não andar muito.
    Com a GMLIB consegui traçar essa rota mas indo diretamente no endereço do funcionário, não consegui calcular esse novo ponto para o ônibus passar.

  117. Saludos a todos y de antemano gracias por su valioso tiempo y aportes a todos…

    He tratado de todas formas para poder tratar de instalar GMLib en Berlin 10.1 y no ha sido posible, las demos se ejecutan bien y al compilar e instalar he podido resolver una que otra situación, pero no se me instalan todos los componentes TGMGeoCode, TGMGroundOverlay, TGMHeatmap y TGMInfoWindow, hay 2 paquetes mas, pero vacíos.

    He descargado directo, con el repositorio, he compilado y generado todo e instalado, y nada!

    Les agradezco cualquier ayuda…

  118. Hi Cadetill !

    Function TGeometry.IsLocationOnEdge() does not return the expected result, applying the following situation:

    I’m changing the parameter of funcion IsLocationOnEdge, integer for real.

    Example if say (33.00276, -96.6824) is on the polyline, if the tolerance is 0.00001 then if you change the point to (33.00278, -96.6824) then the point will not be on the polyline.

    So, you can probably use 0.001 as the tolerance value, if you want to find detect a location within about 100m for polyline.

    For example, if your location is (1.001, 12), one of the points in polyline is(1, 12), the distance between your location and the polyline will be about 111.319 meters. The tolerance between (1.001, 12) and (1, 12) is 0.001, so the isLocationOnEdge() will return true.

    If your location is (1.002, 12), distance to (1, 12), will be about 222.638 meters. The tolerance between them is 0.02, so if you use 0.001 as the tolerance value for isLocaitonOnEdge(), it will return false.

    Could you help me with this situation ?

    Thanks !

    Eduardo.

  119. No puedo compilarlo en Delphi 10.1
    A alguno le pasa?
    No entiendo mucho de esto por que recién empiezo, pero quizás alguien me pueda ayudar a enterder por qué no compila.
    Gracias!!

  120. hola perdon la ignorancia
    xe7 compile e installe como dice el archivo de install.txt
    pero al correrlo marca «can not run project unless host application is defined. Use run|parameters dialog box»

    o como le hago para correrlo

    gracias

  121. Hola, buenas tardes
    He estado trabajando con el componente TGMMap y TGMPolygon.
    Existe alguna manera de crear lo polígonos de manera masiva?
    Es decir actualmente tengo almacenados alrededor de 58,000 polígonos con 4 Vértices en promedio en una BD.
    pero para montarlos al componente ocupo recorrer el cursor de esos 58,000 con sus respectivos vértices
    y es un poco tardado el proceso.
    Saludos.
    Atte. Luis Pineda

  122. Una pregunta que no veo que se pueda hacer…. ¿se pueden agrupar los marker? es decir, si hay muchos puntos juntos en una misma zona, ¿hay forma de agruparlos y que muestre un número y a medida que se hace zoom se vayan desagrupando?

    Gracias

  123. Bom dia, Existe alguma função para me retornar as distancia entre 2 pontos ,passando como parametro lat/long e o endereço ? Muito obrigado pela ajuda

  124. Ola,

    Tenho alguns projetos utilizando o seu componente de uma semana para ate hoje esta ocorrendo um erro no ao abrir o mapa.

    Ops! Algo deu errado.
    Esta página não carregou o Google Maps corretamente. Consulte o console JavaScript para ver detalhes técnicos.

    Fiz um projeto so colocando o componente e um TwebBrowser e apos abrir o mapa ocorre o erro.

    Não utlizo Key, fiz o cadastro no google de gerar a Key e mesmo assim ocorre o erro

    Sabe o que pode estar ocorrendo ?

    Obrigado

    Marcio

  125. Hola Cadetill, primero agradecerte por estos geniales componentes.
    Segundo, al querer abrir el Mega Demo, luego de unos segundos aparece un mensaje que dice lo siguiente:
    «Se produjo un error. Esta página no cargó bien Google Maps. Consulta la consola de javaScript para obtener los detalles técnicos.»
    No se como abrir la consola, y no da ningún detalle mas sobre el error.
    Gracias y saludos!

  126. Buen dia, desde el dia de ayer al momneto de cargar los demos me aparece el siguiente error «Esta pagina no cargo bien Google Maps. Consulta la cosola de JavaScript » esto a que se debe

  127. Hola, he descargado los componentes porque aspiro a poder mostrar un mapa con multiples direcciones (o wayponts? ), bien.. de inicio he querido ejecutar los demos de «gmlib_demos» y quedan frezze todos, no responden, tengo que instalar algo adicional en el windows para que funcionen? algun tip que me puedas pasar? gracias!!!! 🙂

  128. Hola Cadetill. Había estado usando sin problemas la versión 1.5.3 del componente en Rad Studio XE10.1 Berlin, y hoy, de repente, en las dos computadoras que tengo para desarrollo, empezó a no funcionar.
    ¿Sabes si pudo haber habido algún problema en la API de GoogleMaps o que haya cambiado la versión, o algo así?

    Yo para evitar errores siempre he usado algo como esto:

    try
    //if glSettings.GMapsStarted and WebBrowserGMaps.Visible then
    GMMap.DoMap;
    except
    edGeoLocation.Text := Format(‘Problem on Accessing GoogleMaps…’, []);
    if GMMap.WebBrowser.Document = nil then
    GMMap.WebBrowser.Navigate(‘about:blank’);
    end;

    Y lo que me está pasando ahora es que todas las ventanas son blancas, es decir, da una excepción permanentemente el DoMap. No cambié nada más, inclusive volví a unas versiones anteriores de código y hacen lo mismo.

    Muchas gracias.

    Saludos.

  129. Hi, please, How to use hexadecimal colors in gmmarker.ColoredMarker.PrimaryColor ?
    thanks

  130. Buenas tardes, en el MegaDemo, al abrir: Map -> Map Properties -> Visual Prop. Al presionar en «Do Map» me da el error «Página inicial aun no cargada». Que puede ser lo que me esté dando este error? Gracias

  131. good afternoon,

    Started making a mistake now afternoon, right here in the code In Unit: GMMap;
    «If not FDocLoaded then
    Raise Exception.Create (GetTranslateText (‘Home not yet loaded’, Language));

    System is Key API Key If you can help me .. thank you very much.

  132. estou com problema no metodo execute da classe gmDirection, tem repeat que fica em loop para sempre e acaba travando o aplicativo, fiz alguns ajustes na minha classe caso ache interessante, segue a alteração.

    repeat
    TGMGenFunc.ProcessMessages;
    Inc(count);

    retorno := GetIntegerField(DirectionsForm, DirectionsFormResponse);

    if retorno = 0 then
    begin
    if count = 100 then
    Break;
    end;
    until (retorno = 1);

  133. Desde hace algunos 3 días que el programa que había desarrollado utilizando esta librería no carga la página inicial o principal, es decir no despliega el mapa, a pesar de haber instalado la versión reciente 1.5.5

  134. Cadeteil,

    Meu sistema estava funcionando normalmente , apos as mudanças do google apos 11/06 sobre a cobrança dos servicos, criei uma conta de faturamento, associei a minha conta e ao projeto que tinha a chave, APIKEY, porem ao entrar no mapa , ele nao aparece…. fica sempre girando o cursor…e não carrega, sabe se houve alguma mundança e há necessidade de algum ajuste na GMLIB ?

  135. Cadetil buenos dias
    tengo un software el cual tengo muchos años trabajando en él sin contratiempos mayores, pero el dia de ayer al mostrar el mapa me marca un error, al parecer tiene que ver con el componente GMaps. sabes si hubo algun cambio en las politicas de google que este ocasionando este error..

    El mensaje que me marca es:

    «ERROR EN EL SCRIPT DE ESTA PAGINA»

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.