Geolocation
TsgcHTMLComponent_Geolocation — 브라우저 Geolocation API로 기기의 위치를 읽어 서버로 전달합니다. 요청당 한 번 또는 지속적으로, 화면에 보이는 패널 또는 숨김 패널로 동작하며, Delphi, C++ Builder, Lazarus 및 .NET에서 사용할 수 있습니다.
TsgcHTMLComponent_Geolocation — 브라우저 Geolocation API로 기기의 위치를 읽어 서버로 전달합니다. 요청당 한 번 또는 지속적으로, 화면에 보이는 패널 또는 숨김 패널로 동작하며, Delphi, C++ Builder, Lazarus 및 .NET에서 사용할 수 있습니다.
ShowUI와 UpdateMode를 선택하고 WSSend 또는 Action을 설정한 다음 HTML 속성을 읽습니다. 모든 측정값은 geo_lat, geo_lng, geo_accuracy 및 기타 geo_* 필드로 서버에 도착합니다.
TsgcHTMLComponent_Geolocation
위치 확인 패널 또는 숨김 패널 + 숨김 필드 9개 + 인라인 스크립트
Delphi, C++ Builder, Lazarus, .NET
번들로 포함할 라이브러리도, CDN에서 가져올 것도 없습니다. 위치는 브라우저 Geolocation API에서 가져옵니다. 브라우저는 보안 컨텍스트에서만 위치 정보를 제공하므로, 페이지는 HTTPS로 제공하거나 개발 중에는 localhost에서 제공하십시오.
uses
sgcHTML_Component_Geolocation;
var
oGeo: TsgcHTMLComponent_Geolocation;
begin
oGeo := TsgcHTMLComponent_Geolocation.Create(nil);
try
oGeo.GeolocationID := 'deliveryGeo';
oGeo.ShowUI := False; // 화면에 보이는 패널 없음
oGeo.UpdateMode := gumContinuous; // 중지할 때까지 계속 추적
oGeo.MinIntervalMs := 30000;
oGeo.MinDistanceMeters := 50;
oGeo.AutoStart := True;
oGeo.WSSend := True; // 모든 측정값을 WebSocket으로 전송
WebModule.Response := oGeo.HTML; // 숨김 필드 + 인라인 스크립트
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; // 숨김 필드 + 인라인 스크립트
}
__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; // 숨김 필드 + 인라인 스크립트
가장 자주 사용하게 되는 멤버.
True(기본값)는 위치 확인 버튼, 지속 모드의 중지 버튼, 위도, 경도 및 정확도를 표시하는 상태 줄, 그리고 ShowMapLink의 선택적 OpenStreetMap 링크를 렌더링합니다. False는 화면에 아무것도 렌더링하지 않으므로, 패널은 AutoStart 또는 el.sgcGeoStart()와 el.sgcGeoStop()으로 시작합니다.
gumOnce(기본값)는 시작할 때마다 측정값을 한 번 전달합니다. gumContinuous는 중지할 때까지 계속 추적하며, MinIntervalMs(기본값 5000)와 MinDistanceMeters(기본값 0)로 빈도가 제한됩니다.
EnableHighAccuracy(기본값 True), TimeoutMs(기본값 10000) 및 MaximumAgeMs(기본값 0)는 모든 요청과 함께 브라우저에 전달됩니다.
기본값이 geo인 숨김 필드 9개의 접두사입니다. 위도, 경도, 정확도, 고도, 고도 정확도, 방향, 속도, 타임스탬프 및 geo_error.
모든 측정값을 sgc WebSocket으로 전송하거나, Action으로 POST하거나, 위치를 쿼리 문자열에 담아 RedirectURL로 이동할 수 있습니다. TargetSelector는 lat,lng를 페이지의 다른 요소에 기록합니다.
geo_error는 permission_denied, position_unavailable, timeout, insecure_context 또는 not_supported를 보고합니다. 모든 측정값마다 sgcGeolocation:position DOM 이벤트가 발생합니다.