فهرست سرفصل‌های HTML
خانه (HOME) مقدمه (Introduction) ویرایشگرها (Editors) پایه ها (Basic) المان ها (Elements) ویژگی ها (Attributes) سرفصل ها (Headings) پاراگراف ها (Paragraphs) استایل ها (Styles) قالب بندی متن (Formatting) نقل قول ها (Quotations) توضیحات (Comments) رنگ ها (Colors) مدل RGB (RGB) مدل HEX (HEX) مدل HSL (HSL) استفاده از CSS (CSS) لینک ها (Links) رنگ لینک ها (Link Colors) نشانه های لینک (Link Bookmarks) تصاویر (Images) نقشه تصویر (Image Map) تصویر پس زمینه (Background Images) المان Picture (The Picture Element) فاوآیکون (Favicon) عنوان صفحه (Page Title) جداول (Tables) مرزهای جدول (Table Borders) اندازه های جدول (Table Sizes) سربرگ های جدول (Table Headers) فاصله داخلی و بیرونی جدول (Padding & Spacing) ادغام سلول ها (Colspan & Rowspan) استایل دهی جدول (Table Styling) گروه ستون ها (Table Colgroup) فهرست ها (Lists) فهرست نامرتب (Unordered Lists) فهرست مرتب (Ordered Lists) سایر فهرست ها (Other Lists) بلوک ها و درون خطی ها (Block & Inline) المان div (Div) کلاس ها (Classes) شناسه ها (Id) فریم ها (Iframes) جاوااسکریپت (JavaScript) مسیر فایل ها (File Paths) بخش head (Head) چیدمان (Layout) طراحی واکنش گرا (Responsive) کدهای رایانه ای (Computercode) المان های معنایی (Semantics) راهنمای نگارش (Style Guide) نهادها (Entities) نمادها (Symbols) ایموجی ها (Emojis) کدگذاری نویسه ها (Charsets) رمزگذاری URL (URL Encode) مقایسه با XHTML (vs. XHTML) فرم ها (Forms) ویژگی های فرم (Form Attributes) المان های فرم (Form Elements) انواع ورودی (Input Types) ویژگی های ورودی (Input Attributes) بوم نقاشی (Canvas) بردارهای گرافیکی (SVG) رسانه ها (Media) ویدیو (Video) صدا (Audio) افزونه ها (Plug-ins) یوتیوب (YouTube) رابط های وب (Web APIs) مکان یابی جغرافیایی (Geolocation) کشیدن و رها کردن (Drag and Drop) ذخیره سازی وب (Web Storage) کارگران وب (Web Workers) رویدادهای ارسالی از سرور (Server-Sent Events-SSE) توضیح (<!-->) اعلان نوع سند (<!DOCTYPE>) پیوند (a) اختصار (abbr) سرنام (acronym) آدرس (address) اپلت (applet) ناحیه نقشه (area) مقاله (article) کنار نویس (aside) صوت (audio) پررنگ (b) پایه (base) فونت پایه (basefont) جداساز دوطرفه (bdi) جهت متن (bdo) بزرگ (big) بلوک نقل (blockquote) بدنه (body) خط جدید (br) دکمه (button) بوم (canvas) عنوان جدول (caption) مرکز (center) ارجاع (cite) کد (code) ستون (col) گروه ستون (colgroup) داده (data) فهرست داده (datalist) تعریف شرح (dd) حذف (del) جزئیات (details) اصطلاح (dfn) دایرکتوری (dir) بخش (div) فهرست تعاریف (dl) عنوان تعریف (dt) تأکید (em) جاسازی (embed) مجموعه فیلدها (fieldset) عنوان شکل (figcaption) شکل (figure) فونت (font) پاورقی (footer) فرم (form) فریم (frame) مجموعه فریم ها (frameset) سرفصل ها (h1–h6) سر (head) سربرگ (header) گروه عنوان (hgroup) خط افقی (hr) سند HTML (html) مورب (i) چارچوب درون صفحه ای (iframe) تصویر (img) ورودی (input) درج (ins) صفحه کلید (kbd) برچسب (label) افسانه (legend) مورد فهرست (li) پیوند منبع (link) بخش اصلی (main) نقشه تصویر (map) نشانه گذاری (mark) منو (menu) فراداده (meta) سنجش (meter) ناوبری (nav) بدون فریم (noframes) بدون اسکریپت (noscript) شیء (object) فهرست مرتب (ol) گروه گزینه ها (optgroup) گزینه (option) خروجی (output) پاراگراف (p) پارامتر (param) تصویر پاسخ گو (picture) پیش قالب (pre) پیشرفت (progress) نقل قول کوتاه (q) پرانتز روبی (rp) متن روبی (rt) روبی (ruby) خط زده (s) نمونه خروجی (samp) اسکریپت (script) جستجو (search) بخش (section) انتخاب (select) کوچک (small) منبع (source) دامنه (span) خط بطلان (strike) پررنگ معنایی (strong) سبک (style) زیرنویس (sub) خلاصه (summary) بالانویس (sup) بردار گرافیکی (svg) جدول (table) بدنه جدول (tbody) سلول جدول (td) الگو (template) ناحیه متن (textarea) پاورقی جدول (tfoot) سر ستون جدول (th) سربرگ جدول (thead) زمان (time) عنوان (title) سطر جدول (tr) زیرنویس رسانه (track) تله تایپ (tt) زیرخط دار (u) فهرست نامرتب (ul) متغیر (var) ویدیو (video) شکست خط (wbr)
HTML

HTML — مکان یابی جغرافیایی (Geolocation)

آخرین بروزرسانی: 1404/08/07

مکان یابی جغرافیایی (Geolocation)

«مکان یابی جغرافیایی (Geolocation)» یعنی گرفتن مکان کاربر با اجازه او. «API» یعنی رابط برنامه نویسی با توابع آماده. با این API، طول و عرض جغرافیایی را می گیریم. سپس در صفحه نمایش می دهیم. اما همیشه اجازه شفاف لازم است.

شروع سریع با getCurrentPosition()

تابع getCurrentPosition() مکان فعلی را می دهد. مرورگر اول اجازه می خواهد. سپس بهترین روش دستگاه را پیدا می کند. مثلاً GPS.

<script>
const x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(success, error);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function success(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
    "<br>Longitude: " + position.coords.longitude;
}

function error() {
  alert("Sorry, no position available.");
}
<\/script>

مشاهده در ادیتور

نکته: این API فقط روی بستر امن کار می کند. یعنی HTTPS.

نکته: دقت در موبایل ها معمولاً بیشتر است. چون GPS دارند.

مدیریت خطا و رد کردن اجازه

پارامتر دوم getCurrentPosition() تابع خطا است. با آن، پیام مناسب نشان بده.

<script>
function error(error) {
  switch (error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation.";
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable.";
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out.";
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred.";
      break;
  }
}
<\/script>

مشاهده در ادیتور

به روزرسانی زنده با watchPosition()

با watchPosition() حرکت کاربر را دنبال کن. هر تغییر مکان، مقدار تازه می دهد. برای توقف، clearWatch() را صدا بزن.

<script>
const x = document.getElementById("demo");

function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.watchPosition(success, error);
  } else {
    x.innerHTML = "Geolocation is not supported by this browser.";
  }
}

function success(position) {
  x.innerHTML = "Latitude: " + position.coords.latitude +
    "<br>Longitude: " + position.coords.longitude;
}

function error(error) {
  switch (error.code) {
    case error.PERMISSION_DENIED:
      x.innerHTML = "User denied the request for Geolocation.";
      break;
    case error.POSITION_UNAVAILABLE:
      x.innerHTML = "Location information is unavailable.";
      break;
    case error.TIMEOUT:
      x.innerHTML = "The request to get user location timed out.";
      break;
    case error.UNKNOWN_ERROR:
      x.innerHTML = "An unknown error occurred.";
      break;
  }
}
<\/script>

مشاهده در ادیتور

کاربردهای مهم مکان یابی جغرافیایی

با مکان یابی، اطلاعات محلی تازه بده. مکان های مهم نزدیک را نشان بده. حتی ناوبری گام به گام بساز.

پیش نیازها و پیوندها

برای مفهوم کلی API، این صفحه را ببین: رابط های وب (Web APIs). برای اجرای پس زمینه و سبک تر شدن UI، صفحه Web Workers را نیز بررسی کن.

جمع بندی سریع

  • مکان یابی جغرافیایی نیازمند اجازه کاربر است.
  • getCurrentPosition مکان فعلی را برمی گرداند.
  • watchPosition مکان را زنده به روزرسانی می کند.
  • HTTPS لازم است و دقت موبایل بیشتر است.
  • خطاها را روشن و کوتاه مدیریت کن.