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

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

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. mysql基础命令语法

    删除空格 update 表名 set 字段名 = replace(字段名 ,' ','') ; 临时表创建与删除 -- 创建临时表 create temporary table if not exis ...

  2. ansible离线安装k8s v1.25版本

    Kubernetes v1.25 企业级高可用集群自动部署(离线版) 注:确保所有节点系统时间一致 操作系统要求:CentOS7.x_x64 1.找一台服务器安装Ansible # yum insta ...

  3. iOS开发小结 - 通过PUT请求上传数据

    一般服务器上传数据一般都是用POST请求,这样通过AFNetworking的POST请求稳稳的,但是有一天遇到一个问题,服务器上传数据用的是PUT请求,发现用AFNetworking并不是那么好用,今 ...

  4. angular基础之单向绑定,双向绑定以及数据绑定失效的问题

    单向绑定 事件绑定: <input (keyup)="inputChange($event)" /> 属性绑定: <input [value]="inp ...

  5. 【数据结构和算法】Trie树简介及应用详解

    作者:京东物流 马瑞 1 什么是Trie树 1.1 Trie树的概念 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经 ...

  6. Git分支变基-知识点整理记录

    Git中分支的整合分为合并和变基两种. 变基是把一系列的提交按照原有次序依次应用到另一个分支上.而合并是把最终的结果合在一起. 一.变基原理 首先找到基底分支和当前分支的最近共同祖先,然后比对当前分支 ...

  7. 《Terraform 101 从入门到实践》 第二章 Providers插件管理

    <Terraform 101 从入门到实践>这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看. 不怕出身低,行行出状元. 插 ...

  8. HTML5 + canvas 汽车赛道,飙车游戏(附源码)

    好玩的游戏千千万 有趣的万里挑一 最近逛 gitHub 时 发现的一个好玩的赛车游戏 ,试玩之后感觉还是挺不错的 在这分享给那些喜欢玩赛车的车友们 效果图如下 源码分析 TweenMax.min.js ...

  9. Mybatis的常用配置-多表关联查询

    Mapper.xml常用配置 全局配置文件(数据库,事物管理,Mapper的注册.打印文件SQL.慢性加载.二级缓存) Mapper配置文件 (定义自定义接口的具体方案;SQL.数据库.数据库与POJ ...

  10. 和头条Jim博士的对话

    鉴于他在头条里有拉黑人和删除不同意见评论的习惯,在我的文里贴上自己对他微头条的一些回复吧: 没想到Jim哥威力如此巨大,竟然令司马南粉丝来信倾诉"这下好了,全国人觉得爱国的人都不是什么好人& ...