地图(pc和移动端)

2 篇文章 0 订阅
1 篇文章 0 订阅

一、PC端


腾讯地图

1、申请key(唯一key值)
2、html中引入API库
3、在VUE页面中进行操作

创建地图实例(经纬度中心点)
创建覆盖物实例(标注[经纬度标记点],信息提示窗口...)
创建控件实例
创建服务实例等(poi检索[即搜索]...)
(参考api进行相应操作,会用到经纬度等信息)

3、使用说明:

new地图实例
new事件
new覆盖物(标注、折线等)
new控件(导航控件,比例尺控件等)
等等,具体需要的看API(都是先创建,在配置挂载地图实例)。创建实例之后api文件中实例对象有一些属性和方法可用。
总结:new一个所需要的东西,进行初始化配置(配置里面基本都要设置是要挂载在哪个个地图实例中 map:map)

4、demo

public的index.html文件中:
	// 引入腾讯地图API
	<script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=KD5BZ-MO4R4-PLNU4-XG2Q5-MBIFJ-27FT5"></script>

vue页面中:
    // 初始化地图
    init() {
      console.log(window.qq.maps)
      this.showMapVisible = true
      const that = this
      const centerData = new window.qq.maps.LatLng(that.position.lat, that.position.lng)
      // 创建地图实例(对象)
      // 参数一:地图容器
      const map = new window.qq.maps.Map(document.getElementById('mapContainer'), {
        // 地图的中心地理坐标。
        center: centerData,
        zoom: 13
      })

      const decoration = new window.qq.maps.MarkerDecoration(1, new window.qq.maps.Point(-1, -5))
      // 创建生成标注实例
      // 对标注实例进行初始化
      const marker = new window.qq.maps.Marker({
        position: centerData, // 标注点
        map: map, // 标注要添加到的具体地图对象
        decoration
      })

      // 创建信息提示窗口
      const info = new window.qq.maps.InfoWindow({
        map: map
      })
      that.markerClick(info, centerData)
      // 标记Marker点击事件
      window.qq.maps.event.addListener(marker, 'click', function() {
        that.markerClick(info, centerData)
      })
    },

    // 信息提示窗口
    markerClick(info, center) {
      // 打开信息窗口
      info.open()
      // 窗口中内容
      info.setContent(`<div style="text-align:center;white-space:nowrap;margin:10px;">${this.position.address}</div>`)
      // 放置的位置
      info.setPosition(center)
    },

二、移动端:


1、微信内置地图
2、唤醒高德地图
      wx.openLocation({
        latitude: 34.232092,
        longitude: 108.880496,
        scale: 18
      })
(移动端微信调用wx.openLocation)(h5判断android还是ios--跳转到对应的链接接口,如果没有对应App就不会唤醒,就不在当前浏览器,此时地址进入应用宝下载)
    goMap() {
      const u = navigator.userAgent
      const isAndroid = u.indexOf('Android') > -1 || u.indexOf('Linux') > -1
      const isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
      // 这个是安卓操作系统
      if (isAndroid) {
        var d = new Date()
        var t0 = d.getTime()
        // 跳转到高德地图app(唤醒高德地图)
        window.location.href = 'androidamap://viewMap?sourceApplication=卡唤唤&poiname=话费商家&lat=34.232092&lon=108.880496&dev=0'
        // 调用需要时间,所以判断是否有该APP并且调用,需要叫一个定时器判断
        setTimeout(function () {
          // 判断是否切出浏览器
          // true隐藏(已经跳转到app) false没有隐藏
          const hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden || window.document.webkitHidden
          if (typeof hidden === 'undefined' || hidden === false) {
            // 在该浏览器中打开高德地图(网页版地图)
            window.location.href = 'https://uri.amap.com/marker?position=108.880844,34.232054'
          }
        }, 2500)
      }
      // 这个是ios操作系统
      if (isIOS) {
        var b = new Date()
        var t1 = b.getTime()
        window.location.href = 'https://uri.amap.com/marker?position=108.880844,34.232054'
        // 判断是否切出浏览器
        setTimeout(function () {
          const hidden = window.document.hidden || window.document.mozHidden || window.document.msHidden || window.document.webkitHidden
          if (typeof hidden === 'undefined' || hidden === false) {
            console.log(888)

            window.location.href = 'iosamap://viewMap?sourceApplication=appname&poiname=abc&lat=34.232092&lon=108.880496&dev=0'
          }
        }, 2500)
      }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值