Geolocation

TsgcHTMLComponent_Geolocation leest de positie van het apparaat uit met de Geolocation API van de browser en levert die aan de server, eenmalig per aanvraag of continu, vanuit een zichtbaar of een verborgen paneel, in Delphi, C++ Builder, Lazarus en .NET.

TsgcHTMLComponent_Geolocation

Kies ShowUI en UpdateMode, stel WSSend of Action in en lees dan de HTML-eigenschap. Elke meting komt op de server aan als geo_lat, geo_lng, geo_accuracy en de overige geo_*-velden.

Componentklasse

TsgcHTMLComponent_Geolocation

Rendert

Locatiepaneel of verborgen paneel + negen verborgen velden + inline script

Talen

Delphi, C++ Builder, Lazarus, .NET

Volg een positie op de achtergrond

Geen library om mee te leveren en niets dat van een CDN wordt opgehaald: de positie komt van de Geolocation API van de browser. Serveer de pagina via HTTPS, of tijdens de ontwikkeling vanaf localhost, omdat browsers geolocatie alleen in een beveiligde context beschikbaar stellen.

uses
  sgcHTML_Component_Geolocation;

var
  oGeo: TsgcHTMLComponent_Geolocation;
begin
  oGeo := TsgcHTMLComponent_Geolocation.Create(nil);
  try
    oGeo.GeolocationID := 'deliveryGeo';
    oGeo.ShowUI := False;              // no visible panel
    oGeo.UpdateMode := gumContinuous;     // keep watching until stopped
    oGeo.MinIntervalMs := 30000;
    oGeo.MinDistanceMeters := 50;
    oGeo.AutoStart := True;
    oGeo.WSSend := True;               // push every reading over WebSocket

    WebModule.Response := oGeo.HTML;      // hidden fields + inline script
  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;   // hidden fields + inline script
}
__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;   // hidden fields + inline script

Belangrijkste eigenschappen en methoden

De members die je het vaakst gebruikt.

ShowUI

True (standaard) rendert een Locate-knop, in continue modus een Stop-knop, een statusregel met breedtegraad, lengtegraad en nauwkeurigheid, en de optionele OpenStreetMap-link van ShowMapLink. False rendert niets zichtbaars, dus het paneel start via AutoStart of via el.sgcGeoStart() en el.sgcGeoStop().

UpdateMode

gumOnce (standaard) levert één meting per start. gumContinuous blijft volgen tot het wordt gestopt, afgeremd door MinIntervalMs (standaard 5000) en MinDistanceMeters (standaard 0).

Positie-opties

EnableHighAccuracy (standaard True), TimeoutMs (standaard 10000) en MaximumAgeMs (standaard 0) worden bij elke aanvraag aan de browser doorgegeven.

FieldName

Prefix van de negen verborgen velden, standaard geo: breedtegraad, lengtegraad, nauwkeurigheid, hoogte, hoogtenauwkeurigheid, richting, snelheid, tijdstempel en geo_error.

WSSend / Action / RedirectURL

Stuur elke meting via de sgc WebSocket, POST hem naar Action, of navigeer naar RedirectURL met de positie in de querystring. TargetSelector schrijft lat,lng naar een ander element van de pagina.

Fouten

geo_error meldt permission_denied, position_unavailable, timeout, insecure_context of not_supported. Bij elke meting wordt een sgcGeolocation:position DOM-gebeurtenis geactiveerd.

Blijf ontdekken

Online helpVolledige API-referentie en gebruikshandleiding voor dit onderdeel.
Alle sgcHTML-componentenBlader door de volledige functiematrix van 80+ componenten.
Download gratis proefversieDe proefversie van 30 dagen bevat de 60.HTML-demoprojecten.
PrijzenSingle-, Team- en Site-licenties met volledige broncode.
De beste deal: All-AccessElk eSeGeCe-product, inclusief Premium-ondersteuning, vanaf €1,059 per jaar.
Bekijk de All-Access-prijzen

Klaar om te beginnen?

Download de gratis proefversie en begin met het bouwen van web-UI's in Delphi, C++ Builder en .NET.