JavaScript如何操作实现一个地图并标记到自身当前位置(本文从创建key值开始,到实现标点结束)

简介: JavaScript如何操作实现一个地图并标记到自身当前位置(本文从创建key值开始,到实现标点结束)

JavaScript如何操作实现一个地图并标记到自身当前位置

前言

地图分为很多种,有腾讯,百度,高德等等,本篇文章使用的是高德地图的api,本文会先带领大家从如何获取 key值开始,到实现获取 自身定位结束。

一、如何获高德地图的key值

1.首先我们需要搜索高德地图开放平台并且打开:




2. 然后呢我们需要登录自己的平台账号,登录后呢,打开控制台:

3.点击管理key值,进行添加key值的操作:


二、 如何创建地图并且获取自身定位

(1)先设置地图容器的样式:

        html,
        body,
        #container {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
        }


(2)然后设置地图容器:

<div id="container"></div>


(3)再引入script,添加自己的key值:

<script src="https://webapi.amap.com/maps?v=1.4.15&key=你自己申请的key值"></script>


(4)设置JavaScript的操作代码,渲染地图:

  var map = new AMap.Map('container', {
        resizeEnable: true,
        viewMode: "3D",
        zoom: 15,
        center: [116.335183, 39.941735]
    });


(5)这样我们就会得到这样一个页面:


(6) 如果想要地图方向盘和缩放功能的话,我们可以再加上这行代码:

 AMap.plugin(["AMap.ControlBar"], function () {
        var bar = new AMap.ControlBar();
        map.addControl(bar);
    });

(7)现在得到的效果是这样的


(8)下面呢继续进行获取定位的操作:

  AMap.plugin('AMap.Geolocation', function () {
        var geolocation = new AMap.Geolocation({
            enableHighAccuracy: true, // 使用高精度定位
            timeout: 10000, // 超过10秒后停止定位
            zoomToAccuracy: true, // 定位成功后自动调整地图视野
            buttonPosition: 'RB' // 定位按钮位置,'LB'为左下角,'RB'为右下角
        });
        map.addControl(geolocation);
        geolocation.getCurrentPosition(function (status, result) {
            if (status === 'complete') {
                // 定位成功后的操作
                var lng = result.position.lng;
                var lat = result.position.lat;
                // 创建自定义图标
                var marker = new AMap.Marker({
                    position: [lng, lat],
                    icon: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png', // 自定义图标
                    offset: new AMap.Pixel(-12, -36) // 图标偏移位置
                });
                map.add(marker);
            } else {
                // 定位失败后的操作
                console.error('定位失败');
            }
        });
    });


附加以上这串代码就可以实现获取自身定位并标点了。


三、以下是完整代码

<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>ImageLayer</title>
    <meta id="viewport" name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0"/>
    <style>
        html,
        body,
        #container {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
<div id="container"></div>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=11b9b0045f8bc94b504861e860d3d359"></script>
<script>
    var map = new AMap.Map('container', {
        resizeEnable: true,
        viewMode: "3D",
        zoom: 15,
        center: [116.335183, 39.941735]
    });
    // 添加定位插件
    AMap.plugin('AMap.Geolocation', function () {
        var geolocation = new AMap.Geolocation({
            enableHighAccuracy: true, // 使用高精度定位
            timeout: 10000, // 超过10秒后停止定位
            zoomToAccuracy: true, // 定位成功后自动调整地图视野
            buttonPosition: 'RB' // 定位按钮位置,'LB'为左下角,'RB'为右下角
        });
        map.addControl(geolocation);
        geolocation.getCurrentPosition(function (status, result) {
            if (status === 'complete') {
                // 定位成功后的操作
                var lng = result.position.lng;
                var lat = result.position.lat;
                // 创建自定义图标
                var marker = new AMap.Marker({
                    position: [lng, lat],
                    icon: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png', // 自定义图标
                    offset: new AMap.Pixel(-12, -36) // 图标偏移位置
                });
                map.add(marker);
            } else {
                // 定位失败后的操作
                console.error('定位失败');
            }
        });
    });
    AMap.plugin(["AMap.ControlBar"], function () {
        var bar = new AMap.ControlBar();
        map.addControl(bar);
    });
</script>
</body>
</html>


四、效果图:

目录
相关文章
|
1月前
|
缓存 JavaScript 前端开发
【JavaScript 技术专栏】DOM 操作全攻略:从基础到进阶
【4月更文挑战第30天】本文深入讲解JavaScript与DOM交互,涵盖DOM基础、获取/修改元素、创建/删除元素、事件处理结合及性能优化。通过学习,开发者能掌握动态改变网页内容、结构和样式的技能,实现更丰富的交互体验。文中还讨论了DOM操作在实际案例、与其他前端技术结合的应用,助你提升前端开发能力。
|
10天前
|
前端开发 JavaScript 数据处理
在JavaScript中,异步函数是指那些不会立即执行完毕,而是会在未来的某个时间点(比如某个操作完成后,或者某个事件触发后)才完成其执行的函数
【6月更文挑战第15天】JavaScript中的异步函数用于处理非同步任务,如网络请求或定时操作。它们使用回调、Promise或async/await。
22 7
|
13天前
|
JSON 前端开发 JavaScript
在JavaScript中,异步编程是一种处理非阻塞操作(如网络请求、文件读写等)的重要技术
【6月更文挑战第12天】JavaScript中的异步编程通过Promise和async/await处理非阻塞操作。Promise管理异步操作的三种状态,防止回调地狱,支持链式调用和并行处理。async/await是ES8引入的语法糖,使异步代码更像同步代码,提高可读性。两者结合使用能更高效地处理复杂异步场景。
21 3
|
1月前
|
JavaScript 前端开发 UED
在 JavaScript 中,异步编程和回调函数是处理非阻塞操作(如网络请求、文件读写等)的重要工具
【5月更文挑战第10天】JavaScript中的异步编程和回调函数用于处理非阻塞操作,提高应用响应性和吞吐量。异步编程通过回调函数、Promises和async/await等方式实现,避免程序因等待操作完成而阻塞。回调函数是异步操作完成后调用的函数,常用于处理网络请求等。然而,回调函数存在嵌套问题和错误处理困难,因此出现了Promises和async/await等更优解决方案。
19 3
|
1月前
|
JavaScript 前端开发
javascript操作BOM的方法
javascript操作BOM的方法
26 0
|
13天前
|
JavaScript 前端开发 UED
JavaScript基础-DOM操作:查找、创建、修改
【6月更文挑战第12天】本文介绍了DOM基础,包括查找元素(getElementById、getElementsByClassName等)、创建新节点(createElement、createTextNode)和修改节点(innerText、innerHTML、setAttribute等)。强调了易错点,如ID唯一性、性能考量和安全问题,并提供了代码示例。熟练掌握DOM操作对前端开发至关重要,但应注意性能优化,适时使用框架或库。
JavaScript基础-DOM操作:查找、创建、修改
|
3天前
|
存储 JavaScript 前端开发
JavaScript中的数组是核心数据结构,用于存储和操作序列数据
【6月更文挑战第22天】JavaScript中的数组是核心数据结构,用于存储和操作序列数据。创建数组可以使用字面量`[]`或`new Array()`。访问元素通过索引,如`myArray[0]`,修改同样如此。常见方法包括:`push()`添加元素至末尾,`pop()`移除末尾元素,`shift()`移除首元素,`unshift()`添加到开头,`join()`连接为字符串,`slice()`提取子数组,`splice()`进行删除、替换,`indexOf()`查找元素位置,`sort()`排序数组。还有其他如`reverse()`、`concat()`等方法。
11 2
|
11天前
|
JavaScript 定位技术 API
Js地图路线规划以及点击获取经纬度
Js地图路线规划以及点击获取经纬度
|
13天前
|
JavaScript 前端开发 安全
【JavaScript 】DOM操作快速入门
【JavaScript 】DOM操作快速入门
12 2
|
19天前
|
存储 JavaScript 定位技术