小哥我最近使用谷歌地图做了一个项目,于是乎各种坑就扑面而来,未免下次接着踩坑特留下自己的爬坑记录。

首先我是没用过谷歌地图也不知道靠谱不靠谱,于是乎傻傻的入坑了,

1.首先你要是没有vpn(或者fq工具)那可能就寸步难行,赶快申请一个吧,用坚果或者蓝*都可以(如果没有,地图压根就不显示)

2.调用谷歌地图逆编码接口(你会发现你直接放在浏览器上打开,数据显示都挺好,可是自己用接口怎么调用都不行,恭喜你踩了第二个坑)如下:

谷歌官方API: https://maps.google.com/maps/api/geocode/json?address=New York&sensor=true_or_false&key=谷歌的key(浏览器直接打开没毛病啊,但是接口你怎么都掉不通,不信你试试)

国内API:https://ditu.google.cn/maps/api/geocode/json?address=New York&key=谷歌的key;(小伙子,你没看错这个接口让后台直接调用,然后把数据返还给你就行,我的用的是php,代码图片给你放出来,仅供参考,如需php代码可联系我,算了还是别联系我了,我代码也放下边吧)

如果(后台兄弟不配合,那兄弟晚上出去吃个烧烤也许就解决了,一顿不行来两顿),如果还不行,小伙子我也帮不了你了。。。。。

网络异常取消重新上传

php代码如下:

$ipAll = $this->input->get('ipAll');

//        $result ="";

//        $url = 'http://api.map.baidu.com/geocoding/v3/?address='.$ipAll.'&output=json&ak=X7UHQqYy3WobTXHk3Mw3oN96ahHcQuuG&callback=showLocation';

//        $abc=  file_get_contents($url);

$prepAddr = str_replace(' ','+',$ipAll);

$url = 'https://ditu.google.cn/maps/api/geocode/json?address='.$prepAddr.'&key=AIzaSyB9W2V3_GT8_tKfO-PA6kT2_eeW35yUgv8';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$output = curl_exec($ch);

curl_close($ch);

return $this->json($output, $this::SUCCESS, $message = $this->lang->line('text_resp_success'));

上面扯淡完了,下面就到了前端的了,这里呢我想说没有还是需要蓝灯和坚果的支援,主要是访问的时候,

1.生成vue文件就不说了,同时需要安装谷歌地图使用vue2-google-maps

vue2-google-maps 官网地址(https://www.npmjs.com/package/vue2-google-maps

npm install vue2-google-maps

然后在min.js中引入

import Vue from 'vue'

import * as VueGoogleMaps from 'vue2-google-maps'

Vue.use(VueGoogleMaps, {

load: {

key: 'YOUR_API_TOKEN',

libraries: 'places', // This is required if you use the Autocomplete plugin

// OR: libraries: 'places,drawing'

// OR: libraries: 'places,drawing,visualization'

// (as you require)

//// If you want to set the version, you can do so:

// v: '3.26',

},

//// If you intend to programmatically custom event listener code

//// (e.g. `this.$refs.gmap.$on('zoom_changed', someFunc)`)

//// instead of going through Vue templates (e.g. `<GmapMap @zoom_changed="someFunc">`)

//// you might need to turn this on.

// autobindAllEvents: false,

//// If you want to manually install components, e.g.

//// import {GmapMarker} from 'vue2-google-maps/src/components/marker'

//// Vue.component('GmapMarker', GmapMarker)

//// then disable the following:

// installComponents: true,

})

下面就是地图的代码了,别着急(如下完整代码,我想你可能想偷懒于是乎我git上给你留了一份,但是需要你在min.js中放入自己申请的谷歌地图的key地址如下:)

<template>

<div>

<gmap-map

:center="centers"

:zoom="11"

map-type-id="terrain"

style="width: 100%; height: 340px"

>

<gmap-marker

@dragend="updateMaker"

:key="index"

v-for="(m, index) in markers"

:position="m.position"

:clickable="true"

:draggable="true"

@click="centers=m.position"

></gmap-marker>

<!-- @click="centers=m.position" -->

</gmap-map>

</div>

</template>

<script>

export default {

data() {

return {

centers: {lat: 39.90419989999999,lng: 116.4073963},

markers: [{

position: {lat: 39.90419989999999,lng: 116.4073963}

}],

place: null,

}

},

description: 'Autocomplete Example (#164)',

mounted() {

},

methods: {

setPlace(place) {

this.place = place

},

setDescription(description) {

this.description = description;

},

usePlace(place) {

if (this.place) {

var newPostion = {

lat: this.place.geometry.location.lat(),

lng: this.place.geometry.location.lng(),

};

this.center = newPostion;

this.markers[0].position =  newPostion;

this.place = null;

}

},

updateMaker: function(event) {

console.log('updateMaker, ', event.latLng.lat());

this.markers[0].position = {

lat: event.latLng.lat(),

lng: event.latLng.lng(),

}

},

}

}

</script>

国内想要使用谷歌地图,需要将经纬度反向编码,在通过后台返回

国内,如下

https://ditu.google.cn/maps/api/geocode/json?address=%E5%8C%97%E4%BA%AC%E5%A4%A9%E5%AE%89%E9%97%A8&key=AIzaSyB9W2V3_GT8_tKfO-PA6kT2_eeW35yUgv8

国外如下(需要fq或者开vpn才可以访问)

https://maps.googleapis.com/maps/api/geocode/json?address=北京天安门&key=AIzaSyB9W2V3_GT8_tKfO-PA6kT2_eeW35yUgv8

是例子

https://blog.csdn.net/cc_1209/article/details/89416936

vue中vue2-google-maps使用谷歌地图的基础操作的更多相关文章

  1. Google Map Api 谷歌地图接口整理

    一:基本知识: 1. 使用谷歌地图 API 的第一步就是要注册一个 API 密钥,需要注重一下两点: 1.假如使用 API 的页面还没有发布,只是在本地调试,可以不用密钥,随便用个字符串代替就可以了. ...

  2. Google Maps API显示地图的小示例

    来源:http://www.ido321.com/1089.html 效果(新版Firefox中测试): 代码: <!DOCTYPE> <html> <head> ...

  3. Google Maps瓦片(tile)地图文件下载(1-11层级)

    整理硬盘时,发现一份去年下载的谷歌地图瓦片文件,整理并分享给大家. 地图来源:Google Maps(应该是国内谷歌地图) 采集时间:2017年6月 采集范围:0-6层级世界范围:7-11层级中国范围 ...

  4. 利用 Google API 调用谷歌地图 演示1

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. Android Google Maps 监听地图缩放

    接上篇.http://www.cnblogs.com/maomishen/p/3556297.html 由于公司项目要求,需要对google map监听地图的缩放(zoom)来进行一些操作. 但是在网 ...

  6. how to add borders for a google map marker 谷歌地图 自己定义图钉

    If you are not satisfied with default Google map Marker (Default google marker can only be a icon, i ...

  7. vue中使用echarts来绘制中国地图,NuxtJS制作疫情地图,内有详细注释,我就懒得解释了,vue cli制作疫情地图 代码略有不同哦~~~

    我的代码自我感觉----注释一向十分详细,就不用过多解释都是什么了~~ 因为最近疫情期间在家实在是没事干,想找点事,就练手了个小demo 首先上 NuxtJs版本代码,这里面 export defau ...

  8. Android系统Google Maps开发实例浅析

    Google Map(谷歌地图)是Google公司提供的电子地图服务.包括了三种视图:矢量地图.卫星图片.地形地图.对于Android系统来说,可以利用Google提供的地图服务来开发自己的一些应用. ...

  9. Google Maps API Web Services

    原文:Google Maps API Web Services 摘自:https://developers.google.com/maps/documentation/webservices/ Goo ...

  10. Google Maps API v2密钥申请

    1. 进入到Google APIs Console页面 https://code.google.com/apis/console/ 点击左边导航栏的Seivices进入 在All services 的 ...

随机推荐

  1. 万字干货! 使用docker部署jenkins和gitlab

    阅读本文, 需要有基础的Git, Linux, Docker, Java, Maven, shell知识, 并最少有一台内存16G以上并已经安装好了Docker的机器. 1. 概述 2. 容器互联 3 ...

  2. [Unity]Unity更改黑色主题(个人版)

    前言 首先需要一款软件:Winhex,由于现在已经是2018年,大部分百度的软件都已经失效或者出现一堆bug,我费了九牛二虎之力才找到这个可用的,下面是下载地址: 链接:https://pan.bai ...

  3. Kafka初学习

    Kafka初学习   摘要:在之前的消息队列学习中,我已经了解了消息队列的基本概念以及基本用法,同时也了解到了市面上的几款消息队列中间件,其中我了解到了卡夫卡这款消息队列中间件是一款最为快速的消息队列 ...

  4. 02-Tcl输出、赋值与替换

    2 Tcl输出.赋值与替换 2.1 puts Tcl的输出命令是puts,将字符串标准输出channelled.语法中两个问号之间的参数为可选参数. # 例1 puts hello # 输出 hell ...

  5. (17)go-micro微服务Prometheus监控

    目录 一 Prometheus监控介绍 1.微服务监控系统promethues介绍 2.微服务监控系统promethues工作流程 二 Prometheus监控重要组件和重要概念 1.微服务监控系统p ...

  6. 【Linux技术专题系列】「必备基础知识」一起探索和实践sftp配置之密钥方式登录

    FTP服务-vsftp协议实现 我们常用的是FTP协议,主要是通过VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来, ...

  7. nodejs 升级后, vue+webpack 项目 node-sass 报错的解决方法

    1.npm i node-sass -D 在错误提示里有给出了方案,重新构建 node-sass,命令如下: npm rebuild node-sass --force 如果执行完成后不报错,就可以了 ...

  8. IO多路复用完全解析

    上一篇文章以近乎啰嗦的方式详细描述了BIO与非阻塞IO的各种细节.如果各位还没有读过这篇文章,强烈建议先阅读一下,然后再来看本篇,因为逻辑关系是层层递进的. 1. 多路复用的诞生 非阻塞IO使用一个线 ...

  9. Java入门与进阶P-4.5+P-4.6

    逻辑类型 关系运算的结果是要给逻辑值,true或false.这个值可以保存在一个对应的逻辑类型变量中,这样的变量类型是boolean 布尔是为了纪念George Boole对逻辑计算得到贡献 bool ...

  10. 【HMS Core】使用机器学习服务和搜索服务识别植物

    ​1.介绍 总览 机器学习服务(ML Kit)为开发者提供简单易用.服务多样.技术领先的机器学习能力,助力开发者更快更好地开发各类AI应用.同时,搜索服务(Search Kit)通过端侧SDK和云侧A ...