(Español) GMLib – Google Maps Library

 

Sorry, this entry is only available in European Spanish.

  365 Responses to “(Español) 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 😉

          E