Fórum Duvida sobre Google Maps e Android #470508
19/02/2014
0
Olá gostaria de tirar uma duvida, até besta se for ver.
Seguinte estou querendo fazer um log com a minha localização(A cada Nmin ele se atualiza o arquivo de log com o local onde estou no momento) Até ai ok. Porém só estou conseguindo puxar o CEP e a Cidade.
Ex: São Paulo / 18520-000. E no caso gostaria de pegar a rua e a exata cidade.
Ex: Sao Paulo / Cerquilho / Av. Joao PIlon /.
Eu sei que pode parecer meio estupido esta pergunta, mas se puderem ajudar agradeco. A proposito estou utilizando o Android como plataforma com o firemonkey mobile na versão Delphi XE5.
Att.
Seguinte estou querendo fazer um log com a minha localização(A cada Nmin ele se atualiza o arquivo de log com o local onde estou no momento) Até ai ok. Porém só estou conseguindo puxar o CEP e a Cidade.
Ex: São Paulo / 18520-000. E no caso gostaria de pegar a rua e a exata cidade.
Ex: Sao Paulo / Cerquilho / Av. Joao PIlon /.
Eu sei que pode parecer meio estupido esta pergunta, mas se puderem ajudar agradeco. A proposito estou utilizando o Android como plataforma com o firemonkey mobile na versão Delphi XE5.
Att.
Marcelo Urso
Curtir tópico
+ 0
Responder
Posts
19/02/2014
Deivison Melo
Seria interessante postar seu código para que possamos ajudá-lo...
Abração e bons códigos!!!
Abração e bons códigos!!!
Responder
Gostei + 0
19/02/2014
Marcelo Urso
unit location1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.StdCtrls,
FMX.ListBox, FMX.Layouts, FMX.WebBrowser, FMX.Sensors, System.Sensors, FMX.MobilePreview,
FMX.Colors, FMX.Memo, FMX.Edit, FMX.Ani, IdBaseComponent, IdDateTimeStamp,
FMX.DateTimeCtrls, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
type
TForm2 = class(TForm)
Localização: TColorBox;
Label1: TLabel;
ListBox1: TListBox;
LocationSensor1: TLocationSensor;
Switch1: TSwitch;
Ativar: TLabel;
Estado: TListBoxItem;
Cidade: TListBoxItem;
CodigoPostal: TListBoxItem;
Latitude: TListBoxItem;
Longitude: TListBoxItem;
WebBrowser1: TWebBrowser;
Memo1: TMemo;
Timer1: TTimer;
WebAnimation1: TFloatAnimation;
WebwAnimation1: TFloatAnimation;
Timer2: TTimer;
Button1: TButton;
IdHTTP1: TIdHTTP;
procedure LocationSensor1LocationChanged(Sender: TObject; const Oldlocation,
NewLocation: TLocationCoord2D);
procedure Switch1Switch(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FGeocoder: TGeocoder;
procedure OnGeocodeReverseEvent(const Address: TCivicAddress);
public
{ Public declarations }
end;
var
Form2: TForm2;
Memo1 : string;
Edit1 : string;
date: Tdatetime;
implementation
{$R *.fmx}
procedure TForm2.Switch1Switch(Sender: TObject);
var hue:string;
begin
LocationSensor1.Active := Switch1.IsChecked;
timer1.Enabled := true;
date := now;
DateTimeToString(hue, 'dd/mm/yyyy | hh:MM:ss', date);
Memo1.Lines.Add( hue + ' --> Lat ' + Estado.ItemData.Detail + ' | Lon: ' + Cidade.ItemData.Detail);
Memo1.Lines.SaveToFile('/sdcard/test.txt');
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
showmessage('oi');
end;
procedure TForm2.LocationSensor1LocationChanged(Sender: TObject;
const OldLocation, NewLocation: TLocationCoord2D);
var
URLString: String;
LLatitudem, LLongitude: string;
LSettings: TFormatSettings;
LDecSeparator: Char;
begin
LDecSeparator := FormatSettings.DecimalSeparator;
LSettings := FormatSettings;
try
FormatSettings.DecimalSeparator := '.';
Latitude.ItemData.Detail := Format('%2.6f', [NewLocation.Latitude]);
Longitude.ItemData.Detail := Format('%2.6f',[NewLocation.Longitude]);
LLongitude := FloatToStr(NewLocation.Longitude, LSettings);
URLString := Format(
'https://maps.google.com.br/maps?q=%2.6f, %2.6f&output=embed',
[NewLocation.Latitude, Newlocation.Longitude]);
finally
FormatSettings.DecimalSeparator := LDecSeparator;
end;
WebBrowser1.Navigate(URLString);
if not Assigned(FGeocoder) then begin
if Assigned(TGeocoder.Current) then begin
FGeocoder := TGeocoder.Current.Create;
end;
if Assigned(FGeocoder) then begin
FGeocoder.OnGeocodeReverse := OnGeocodeReverseEvent;
end;
end;
if Assigned(FGeocoder) and not FGeocoder.Geocoding then begin
FGeocoder.GeocodeReverse(NewLocation);
end;
end;
procedure TForm2.OnGeocodeReverseEvent(const Address: TCivicAddress);
begin
if Address <> nil then
begin
Estado.ItemData.Detail := Address.Adminarea;
Cidade.ItemData.Detail := Address.PostalCode;
CodigoPostal.ItemData.Detail := Address.Address;
end;
end;
end.Aqui esta.
Estou usando, para treinamento, o exemplo do Delphi Xe5 "Location Demo". O log no caso é salvo em um txt e para eu ter certeza que o mesmo esta se atualizando deixo ele também no Memo1.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)