高德地图的使用

这篇具有很好参考价值的文章主要介绍了高德地图的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

JS API 结合 Vue 使用

高德地图 jsapi 下载、引入

npm add @amap/amap-jsapi-loader

import AMapLoader from '@amap/amap-jsapi-loader'

使用2.0版本的loader需要在window对象下先配置 securityJsCode  JS API 安全密钥使用

JS API 使用 script 标签同步加载增加代理服务器设置脚本,并将「您申请的安全密钥」替换为您的安全密钥;(注意您这个设置必须是在JS API 脚本加载之前进行设置,否则设置无效。)

window._AMapSecurityConfig = {
  securityJsCode: '「您申请的安全密钥」'
}

使用ts时,上面这里会显示类型错误,因此需要在类型文件中配置Window的类型
interface Window {
  _AMapSecurityConfig: {
    securityJsCode: string
  }
}

 页面地图初始化加载

自定义地图-设置地图显示样式 自定义地图-地图

AMapLoader.load({
    key: '', // 申请好的Web端开发者Key,首次调用 load 时必填
    version: '2.0' // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
})
  .then((AMap) => {
      // 地图初始化
      // Map构造函数第一个传参的map为初始化地图的容器的id,第二个传参是配置对象
      const map = new AMap.Map('map', {
        viewMode:"3D",    //是否为3D地图模式
        mapStyle: 'amap://styles/whitesmoke', //设置地图的显示样式
        zoom: 12 //设置地图的缩放级别
      })    
  })
  .catch((e) => {
    console.error(e) //加载错误提示
  })

根据后台返回的经纬度数组,自定义绘制行车路径,参考官方文档 - 路线规划

使用插件 AMap.Driving-根据起点和终点规划自动行车路径

高德地图的使用

AMapLoader.load({
  key: '', // 申请好的Web端开发者Key,首次调用 load 时必填
  version: '2.0' // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
})
  .then((AMap) => {
    // 地图初始化
    const map = new AMap.Map('map', {
      // viewMode:"3D",    //是否为3D地图模式
      mapStyle: 'amap://styles/whitesmoke', //设置地图的显示样式
      zoom: 12 //设置地图的缩放级别
    })

    // 使用插件 AMap.Driving
    AMap.plugin('AMap.Driving', function () {
      const driving = new AMap.Driving({
        map: map, // 配置参数map,意思是在那个地图中绘制行车路径
        showTraffic: false, // 关闭道路情况(设置是否显示实时路况信息)
        hideMarkers: true // 关闭沿途标记(设置隐藏路径规划的起始点图标 )
      })

      // logisticsInfo是后端返回的行车路径的数组
      if (logistics.value?.logisticsInfo && logistics.value.logisticsInfo.length >= 2) {
        const list = [...logistics.value.logisticsInfo]

        // 起点 start
        const start = list.shift()
        // 终点 end
        const end = list.pop()

        // 传入起点和终点的经纬度信息,获取对应的驾车路线规划
        driving.search(
          [start?.longitude, start?.latitude],
          [end?.longitude, end?.latitude],
          function () {
            // 未出错时,result即是对应的路线规划方案
            // 在这里绘制沿途运输位置
          }
        )
      }
    })
  })
  .catch((e) => {
    console.error(e) // 加载错误提示
  })

使用插件 AMap.Driving-自定义绘制路径,也就是把路途的途径点告知地图让其渲染路径

 参考官方文档 途经点参数 路线规划-途经点

 高德地图的使用

// 途经点 opts 是一个对象,属性waypoints就是绘制途经点参数
const opts = {
  // 途经点参数,最多支持传入16个途经点
  waypoints: list.map((item) => [item.longitude, item.latitude])
}
driving.search(
  [start?.longitude, start?.latitude],
  [end?.longitude, end?.latitude],
  opts,
  function () {
  }
)

实现业务:关闭途径标记( hideMarkers: true)并且实现自定义绘制起点-终点-和当前运输位置 ,其实就是绘制一个标记,参考官方实例 自定义图标-点标记

让当前的运输位置显示在地图的正中间并且设置缩放比例,参考官方文档 setFitView-setZoom方法

参考手册-地图 JS API

高德地图的使用

// 创建一个标记点函数
const getMarker = (point: Location, image: string, width = 25, height = 30) => {
  // 创建一个 Icon,这种方式可以设置图标的大小
  const Icon = new AMap.Icon({
    // 图标尺寸
    size: new AMap.Size(width, height),
    // 图标的取图地址
    image: image,
    // 图标所用图片大小
    imageSize: new AMap.Size(width, height)
  })
  // 将 icon 传入 marker
  const marker = new AMap.Marker({
    position: [point?.longitude, point?.latitude],
    // 将一张图片的地址设置为 icon
    icon: Icon,
    // 设置了 icon 以后,设置 icon 的偏移量,以 icon 的 [center bottom] 为原点
    offset: new AMap.Pixel(-width / 2, -height)
  })
  return marker
}
const startMarker = getMarker(start!, startImg) // 起点icon标记
const endMarker = getMarker(end!, endImg)  // 终点icon标记

// 往地图上增加标记
map.add([startMarker, endMarker])

driving.search(
  function () {
    // 绘制当前运输位置,后端返回 currentLocationInfo 就是当前的运输位置 标记
    const curr = logistics.value?.currentLocationInfo   // 当前的运输位置经纬度
    const currMarker = getMarker(curr!, carImg, 33, 20) // 当前运输位置标记
    map.add([currMarker]) // 往地图上增加当前运输位置标记

    // 2s后定位当中间进行缩放
    setTimeout(() => {
      map.setFitView([currMarker]) // 定位到当前运输的位置
      map.setZoom(10) // 一定比例的缩放
    }, 2000)
  }
)

 下面贴出完整绘制物流信息地图的代码文章来源地址https://www.toymoban.com/news/detail-503668.html

import startImg from '@/assets/start.png'
import endImg from '@/assets/end.png'
import carImg from '@/assets/car.png'

const initMap = () => {
  AMapLoader.load({
    key: '', // 申请好的Web端开发者Key,首次调用 load 时必填
    version: '2.0' // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
  })
    .then((AMap) => {
      // 地图初始化
      const map = new AMap.Map('map', {
        // viewMode:"3D",    //是否为3D地图模式
        mapStyle: 'amap://styles/whitesmoke', //设置地图的显示样式
        zoom: 12 //设置地图的缩放级别
      })
      AMap.plugin('AMap.Driving', function () {
        const driving = new AMap.Driving({
          map: map,
          //   panel: 'panel'
          showTraffic: false,
          hideMarkers: true
        })
        if (logistics.value?.logisticsInfo && logistics.value.logisticsInfo.length >= 2) {
          const list = [...logistics.value.logisticsInfo]
          //   创建标记函数
          const getMarker = (point: Location, image: string, width = 25, height = 30) => {
            // 创建一个 Icon,这种方式可以设置图标的大小
            const Icon = new AMap.Icon({
              // 图标尺寸
              size: new AMap.Size(width, height),
              // 图标的取图地址
              image: image,
              // 图标所用图片大小
              imageSize: new AMap.Size(width, height)
            })
            // 将 icon 传入 marker
            const marker = new AMap.Marker({
              position: [point?.longitude, point?.latitude],
              // 将一张图片的地址设置为 icon
              icon: Icon,
              // 设置了 icon 以后,设置 icon 的偏移量,以 icon 的 [center bottom] 为原点
              offset: new AMap.Pixel(-width / 2, -height)
            })
            return marker
          }
          // 起点 start
          const start = list.shift()
          const startMarker = getMarker(start!, startImg)
          // 终点 end
          const end = list.pop()
          const endMarker = getMarker(end!, endImg)
          map.add([startMarker, endMarker])
          // 途经点 opts
          const opts = {
            // 途经点参数,最多支持传入16个途经点
            waypoints: list.map((item) => [item.longitude, item.latitude])
          }
          driving.search(
            [start?.longitude, start?.latitude],
            [end?.longitude, end?.latitude],
            opts,
            function () {
              // 未出错时,result即是对应的路线规划方案
              // 绘制运输位置
              const curr = logistics.value?.currentLocationInfo
              const currMarker = getMarker(curr!, carImg, 33, 20)
              map.add([currMarker])
              // 2s后定位当中间进行缩放
              setTimeout(() => {
                map.setFitView([currMarker])
                map.setZoom(10)
              }, 2000)
            }
          )
        }
      })
    })
    .catch((e) => {
      console.error(e) //加载错误提示
    })
}

到了这里,关于高德地图的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue项目中使用高德地图

    最近做的项目中有个地图选择的功能,如下图所示: 所以在此记录下使用方法,望各位大神指导 我的应用 | 高德控制台 第一步: 去高德官网去创建一个属于自己的地图应用 (得到key和秘钥) 我的应用 | 高德控制台  这是添加的方式: 准备-入门-教程-地图 JS API | 高德地图

    2024年02月07日
    浏览(47)
  • uniapp小程序使用高德地图步骤

    以下是在uniapp中使用高德地图的步骤: 首先需要在高德地图官网申请一个属于自己的高德地图key。 在uniapp项目中安装高德地图插件,可以使用以下命令进行安装: 在需要使用高德地图的页面中引入高德地图插件      4.在页面中使用高德地图插件:    其中,key为你在高德

    2024年02月02日
    浏览(32)
  • uniapp App端使用高德地图

    uniapp App端使用高德地图 先去高德官网申请keyhttps://console.amap.com/dev/key/app 关于SHA1生成方法如下:https://lbs.amap.com/faq/android/map-sdk/create-project/43112 我使用的是使用 keytool(jdk自带工具)获取SHA1 PackageName包名和你需要云打包的项目Android包名一样 打开项目manifest.json文件,将所需的

    2024年02月05日
    浏览(68)
  • vue中引入并使用高德地图

    1.进入高德开放平台 2.点击: 开发支持---------地图JS AP---------JSAPI的加载 3.选择 按NPM方式使用loader 4.定义一个有宽高的div,书写以下代码: 先放效果图,左下角是可供选择的鼠标样式 1.点击示例中心---------地图属性-------下划找到 设置鼠标样式 2.点进去后有示例代码 3.这是之前

    2024年02月03日
    浏览(55)
  • 微信小程序使用高德地图获取当前定位

    1.在腾讯地图官网注册一个key(创建一个应用会自动生成一个key,详细步骤如图) 腾讯位置服务 - 立足生态,连接未来 注意点:开通webserviceAPI服务:控制台 -应用管理 - 我的应用 -添加key- 勾选WebServiceAPI - 保存 (小程序SDK需要用到webserviceAPI的部分服务,所以使用该功能的KEY需

    2024年02月06日
    浏览(57)
  • Vue3使用高德地图、搜索、地图选点、以及省市区三级联动

    1、准备工作 需要在 高德开发平台 申请自己的 key 和 密钥 这里的 Key 名称大家可以随意填写 申请完之后我们得到 key 和 密钥 vue中使用需要安装**@amap/amap-jsapi-loader --save** 官方文档 2、代码实现 首先我们需要三个文件,一个 index.vue 一个用来存放省市区的 index.js 文件 一个 ma

    2024年02月05日
    浏览(72)
  • 在vue3项目中使用新版高德地图

    高德开发平台 : 高德开放平台 | 高德地图API (amap.com) 1. 首先你要注册好账号登录 2. 获取key和密钥    自2021年12月02日升级,升级之后所申请的 key 必须配备安全密钥  jscode  一起使用         按 NPM 方式安装使用 Loader :         在页面中通过NPM 方式安装的使用 :    

    2023年04月19日
    浏览(68)
  • uniapp开发微信小程序使用高德地图

    uniapp  官方文档 地图组件控制  地图组件 高德地图key需要公司去申请,之后自己在下载高德地图微信小程序插件 下好的js文件放在项目中,之后在vue项目中的main.js文件中全局注入 页面引入并使用

    2024年02月15日
    浏览(98)
  • 使用高德地图展示点位和信息窗体展示数据及播放视频

    使用高德地图做了一个在地图展示点位,并通过点击,显示直播的功能,这个任务是为了之后大屏做准备。 这是一个能展示多个点标记,并在点击的时候弹出信息窗体,并在信息窗体中播放视频,且展示相关信息以及操作事件。 首先就是申请高德地图的key。 在html文件中,需

    2024年02月02日
    浏览(34)
  • uniapp上高德(百度)地图API的使用(APP安卓)

    前言 由于在app中没有document,window等对象,所以使用在pc端传统方法引入的方式,将会发现无法引用成功,会出现白屏现象。 目前有两种解决方式: 使用uniapp的web-view方式(百度地图) 使用renderjs来调用document等js对象(高德地图) map.vue: 中间实时显示地图上图标的个数,以及

    2023年04月10日
    浏览(89)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包