位置: IT常识 - 正文

GoogleMap——谷歌地图Api的使用(google map)

编辑:rootadmin
GoogleMap——谷歌地图Api的使用

推荐整理分享GoogleMap——谷歌地图Api的使用(google map),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:googlemap.,googlemap.,google map cn,googlemap.,googlemapp,googlemaps,googlemapapp,googlemap.,内容如对您有帮助,希望把文章链接给更多的朋友!

最近公司想要在国外也使用地图功能,而我们国内使用的是高德地图,国外客户需要用谷歌地图,所以去了解了一下谷歌地图的使用,这里记录一下。

准备工作

首先你得有一个谷歌账号,然后得用一点小魔法,去谷歌地图官网申请一个API密钥,现在好像还需要绑定信用卡,有点麻烦,我就直接白嫖公司的了。

开始使用加载Maps JavaScript API内嵌方式加载<script async src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap"></script>动态加载

使用npm安装

npm install @googlemaps/js-api-loader

导入到具体的页面

import { Loader } from "@googlemaps/js-api-loader"创建地图 <div style="height: 400px" id="GMap"></div> initMap() { const loader = new Loader({ apiKey: "YOURKEY", version: "YOURVERSION", }); loader.load().then(() => { this.myMap = new google.maps.Map(document.getElementById("GMap"), { // 纬度在前,经度在后 center: { lat: -34.397, lng: 150.644 }, zoom: 8, }); }); },

这就完成了一个简单的地图创建。

然而,这种简单的地图是肯定不符合我们的需求,所以我们需要再加亿点细节。

首先,在初始化地图时,加上一些限制。

const loader = new Loader({ apiKey: "YOURKEY", version: "YOURVERSION", }); loader.load().then(() => { this.myMap = new google.maps.Map(document.getElementById("BMap-125"), { center: { lat: -34.397, lng: 150.644 }, //缩放范围 zoom: 6, minZoom: 2, maxZoom: 16, //限制拖拽范围,防止出现除地图外的灰色区域 restriction: { latLngBounds: { north: 85, south: -85, east: 180, west: -180, }, }, //禁用键盘控制 keyboardShortcuts:false, //关闭地图类型选择控件 mapTypeControl:false }); });地图限制限制缩放等级:maxZoom和minZoom分别对应最大的缩放级别和最小的缩放级别,加上对应的限制,防止地图过大或过小。(补充:缩放等级对应的地图详细。1:世界,5:大陆/洲,10:城市,15:街道,20:建筑物)。限制地图边界:加上restriction,可以限制地图可以拖拽的范围,防止拖拽地图范围过大,出现灰色区域。地图控件:可以根据自己的需求,留下哪些地图控件,还可以自定义控件。标记

为地图添加普通标记:

initMap() { // 坐标 const uluru = { lat: -25.344, lng: 131.031 }; // 创建地图 const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: uluru, }); // 创建标记 const marker = new google.maps.Marker({ position: uluru, map: map, }); //或者是 const marker = new google.maps.Marker({ position: uluru, }); marker.setMap(map);}GoogleMap——谷歌地图Api的使用(google map)

创建自定义标点

googlePositionHandle(){ //地点 let latLng = new google.maps.LatLng(-25.344,131.031 )// 创建地图 const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: latLng, }); //设置Marker自定义图标的属性,size是图标尺寸,该尺寸为显示图标的实际尺寸,origin是切图坐标,该坐标是相对于图片左上角默认为(0,0)的相对像素坐标,anchor是锚点坐标,描述经纬度点对应图标中的位置 var anchor = new google.maps.Point(0, 40) var size = new google.maps.Size(32, 32) var origin = new google.maps.Point(0, 0) var url=require('@/assets/img/p1.png') //创建图标 var icon = new google.maps.MarkerImage( url, size, origin, anchor, ); //设置自定义标记图标 let marker=new google.maps.Marker({ position: latLng, map: map, visible: true }); marker.setIcon(icon) //标记添加点击事件,点击标记将地图中心设为标记点,放大地图 marker.addListener('click', function() { map.setCenter(latLng) map.setZoom(16) }); },

这是用png图片作为自定义图标,还可以使用svg图片作为图标,但是svg作为图标我暂时没搞懂,尤其是复杂的svg图片,所以就不写svg图片作为例子了。

创建信息窗口

// 坐标 const uluru = { lat: -25.344, lng: 131.031 }; // 创建地图 const map = new google.maps.Map(document.getElementById("map"), { zoom: 4, center: uluru, }); //标记上方的信息框 var div='<div style="text-align: center">'+ '<div>'+alias+'</div>'+ '</div>' let infoWindow = new google.maps.InfoWindow({ content: div, }); // 创建标记 const marker = new google.maps.Marker({ position: uluru, map: map, }); //打开信息框 infoWindow.open({ anchor: marker, map:map, });}

信息窗口是展示在标记的上方。

获取点击处的位置

const myMap = new google.maps.Map(document.getElementById("GMap"), { center: {lat: -34.397, lng: 150.644}, zoom: 8, }); google.maps.event.addListener(myMap, 'click', function (event) { const pos = { lat: event.latLng.lat(), lng: event.latLng.lng() }; console.log(pos) });

打印的位置信息,就是鼠标点击的位置的经纬度。

创建自定义控件 谷歌默认是没有获取当前按钮的控件,如果我们有这种需求,我们可以自己自定义一个控件。

//添加定位按钮,map为地图实例 addYourLocationButton(map) { var controlDiv = document.createElement('div'); var firstChild = document.createElement('button'); firstChild.style.backgroundColor = '#fff'; firstChild.style.border = 'none'; firstChild.style.outline = 'none'; firstChild.style.width = '40px'; firstChild.style.height = '40px'; firstChild.style.borderRadius = '2px'; firstChild.style.boxShadow = '0 1px 4px rgba(0,0,0,0.3)'; firstChild.style.cursor = 'pointer'; firstChild.style.marginRight = '10px'; firstChild.style.padding = '0px'; firstChild.title = 'Your Location'; controlDiv.appendChild(firstChild); var secondChild = document.createElement('div'); secondChild.style.margin = '5px'; secondChild.style.width = '18px'; secondChild.style.height = '18px'; secondChild.style.backgroundImage = 'url()'; secondChild.style.backgroundSize = '180px 18px'; secondChild.style.backgroundPosition = '0px 0px'; secondChild.style.backgroundRepeat = 'no-repeat'; secondChild.style.margin='auto' secondChild.id = 'location_img'; firstChild.appendChild(secondChild); firstChild.addEventListener('click', function() { if(navigator.geolocation) { navigator.geolocation.getCurrentPosition(function(position) { const latlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); map.setCenter(latlng); map.setZoom(15) var myMarker = new google.maps.Marker({ animation: google.maps.Animation.DROP, position: latlng }); myMarker.setMap(map) }); } }); controlDiv.index = 1; map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(controlDiv); }

这样调用这个方法后,地图上就有了获取当前位置的图标了。

在Echarts中使用谷歌地图 Echarts中默认使用的是百度地图,如果想要使用谷歌地图,需要额外安装插件——echarts-extension-gmap,在github上可以找到。 安装

npm install echarts-extension-gmap --save

使用

import * as echarts from 'echarts';import 'echarts-extension-gmap'; this.mapEChart=this.$echarts.init(document.getElementById('gmap')) var googleOption = { // load gmap component gmap: { center: [108.39, 39.9], // center: { lng: 108.39, lat: 39.9 }, zoom: 4, disableDefaultUI:true, renderOnMoving: true, // the zIndex of echarts layer for Google Map. `2000` by default. echartsLayerZIndex: 2019, // whether to enable gesture handling. `true` by default. // since v1.4.0 roam: true, minZoom: 2, maxZoom: 16, //限制拖拽范围,防止出现除地图外的灰色区域 restriction: { latLngBounds: { north: 85, south: -85, east: 180, west: -180, }, } }, series: [ { type: 'scatter', coordinateSystem: 'gmap', data: this.mapPoints,//地图上的点 encode: { value: 2 }, label: { formatter: "{b}", position: "right", show: false }, emphasis: { label: { show: true } } }, { type: 'effectScatter', color:'#3ba308', coordinateSystem: 'gmap', data: data, label: { formatter: "{b}", position: "right", show: true }, emphasis: { label: { show: true } } } ] }; this.mapEChart.setOption(googleOption) //获取地图 var gmap = this.mapEChart.getModel().getComponent('gmap').getGoogleMap(); //创建标记 var marker = new google.maps.Marker({ position: gmap.getCenter() }); //设置 marker.setMap(gmap);

这就完成了在谷歌地图上构建散点图。

总结

总的来说,谷歌地图的api使用起来还是比较友好的,官网写的也挺详细,如果有不清楚的地方可以多看看官网的例子。本人只是一个菜鸟,如果有什么不对的地方,欢迎评论区指出,谢谢。

本文链接地址:https://www.jiuchutong.com/zhishi/298441.html 转载请保留说明!

上一篇:Go分布式爬虫笔记(五)(分布式网络爬虫)

下一篇:Vue 解决报错 You are using the runtime-only build of Vue where the template compiler is not available.(vue错误提示)

  • 微信发1的含义(微信聊天发1的意思)

    微信发1的含义(微信聊天发1的意思)

  • python命名规则(以下不符合python命名规则)

    python命名规则(以下不符合python命名规则)

  • 苹果手机屏的悬浮球怎么没有了(苹果手机屏幕上的悬浮球有什么作用?)

    苹果手机屏的悬浮球怎么没有了(苹果手机屏幕上的悬浮球有什么作用?)

  • 微信指纹支付如何设置(微信指纹支付如何更改指纹)

    微信指纹支付如何设置(微信指纹支付如何更改指纹)

  • 抖音永久封禁什么时候可以登录(抖音永久封禁什么注销)

    抖音永久封禁什么时候可以登录(抖音永久封禁什么注销)

  • 抖音屏幕点赞有什么用(抖音屏幕点赞有啥用)

    抖音屏幕点赞有什么用(抖音屏幕点赞有啥用)

  • 微信群为什么只能加200人(微信群为什么只能看到自己的信息)

    微信群为什么只能加200人(微信群为什么只能看到自己的信息)

  • 抖音0播放怎么恢复(抖音播放怎么静音)

    抖音0播放怎么恢复(抖音播放怎么静音)

  • 小米9快充突然变慢了(小米9快充突然没电了)

    小米9快充突然变慢了(小米9快充突然没电了)

  • 光学防抖手机有哪些(光学防抖手机有哪些型号)

    光学防抖手机有哪些(光学防抖手机有哪些型号)

  • 小米手机暗屏太快(小米手机暗屏太暗怎么办)

    小米手机暗屏太快(小米手机暗屏太暗怎么办)

  • 微信好友点赞不显示(微信好友点赞不见了代表什么)

    微信好友点赞不显示(微信好友点赞不见了代表什么)

  • oppo相册的私密保险箱怎么打开(oppo相册的私密图集在哪里找到)

    oppo相册的私密保险箱怎么打开(oppo相册的私密图集在哪里找到)

  • 12g内存和16g内存区别(16g和12g内存条差距大吗)

    12g内存和16g内存区别(16g和12g内存条差距大吗)

  • amd3600x配什么主板(适合amd3600x的主板)

    amd3600x配什么主板(适合amd3600x的主板)

  • 表格怎么设置空白一行(表格怎么设置空白行)

    表格怎么设置空白一行(表格怎么设置空白行)

  • 华为手机怎样关机(华为手机怎样关闭负一屏)

    华为手机怎样关机(华为手机怎样关闭负一屏)

  • 荣耀20i怎么手势分屏(荣耀20i怎么手势解锁)

    荣耀20i怎么手势分屏(荣耀20i怎么手势解锁)

  • vue怎么拍单张照片(vue的拍照功能在哪里)

    vue怎么拍单张照片(vue的拍照功能在哪里)

  • qq怎么把文件发到手机(qq怎么把文件发送到邮箱)

    qq怎么把文件发到手机(qq怎么把文件发送到邮箱)

  • ios系统占用40g怎么办(iphone系统占用90g)

    ios系统占用40g怎么办(iphone系统占用90g)

  • qq禁赞怎么解除(扣扣禁赞了怎么解除)

    qq禁赞怎么解除(扣扣禁赞了怎么解除)

  • pr怎么设置抖音视频格式(pr怎么设置抖音视频序列)

    pr怎么设置抖音视频格式(pr怎么设置抖音视频序列)

  • 魅族16多少克(魅族16p多少克)

    魅族16多少克(魅族16p多少克)

  • 设置垂直框线为无word(垂直框列表怎么增加项目)

    设置垂直框线为无word(垂直框列表怎么增加项目)

  • 管理员已阻止你运行此应用解决方法(管理员已阻止你运行此应用 win10)

    管理员已阻止你运行此应用解决方法(管理员已阻止你运行此应用 win10)

  • rftray.exe - rftray是什么进程 有什么用

    rftray.exe - rftray是什么进程 有什么用

  • 税务局开专票作废重开流程
  • 递延所得税资产和负债怎么理解
  • 固定资产的处理包括
  • 应付账款暂估款的会计分录
  • 建筑劳务公司开劳务发票税率是多少
  • 公司变更地址后需要去开户银行变更
  • 现金支出的一般程序
  • 固定资产成本包括包装费吗
  • 捆绑销售行为怎么纳税
  • 预期收益率计算器
  • 帮客人清关的费用如何做会计核算合适呢?
  • 实收资本印花税税率多少
  • 企业为什么用银行承兑汇票
  • 2018年车船税收费标准
  • 多缴纳的印花税退回来怎么做分录
  • 实时扣税3001会计科目
  • 企业购买商品
  • 如何处理走逃失的人
  • 文化事业建设费征收对象
  • 学校的房子归哪里管
  • 财务保证金怎么做分录
  • 收到退以前年度所得税
  • 注册公司有哪些好处和坏处
  • 增值税发票总金额是含税金额吗
  • 金融企业贷款利息的账务处理
  • 电脑怎么搜索文档
  • 增值税免税项目和免征增值税的区别
  • powershell.exe什么意思
  • PHP:mcrypt_enc_self_test()的用法_Mcrypt函数
  • 经营租入的固定资产是什么意思
  • 报销生育险怎么报
  • 计算机网络的基本概念
  • 国内来料加工会亏本吗
  • ps如何使用套锁工具剪裁图片
  • 逐帧flash动画
  • 如何用织梦在本地搭建网站
  • 确认预计负债的三个条件
  • 增值税发票扩版申请说明
  • 消防设备计入什么科目
  • 营改增一般纳税人简易征收的范围
  • 银行利息怎么算10万块三年多少利息
  • 库存股会计处理流程
  • 自助餐怎么核算成本
  • 公司间借款利息怎么开发票
  • 以前年度社保计提出错了怎么调整
  • 所得税弥补以前年度亏损是几年
  • 企业储蓄存款如何做账
  • 溢价发行可转换债券 利息调整在贷方吗
  • 印花税是怎么缴纳
  • ppp项目政府可以不出资
  • 财务报表中预收账款
  • 生产成本一般采用
  • 小规模纳税人购进税控收款机
  • MySQL5.7中 performance和sys schema中的监控参数解释(推荐)
  • MySql Error 1698(28000)问题的解决方法
  • ghost读取不到硬盘
  • win10预览版21301bug
  • win7不能复制文件怎么办
  • win7任务管理器怎么打开
  • xp系统开机后不停重启
  • win10预览版和正式版区别
  • ghost到一半报错
  • win7旗舰版没有睡眠设置
  • win1020h2正式版下载
  • 在linux系统中查看文件的内容命令
  • win8应用商店怎么卸载
  • windows安装mq
  • win8登录密码修改
  • Android NDK Cocos2dx 3.4 Label中文显示
  • Linux中scp命令获取远程文件的方法
  • Unity NGUI添加事件监听(转摘)
  • jquery确认取消对话框
  • 商丘银行几点上班
  • 收到发票需要代签吗
  • 南通医保2023年新政策
  • 小规模纳税人一年500万一年怎么算
  • 自然人电子税务局
  • 发票真伪查询国税官网12366
  • 供给侧改革什么样的劳动力
  • 许昌祥和小区二手房出售
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设