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月前
|
编解码 数据可视化 前端开发
如何使用 D3.js 创建一个交互式的地图可视化?
如何使用 D3.js 创建一个交互式的地图可视化?
|
5月前
|
前端开发 JavaScript 数据处理
在JavaScript中,异步函数是指那些不会立即执行完毕,而是会在未来的某个时间点(比如某个操作完成后,或者某个事件触发后)才完成其执行的函数
【6月更文挑战第15天】JavaScript中的异步函数用于处理非同步任务,如网络请求或定时操作。它们使用回调、Promise或async/await。
52 7
|
5月前
|
JSON 前端开发 JavaScript
在JavaScript中,异步编程是一种处理非阻塞操作(如网络请求、文件读写等)的重要技术
【6月更文挑战第12天】JavaScript中的异步编程通过Promise和async/await处理非阻塞操作。Promise管理异步操作的三种状态,防止回调地狱,支持链式调用和并行处理。async/await是ES8引入的语法糖,使异步代码更像同步代码,提高可读性。两者结合使用能更高效地处理复杂异步场景。
38 3
|
3月前
|
JavaScript 前端开发 定位技术
百度地图JavaScript API v2.0创建地图
百度地图JavaScript API v2.0创建地图
68 0
|
5月前
|
JavaScript 前端开发 UED
JavaScript基础-DOM操作:查找、创建、修改
【6月更文挑战第12天】本文介绍了DOM基础,包括查找元素(getElementById、getElementsByClassName等)、创建新节点(createElement、createTextNode)和修改节点(innerText、innerHTML、setAttribute等)。强调了易错点,如ID唯一性、性能考量和安全问题,并提供了代码示例。熟练掌握DOM操作对前端开发至关重要,但应注意性能优化,适时使用框架或库。
59 2
JavaScript基础-DOM操作:查找、创建、修改
|
4月前
|
JavaScript 前端开发 索引
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
JavaScript编码之路 【JavaScript之操作数组、字符串方法汇总】(三)
41 1
|
4月前
|
存储 JavaScript 前端开发
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
js/javascript 操作字符串【全】(含常用的操作字符串的lodash)
44 1
|
5月前
|
JavaScript vr&ar 数据库
技术笔记:Js获取当前日期时间及其它操作
技术笔记:Js获取当前日期时间及其它操作
132 1
|
5月前
|
存储 前端开发 JavaScript
回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。
【6月更文挑战第27天】回调函数是JavaScript中处理异步编程的常见模式,常用于事件驱动和I/O操作。它作为参数传递给其他函数,在特定条件满足或任务完成后被调用。例如,`asyncOperation`函数接受回调函数`handleResult`,模拟异步操作后,调用`handleResult`传递结果。这样,当异步任务完成时,`handleResult`负责处理结果。
38 1
|
5月前
|
JavaScript 前端开发 安全
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作
安全开发-JS应用&原生开发&JQuery库&Ajax技术&加密编码库&断点调试&逆向分析&元素属性操作