当前位置:首页 > JavaScript

js 实现定位

2026-03-02 08:06:02JavaScript

使用 Geolocation API 获取当前位置

浏览器原生提供的 navigator.geolocation 接口可直接获取用户地理位置。需用户授权后生效:

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(
    (position) => {
      const { latitude, longitude } = position.coords;
      console.log(`纬度: ${latitude}, 经度: ${longitude}`);
    },
    (error) => {
      console.error(`定位错误: ${error.message}`);
    }
  );
} else {
  console.error("浏览器不支持地理定位");
}

通过 IP 地址粗略定位

当用户拒绝共享精确位置时,可通过第三方 IP 定位服务获取大致位置。例如使用 ipapi.co

fetch('https://ipapi.co/json/')
  .then(response => response.json())
  .then(data => {
    console.log(`国家: ${data.country_name}, 城市: ${data.city}`);
  });

高德/百度地图 SDK 集成

国内项目建议使用地图厂商的 SDK 实现精确定位:

// 高德地图示例
AMap.plugin('AMap.Geolocation', () => {
  const geolocation = new AMap.Geolocation();
  geolocation.getCurrentPosition((status, result) => {
    if (status === 'complete') {
      console.log(result.position);
    } else {
      console.error(result.message);
    }
  });
});

监听位置变化

持续跟踪用户移动需使用 watchPosition,适用于导航类应用:

js 实现定位

const watchId = navigator.geolocation.watchPosition(
  (position) => {
    console.log(position.coords.speed); // 获取移动速度
  },
  null,
  { enableHighAccuracy: true }
);

// 停止监听
// navigator.geolocation.clearWatch(watchId);

注意事项

  • HTTPS 协议下 Geolocation API 才能正常工作
  • 移动端定位精度通常高于桌面端
  • 部分浏览器会隐藏精确坐标(如 iOS Safari 默认模糊定位)
  • 国内地图 SDK 需申请对应的开发者密钥

标签: js
分享给朋友:

相关文章

js实现计算器

js实现计算器

实现基础计算器功能 使用JavaScript创建一个基础计算器需要处理数字输入、运算符逻辑和结果显示。以下是一个简单的实现示例: let currentInput = '0'; let previo…

js实现选项卡

js实现选项卡

实现选项卡的基本思路 选项卡通常由一组标签和对应的内容面板组成。点击标签时,显示对应的内容面板,隐藏其他面板。实现这一效果需要结合HTML结构、CSS样式和JavaScript交互逻辑。 HTML结…

js 实现vue

js 实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,可以通过数据绑定、响应式系统和虚拟 DOM 来实现。以下是实现 Vue.js 核心功能的简化版本。 数据响应式系…

js jquery

js jquery

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它兼容多种浏览器,提供易于使用的 API,使开发者能够…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…

js图片轮播的实现

js图片轮播的实现

基础图片轮播实现 使用HTML、CSS和JavaScript实现一个简单的图片轮播效果。HTML部分定义轮播容器和图片,CSS负责样式和过渡效果,JavaScript处理逻辑。 <div cl…