Geolocation
TsgcHTMLComponent_Geolocation odczytuje pozycję urządzenia przez Geolocation API przeglądarki i przekazuje ją na serwer, jednorazowo lub w sposób ciągły, z widocznego lub z ukrytego panelu, w Delphi, C++ Builder, Lazarus i .NET.
TsgcHTMLComponent_Geolocation odczytuje pozycję urządzenia przez Geolocation API przeglądarki i przekazuje ją na serwer, jednorazowo lub w sposób ciągły, z widocznego lub z ukrytego panelu, w Delphi, C++ Builder, Lazarus i .NET.
Wybierz ShowUI i UpdateMode, ustaw WSSend lub Action, a następnie odczytaj właściwość HTML. Każdy odczyt trafia na serwer jako geo_lat, geo_lng, geo_accuracy i pozostałe pola geo_*.
TsgcHTMLComponent_Geolocation
Panel lokalizacji lub panel ukryty + dziewięć pól ukrytych + skrypt wbudowany
Delphi, C++ Builder, Lazarus, .NET
Żadnej biblioteki do dołączenia i niczego pobieranego z CDN: pozycja pochodzi z Geolocation API przeglądarki. Udostępniaj stronę przez HTTPS lub z localhost podczas programowania, ponieważ przeglądarki udostępniają geolokalizację tylko w bezpiecznym kontekście.
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
Składniki, po które sięgasz najczęściej.
True (domyślnie) renderuje przycisk lokalizacji, w trybie ciągłym przycisk zatrzymania, wiersz stanu z szerokością, długością geograficzną i dokładnością oraz opcjonalny odnośnik OpenStreetMap z ShowMapLink. False nie renderuje niczego widocznego, więc panel startuje z AutoStart lub przez el.sgcGeoStart() i el.sgcGeoStop().
gumOnce (domyślnie) dostarcza jeden odczyt na start. gumContinuous śledzi pozycję do momentu zatrzymania, ograniczany przez MinIntervalMs (domyślnie 5000) i MinDistanceMeters (domyślnie 0).
EnableHighAccuracy (domyślnie True), TimeoutMs (domyślnie 10000) i MaximumAgeMs (domyślnie 0) są przekazywane do przeglądarki przy każdym żądaniu.
Prefiks dziewięciu ukrytych pól, domyślnie geo: szerokość geograficzna, długość geograficzna, dokładność, wysokość, dokładność wysokości, kierunek, prędkość, znacznik czasu oraz geo_error.
Wysyłaj każdy odczyt przez WebSocket sgc, przesyłaj go POST-em do Action albo przekieruj na RedirectURL z pozycją w ciągu zapytania. TargetSelector zapisuje lat,lng w innym elemencie strony.
geo_error zgłasza permission_denied, position_unavailable, timeout, insecure_context lub not_supported. Przy każdym odczycie wyzwalane jest zdarzenie DOM sgcGeolocation:position.
| Pomoc onlinePełna dokumentacja API i przewodnik użytkowania tego komponentu. | Otwórz | |
| Wszystkie komponenty sgcHTMLPrzejrzyj pełną matrycę funkcji 80+ komponentów. | Otwórz | |
| Pobierz bezpłatną wersję próbną30-dniowa wersja próbna zawiera projekty demonstracyjne 60.HTML. | Otwórz | |
| CennikLicencje Single, Team i Site z pełnym kodem źródłowym. | Otwórz |