Geolocation

TsgcHTMLComponent_Geolocation lê a posição do dispositivo com a API Geolocation do navegador e a entrega ao servidor, uma vez por requisição ou continuamente, a partir de um painel visível ou oculto, em Delphi, C++ Builder, Lazarus e .NET.

TsgcHTMLComponent_Geolocation

Escolha ShowUI e UpdateMode, defina WSSend ou Action e depois leia a propriedade HTML. Cada leitura chega ao servidor como geo_lat, geo_lng, geo_accuracy e os demais campos geo_*.

Classe do componente

TsgcHTMLComponent_Geolocation

Renderiza

Painel de localização ou painel oculto + nove campos ocultos + script inline

Linguagens

Delphi, C++ Builder, Lazarus, .NET

Acompanhe uma posição em segundo plano

Nenhuma biblioteca para empacotar e nada baixado de uma CDN: a posição vem da API Geolocation do navegador. Sirva a página por HTTPS, ou por localhost durante o desenvolvimento, porque os navegadores só expõem a geolocalização em um contexto seguro.

uses
  sgcHTML_Component_Geolocation;

var
  oGeo: TsgcHTMLComponent_Geolocation;
begin
  oGeo := TsgcHTMLComponent_Geolocation.Create(nil);
  try
    oGeo.GeolocationID := 'deliveryGeo';
    oGeo.ShowUI := False;              // sem painel visível
    oGeo.UpdateMode := gumContinuous;     // continua monitorando até ser interrompido
    oGeo.MinIntervalMs := 30000;
    oGeo.MinDistanceMeters := 50;
    oGeo.AutoStart := True;
    oGeo.WSSend := True;               // envia cada leitura por WebSocket

    WebModule.Response := oGeo.HTML;      // campos ocultos + script inline
  finally
    oGeo.Free;
  end;
end;
// includes: sgcHTML_Component_Geolocation.hpp

TsgcHTMLComponent_Geolocation *oGeo = new TsgcHTMLComponent_Geolocation(NULL);
try
{
  oGeo->GeolocationID = "deliveryGeo";
  oGeo->ShowUI = false;
  oGeo->UpdateMode = gumContinuous;
  oGeo->MinIntervalMs = 30000;
  oGeo->MinDistanceMeters = 50;
  oGeo->AutoStart = true;
  oGeo->WSSend = true;

  String html = oGeo->HTML;   // campos ocultos + script inline
}
__finally
{
  delete oGeo;
}
using esegece.sgcWebSockets;

var geo = new TsgcHTMLComponent_Geolocation();
geo.GeolocationID = "deliveryGeo";
geo.ShowUI = false;
geo.UpdateMode = TsgcHTMLGeolocationUpdateMode.gumContinuous;
geo.MinIntervalMs = 30000;
geo.MinDistanceMeters = 50;
geo.AutoStart = true;
geo.WSSend = true;

string html = geo.HTML;   // campos ocultos + script inline

Principais propriedades & métodos

Os membros que você usa com mais frequência.

ShowUI

True (padrão) renderiza um botão Localizar, um botão Parar no modo contínuo, uma linha de status com latitude, longitude e precisão, e o link opcional do OpenStreetMap de ShowMapLink. False não renderiza nada visível, então o painel inicia por AutoStart ou por el.sgcGeoStart() e el.sgcGeoStop().

UpdateMode

gumOnce (padrão) entrega uma leitura a cada início. gumContinuous continua monitorando até ser interrompido, limitado por MinIntervalMs (padrão 5000) e MinDistanceMeters (padrão 0).

Opções de posição

EnableHighAccuracy (padrão True), TimeoutMs (padrão 10000) e MaximumAgeMs (padrão 0) são passados ao navegador em cada requisição.

FieldName

Prefixo dos nove campos ocultos, padrão geo: latitude, longitude, precisão, altitude, precisão da altitude, direção, velocidade, timestamp e geo_error.

WSSend / Action / RedirectURL

Envie cada leitura pelo WebSocket do sgc, faça POST para Action, ou navegue para RedirectURL com a posição na query string. TargetSelector escreve lat,lng em outro elemento da página.

Erros

geo_error informa permission_denied, position_unavailable, timeout, insecure_context ou not_supported. Um evento DOM sgcGeolocation:position é disparado a cada leitura.

Continue explorando

Ajuda onlineReferência completa da API e guia de uso para este componente.
Todos os Componentes sgcHTMLExplore a matriz completa de recursos com mais de 80 componentes.
Baixar Versão de Avaliação GratuitaA avaliação de 30 dias inclui os projetos de demonstração 60.HTML.
PreçosLicenças Single, Team e Site com código-fonte completo.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para Começar?

Baixe a versão de avaliação gratuita e comece a construir UIs web em Delphi, C++ Builder e .NET.