vue使用谷歌地图实现地点查询

news2024/10/2 6:43:01

效果
在这里插入图片描述
在这里插入图片描述
代码
首先在index.html中引入谷歌地图资源

 <script src="https://maps.googleapis.com/maps/api/js?key='你的api密钥'&libraries=places">
  </script>

页面中

<template>
  <div class="pac-card div-style" id="pac-card">
    <div id="map" class="flex-item1"></div>

    <div id="pac-container" class="flex-item2">
      <el-input
        v-model="localValue"
        ref="autocompleteInput"
        type="text"
        placeholder="输入地址"
        @input="handleInput"
      />
      <ul
        v-if="predictions.length != 0 && localValue != ''"
        class="autocomplete-list"
      >
        <li
          style="list-style: none"
          v-for="prediction in predictions"
          :key="prediction.place_id"
          @click="selectPrediction(prediction)"
        >
          {{ prediction.description }}
        </li>
      </ul>
    </div>
  </div>
</template>

<script>
export default {
  name: "addressMap",
  data() {
    return {
      localValue: "",
      map: "",
      marker: "",
      longitude: -73.98633,
      latitude: 40.749933,
      predictions: [], // 存储搜索框提示的预测结果
    };
  },
  methods: {
    selectPrediction(prediction) {
      this.localValue = prediction.description;
      this.predictions = [];
      const that = this;
      // 创建 PlacesService 对象
      const placesService = new google.maps.places.PlacesService(map);
      // 获取地点的 Place ID
      const placeId = prediction.place_id;
      // 发起 Places API 请求
      placesService.getDetails({ placeId: placeId }, function (place, status) {
        if (status === google.maps.places.PlacesServiceStatus.OK) {
          // 获取地点的经纬度坐标
          that.latitude = place.geometry.location.lat();
          that.longitude = place.geometry.location.lng();
          that.initMap();
        } else {
          alert("无法找到该地点!");
        }
      });
    },
    handleInput() {
      const autocompleteService = new google.maps.places.AutocompleteService();
      autocompleteService.getPlacePredictions(
        { input: this.localValue },
        (predictions, status) => {
          if (status === google.maps.places.PlacesServiceStatus.OK) {
            this.predictions = predictions;
          } else {
            this.predictions = [];
          }
        }
      );
    },
    initMap() {
      const map = new google.maps.Map(document.getElementById("map"), {
        center: { lat: this.latitude, lng: this.longitude },
        zoom: 13,
        mapTypeControl: false,
      });
    },
  },
  mounted() {
    this.initMap();
  },
};
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style lang="scss">
#map {
  overflow: hidden;
  width: 300px;
  height: 400px;
  margin: 0;
}
.div-style {
  display: flex;
}
.flex-item1 {
  flex: 2;
}
.flex-item2 {
  flex: 1;
}
.autocomplete-list {
  height: 200px;
  overflow: auto;
  ul {
    li {
      margin: 10px 0;
    }
  }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/983379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenResty介绍及实现限流

1 背景描述 Nginx作为一个高性能的Web服务器和反向代理服务器&#xff0c;已经稳定运行了多年。然而&#xff0c;考虑到后续分馆流量的接入&#xff0c;会对我们的系统造成难以预估的影响&#xff0c;因此在网关层对流量进行监控并管理就显得格外重要。本次调研目标为OpenRest…

【PowerQuery】Excel的PowerQuery的连接组的导入与导出

完成我们当前的数据连接之后,如果使用数据的用户不在本机该怎么办呢?这时候通常有两种方式来实现对于需要的数据访问。 将文件本身提供给最终用户如果数据文件本身不涉及到敏感数据连接定义,或者需要数据脱敏操作则比较适合使用这种方法提供给最终用户。但是如果使用的数据有…

IT运维监控系统和网络运维一样吗

IT运维监控系统和网络运维不是一样的。IT运维监控系统是一系列IT管理产品的统称&#xff0c;它所包含的产品功能强大、易于使用、解决方案齐全&#xff0c;可一站式满足用户的各种IT管理需求。而网络运维是指对网络设备进行监控、维护和管理&#xff0c;包括硬件故障的排除、软…

idea VCS配置多个远程仓库

Idea VCS配置多个远程仓库 首先要有连个远程仓库地址 idea 添加数据源 查看推送记录 添加数据源 ok之后填写账号密码 推送本地项目 选择不同远程地址 push 查看不同远程地址的 不同分支的 推送记录 不期而遇的温柔&#xff1a; 应用开源架构进行项目开发&#xff0c;特别是那…

android 注解详解

1&#xff0c;注解的概念 注解现在广泛的应用于android的各个开源框架中&#xff0c;不理解注解&#xff0c;我们就无法更好的提升我们的架构能力。那么什么是注解呢&#xff1f;注解&#xff08;Annotation&#xff09;&#xff0c;是JDK5.0 引入的一种注释机制。 注解是元数…

印刷企业如何利用MES管理系统改善生产计划

随着科技的发展&#xff0c;印刷MES管理系统正在逐渐改变印刷企业的生产管理模式。印刷MES管理系统是一种用于监控、协调、优化生产流程的系统&#xff0c;它能够提供实时、准确的数据&#xff0c;帮助企业管理者做出更好的生产决策。本文将探讨印刷企业如何利用MES管理系统改善…

SQL sever中表管理

目录 一、创建表&#xff1a; 1.1语法格式&#xff1a; 1.2示例&#xff1a; 二、修改表&#xff1a; 2.1语法格式&#xff1a; 2.2示例&#xff1a; 三、删除表&#xff1a; 3.1语法格式&#xff1a; 3.2示例&#xff1a; 四、查询表&#xff1a; 4.1语法格式&…

C++新特性:智能指针

一 、为什么需要智能指针 智能指针主要解决以下问题&#xff1a; 1&#xff09;内存泄漏&#xff1a;内存手动释放&#xff0c;使用智能指针可以自动释放 2&#xff09;共享所有权指针的传播和释放&#xff0c;比如多线程使用同一个对象时析构问题&#xff0c;例如同样的数据…

台灯应该买什么样的才能护眼?推荐五款安全健康的护眼台灯

台灯主要还是以护眼台灯为主&#xff0c;因为不仅色谱丰富&#xff0c;贴近自然色的全光谱色彩&#xff0c;通常显色指数都能达到Ra95以上&#xff0c;显色能力特别强&#xff0c;而且还具有其他防辐射危害、提高光线舒适度的特性&#xff0c;比如侧发光技术、漫反射技术等大大…

社科院杜兰金融硕士不出国门获国家顶尖金融管理硕士学位及教育部留服中心学历学位认证

社科院杜兰金融硕士不出国门获国家顶尖金融管理硕士学位及教育部留服中心学历学位认证 中国社科院与美国杜兰大学金融管理硕士从默默无闻到人尽皆知&#xff0c;已在中外合作办学硕士领域走出了一条难以被模仿、无法被替代的特质。中国社会科学院与杜兰大学充分代表了中美两国…

JavaSE(一)--Java语法

&#xff01;&#xff01;&#xff01;本文适合有c和c基础的&#xff0c;通过比较c和java的不同&#xff0c;快速入门java。&#xff01;&#xff01;&#xff01; 这篇文章主要是介绍和c不同的地方&#xff0c;没说的知识点按照c写就行了。 零.整体的结构 Java是面向对象的程…

Python 套接字编程完整指南

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 连接设备以交换信息是网络的全部意义所在。套接字是有效网络通信的重要组成部分&#xff0c;因为它们是用于通过本地或全球网络以及同一台计算机上的不同进程在设备之间传输消息的基本概念。它们提供了一个低级接口&am…

Java程序员学vue3最好的方式就是搭建后台管理模板

前言 作为Java程序员&#xff0c;vue3还是有必要学的&#xff0c;毕竟是国内最受欢迎的前端JS框架&#xff0c;你现在接手的项目&#xff0c;前端部分几乎都会和vue沾边&#xff0c;尤其是中小企业。 vue3作为新的大版本&#xff0c;相较于vue2改动还是很多的&#xff0c;目前企…

Kali Linux渗透测试技术介绍【文末送书】

文章目录 写在前面一、什么是Kali Linux二、渗透测试基础概述和方法论三、好书推荐1. 书籍简介2. 读者对象3. 随书资源 写作末尾 写在前面 对于企业网络安全建设工作的质量保障&#xff0c;业界普遍遵循PDCA&#xff08;计划&#xff08;Plan&#xff09;、实施&#xff08;Do…

基于Python开发的玛丽大冒险小游戏(源码+可执行程序exe文件+程序配置说明书+程序使用说明书)

一、项目简介 本项目是一套基于Python开发的玛丽冒险小游戏程序&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Python学习者。 包含&#xff1a;项目源码、项目文档等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xf…

【PCL-11】提取平面上层的目标物,剔除平面下层目标物

因项目需求,需提取平面上的物体,不提取平面下的物体,尝试采用超体聚类+LCCP分割的方式,但由于上层点云模型一侧有空洞,导致分割效果不理想。 这里采用pcl::ExtractPolygonalPrismData类,实现平面上物体的提取。 pcl::ExtractPolygonalPrismData类是通过设定处于同一平面模…

对于html和css初学者,你有什么值得推荐的简单的网页适合练习?

前言 html和css方面个人认为主要是在于css的学习&#xff0c;变化最多的也在于css&#xff0c;下面主要是介绍一些css相关的练习网站及一些项目&#xff0c;希望对你有帮助~ 网站推荐 1、CODEPEN 代码与所展示的页面相互对应&#xff0c;你可以在上面找到其他人已经写好的de…

胖小酱之不龟手之药寓言故事

宋国有个人善于炼制一种预防皮肤冻裂的药膏。在冬天如果把这种药膏涂在手上的话就能够防止手冻裂&#xff0c;所以他家祖祖辈辈就靠冬天的时候&#xff0c;在河边把这些药膏卖给洗衣服的人们来为生。 有个外地人听说他们家善于炼制这种药膏&#xff0c;便寻上门来&#xff0c;情…

同旺科技USB to I2C 适配器烧写 Arduino 模块

所需设备&#xff1a; 内附链接 1、同旺科技USB to I2C 适配器 2、Arduino 模块 硬件连接&#xff1a; 用同旺科技USB to I2C 适配器连接芯片的TX、RX、GND; 打开Arduino IDE编辑工具&#xff0c; 点击“上传”按钮&#xff0c;完成程序的编译和烧录&#xff1b;

RabbtiMQ的安装与在Springboot中的使用!!!

一、安装Erlang与Rabbitmq 安装教程本教程是在centos8下试验的&#xff0c;其实linux系统的都差不多RabbitMQ官方&#xff1a;Messaging that just works — RabbitMQRabbitMQ是开源AMQP实现&#xff0c;服务器端用Erlang语言编写&#xff0c;Python、Ruby、 NET、Java、JMS、c…