AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Delphi-News aus aller Welt Mostrar marcadores en un mapa desde un fichero de coordenadas
Thema durchsuchen
Ansicht
Themen-Optionen

Mostrar marcadores en un mapa desde un fichero de coordenadas

Ein Thema von DP News-Robot · begonnen am 12. Aug 2021
Antwort Antwort
Benutzerbild von DP News-Robot
DP News-Robot

Registriert seit: 4. Jun 2010
14.983 Beiträge
 
#1

Mostrar marcadores en un mapa desde un fichero de coordenadas

  Alt 12. Aug 2021, 16:00



Esta utilidad lo que hace es leer las coordenadas almacenadas en un fichero para mostrarlas en un mapa utilizando nuestro lenguaje de programación de confianza Delphi 10.4.1

El archivo de origen se llamará "datos.csv" y tendrá 4 campos separados por un punto y coma.

El formato será el siguiente :

;;;

Se puede utilizar la api de google maps, pero he preferido utilizar leaflet (que es gratuito), para ello creo una plantilla del archivo html que mostrará el mapa y voy sustituyendo dentro de los tokens marcados como "#1#", "#2#", etc... los valores que corresponda según el fichero de coordenadas "datos.csv"

Leaflet es una biblioteca javascript open-source que permite hacer mapas interactivos de una forma muy sencilla. La utilizan miles de sitios web debido a su gran simplicidad, rendimiento y usabilidad, además tiene una gran cantidad de plugins y permite escribir código que es legible y bien documentado.

A continuación pasaremos a explicar por encima el código:

Inicialmente cargamos el fichero "datos.csv" y lo guardamos en un tMemo.

Memo2.Lines.Clear;
fich := tstringlist.Create;
TRY

// fich.LoadFromFile('datos.csv',tencoding.UTF8);
fich.LoadFromFile('datos.csv', tencoding.ANSI);
Memo2.Text := fich.Text;

FINALLY
fich.Free;
END;
----

Después procedo a leer línea a línea el fichero, guardamos los campos de cada línea en las variables t1,t2,t3 y sustituimos dichos valores en la línea :




html := html + 'L.marker([' + t2 + ',' + t3 + ']).addTo(map).bindPopup(''' + t1 + ''');' + chr(13) + chr(10);
---



"L.marker" es una función javascript de la librería leaflet que lo que hacer es poner un marcador en el mapa.


Con todos los marcadores creados según la instrucción anterior, los guardo en la variable html y procedo a sustituir el token #1# por todo lo que haya en html

Memo1.Text := stringreplace(Memo1.Text, '#1#', html, [rfreplaceAll]);
Y para finalizar enviamos el Memo1.text al componente WebBrowser1 que será el encargado de mostrar el mapa al usuario con los marcadores


WebBrowser1.Navigate('about:blank');
WebBrowser1.Loadfromstrings(Memo1.Text, '');
----

Como siempre les dejo el código fuente y el ejecutable:

Este programa está realizado por Javier Pareja con Delphi 10.4.1



Suscribirse :



Weiterlesen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:44 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz