AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi GP(S)-Höhendaten aus Internet ermitteln

GP(S)-Höhendaten aus Internet ermitteln

Ein Thema von DelphiFan2008 · begonnen am 23. Sep 2009 · letzter Beitrag vom 23. Sep 2009
Antwort Antwort
DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#1

GP(S)-Höhendaten aus Internet ermitteln

  Alt 23. Sep 2009, 10:52
Hallo,

ich benutze Delphi schon seit längerem, habe mich jedoch nicht mit dem Zugriff aufs Internet beschäftigt. Momentan schreibe ich ein Programm zur Auswertung von GPS-Daten. Häufig fehlen in GPS-Dateien (GPX) die Höhenangaben. Die Höhenangaben könne z.B. im Internet unter <GPSies> mit Option "Höhendaten ersetzen / hinzufügen" ermittelt werden.

Das ufert bei häufiger Anwendung in Klick-Orgien aus und schreit nach Automatisierung und geht nur für Dateien. Auf einer weiteren Homepage <Were's Cyberhome> habe ich das Perl Script gefunden, welches ebenfalls die gewünschten Daten von <GeoNames> ermittelt.

Meine Vorstellung ist eine Funktion ähnlich im Script - halt nur in Delphi - so daß bei Übergabe der Geo-Koordinaten die Höhendaten über das Internet ermittelt werden. Perl :

my $response = $ua->get('http://ws.geonames.org/srtm3?lat='.$point->{'lat'}.'&lng='.$point->{'lon'});

Hat jemand eine Idee?

Gruß DelphiFan2008

Anmerkung : Ich verwende TurboDelphi 2006
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: GP(S)-Höhendaten aus Internet ermitteln

  Alt 23. Sep 2009, 11:03
my $response = $ua->get('http://ws.geonames.org/srtm3?lat='.$point->{'lat'}.'&lng='.$point->{'lon'});


Ich würde es so versuchen:
sResponse := idHttp.get('http://ws.geonames.org/srtm3?lat='+FloatToStr(lat)+'&lng='+floatToStr(lon)); Vorausgesetzt lat und lon sind FloatWerte.

idHttp ist die Instanz der Klasse TidHttp.
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#3

Re: GP(S)-Höhendaten aus Internet ermitteln

  Alt 23. Sep 2009, 12:03
Hallo Klaus01,

danke für deine "super" schnelle Antwort - Code funktioniert nach erstem Test hervorragen. Werde noch etwas ausbauen. Test-Programm

Delphi-Quellcode:
function StrRepChar(Strg:String;ch1,ch2:Char):String;
var i : integer;
begin
  for i:=1 to Length(Strg) do
    if(Strg[i]=ch1) then
      Strg[i]:=ch2;
  result := Strg;
end;

function GetNumString( Strg:String ):Double;
var i : integer;
     s : String;
begin
  s := '';
  for i:=1 to Length(Strg) do
    if(Strg[i] in ['0'..'9']) then
      s := s + Strg[i];
  result := StrToFloatDef( s,0.0 );
end;


procedure TForm1.Button1Click(Sender: TObject);
var idHttp : TidHttp;
     sResponse,slat,slon : String;
     lat,lon,alt : Double;
begin
  idHttp := TidHttp.Create;

  // München Allianz-Arena, ganz grob
  lat := 48.12;
  lon := 11.37;

  slat := StrRepChar( FloatToStr( lat ),Decimalseparator,'.' );
  slon := StrRepChar( FloatToStr( lon ),Decimalseparator,'.' );

  sResponse := idHttp.get('http://ws.geonames.org/srtm3?lat='+slat+'&lng='+slon);

  alt := GetNumString( sResponse );

  Caption := Format('[lat=%f][lat=%f][alt=%f]',[lat,lon,alt] );

  idHttp.Free;
end;
Danke und Gruß DelphiFan2008
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 01:42 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