首页 > 其他分享 >前端Vue基于腾讯地图Api实现的选择位置组件 返回地址名称详细地址经纬度信息

前端Vue基于腾讯地图Api实现的选择位置组件 返回地址名称详细地址经纬度信息

时间:2023-07-02 09:22:05浏览次数:54  
标签:loc Vue 位置 信息 地址 Api uni margin

前端Vue基于腾讯地图Api实现的选择位置组件 返回地址名称详细地址经纬度信息, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=13310

效果图如下:

使用方法


<!-- leftTitle:左边标题 name:输入框名字 value:输入框选择值  placeholder:占位符 @click:点击事件-->

<cc-locPicker leftTitle="收获地点" name="location" :value="mapSelData.poiname" placeholder="请选择位置"

@click="chooseAddress"></cc-locPicker>

<!-- 跳转腾讯云地图Api 页面实现 -->

<template>

<view class="map">

<!-- 腾讯地图Api  key:腾讯地图key -->

<web-view

src="https://apis.map.qq.com/tools/locpicker?search=1&type=1&key=SFABZ-WANWW-FISRY-3IGTF-HV7RE-YSFTI&referer=myapp"></web-view>

</view>

</template>

<script>

// 引入设置地址存储工具

import {

setlocation

} from './utils.js'

// #ifdef H5

window.addEventListener('message', event => {

// 接收位置信息,用户选择确认位置点后选点组件会触发该事件,回传用户的位置信息

var loc = event.data;

if (loc && loc.module == 'locationPicker') {

//防止其他应用也会向该页面post信息,需判断module是否为'locationPicker'

let location = {

poiaddress: loc.poiaddress,

poiname: loc.poiname,

latlng: loc.latlng

}

// 设置存储地址信息

setlocation(location)

uni.navigateBack();

}

}, false);

// #endif

</script>

<style></style>

HTML代码实现部分


<template>

<view class="content">

<form @submit="formSubmit" @reset="formReset">

<!-- leftTitle:左边标题 name:输入框名字 value:输入框选择值  placeholder:占位符 @click:点击事件-->

<cc-locPicker leftTitle="收获地点" name="location" :value="mapSelData.poiname" placeholder="请选择位置"

@click="chooseAddress"></cc-locPicker>

<ccInputView leftTitle="详细地址" name="address" :value="mapSelData.poiaddress" placeholder="请输入详细地址">

</ccInputView>

<ccInputView leftTitle="经度信息" name="lng" :value="mapSelData.latlng.lng" placeholder="请输入精度信息">

</ccInputView>

<ccInputView leftTitle="纬度信息" name="lat" :value="mapSelData.latlng.lat" placeholder="请输入纬度信息">

</ccInputView>

<view class="uni-btn-v">

<button class="botBtn" type="primary" form-type="submit">下一步</button>

<view class="tipText"> 注意事项: 请确保您填写的收获位置准确 </view>

</view>

</form>

</view>

</template>

<script>

import ccInputView from '../../components/ccInputView.vue'

// 获取地址工具

import {

getlocation

} from './utils.js'

export default {

components: {

ccInputView

},

data() {

return {

mapSelData: {

"latlng": {}

},

}

},

/**

* 生命周期函数--监听页面显示

*/

onShow: function() {

// #ifdef H5

let locations = getlocation() //获取位置信息

if (locations) {

this.mapSelData = locations

uni.clearStorageSync();

}

// #endif

},

methods: {

formSubmit: function(e) {

console.log('form发生了submit事件,携带数据为:' + JSON.stringify(e));

var formdata = e.detail.value;

uni.showModal({

title: '温馨提示',

content: 'formsubmit事件携带数据为:' + JSON.stringify(e.detail.value)

})

},

// 选择地址

chooseAddress(e) {

let myThis = this;

uni.navigateTo({

url: './h5map'

})

},

}

}

</script>

<style>

.content {

display: flex;

flex-direction: column;

}

.uni-btn-v {

width: 100%;

height: auto;

}

.botBtn {

width: 90%;

margin-top: 36px;

}

.tipText {

width: 100%;

margin-left: 0px;

text-align: center;

color: #666666;

margin-top: 36px;

margin-bottom: 36px;

font-size: 28rpx;

}

</style>

标签:loc,Vue,位置,信息,地址,Api,uni,margin
From: https://www.cnblogs.com/ccVue/p/17520400.html

相关文章

  • vue 学习
    1.vue基础2.vue-cli3.vue-router4.element-ui5.vue3vue是什么?是一套用于构建用户界面的渐进式(vue可以自底向上的逐层的应用简答应用只需要一个轻量小巧的核心库复杂应用可以引入各式各样的vue插件)的javascript的框架。尤雨溪开发的。vue特点1.组件化模式,提高......
  • BAPI-创建采购申请PR
    *&---------------------------------------------------------------------**&ReportZBAPI1*&*&---------------------------------------------------------------------**&*&*&----------------------------------------------------......
  • Eplan API -初始化
    EplanAPI-初始化Eplan支持的开发方式一共有3种脚本dll文件形式exe离线程式形式虽然eplan二次开发也支持vb语言,但这里只讨论c#脚本(script)Eplan脚本支持的功能有限,有限的原因在于其支持的程序集有限c#中的System;System.XML;System.Drawing;System.Windows.FormsEp......
  • Vue:组件拖拽
    vue-drag-resize组件拖拽库vue-drag-resize支持拖拽和缩放两个大动作,轻量级,无依赖,功能扎实,适合需要缩放的应用场景。无依赖,轻量级操作可联动支持触摸,对移动端友好元素可定义拖拽及缩放可限制拖拽的最大或最小值可限制拖动的方向按照文档安装并引入之后,报错:Couldnotfi......
  • Vue:$parent
    什么是$parent在Vue.js中,this.$parent是组件实例的一个属性,用于访问当前组件的直接父组件实例。它提供了一种在子组件中与父组件进行通信和交互的方式。当一个组件被创建时,Vue.js会在内部为该组件创建一个组件实例,并建立组件之间的父子关系。每个组件实例都具有$parent属......
  • Vue封装组件并发布到npm仓库
    前言使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使用,甚至我们可以直接从npm仓库下载别人封装好的组件来进行使用,比如iview、element-ui这一类的组件库。但是每个公司的业务场景可能不同,开发人员还是得必须封装自己得组件,如果换了一个......
  • JS中数组的22种常用API
    一、引言前端开发中,数组是一种常见且重要的数据结构。数组提供了许多便捷方便的方法来操作和处理其中的数据。本文将简单介绍前端开发中数组的常用API。二、22种常用方法2.1、push()和pop()push()方法用于向数组末尾增加一个元素,并返回数组最新的长度。constfruits=['......
  • 多端全栈项目实战:大型商业级代驾业务全流程落地SpringCloudAlibaba+Mysql+Redis+Docke
    多端全栈项目实战:大型商业级代驾业务全流程落地SpringCloudAlibaba+Mysql+Redis+Docker+Uniapp+Vue3随着移动互联网的快速发展和智能手机的普及,代驾服务成为了一个日益火热的行业。在这个行业中,如何构建一个具备商业级可靠性和扩展性的代驾业务系统成为了关键问题。本文将介绍一......
  • 绝无仅有的SpringBoot+Vue前后端分离项目《盈利宝》
    ​每天都在制造矛盾并解决矛盾的路上程序员的主要矛盾不是书和资料多不多的矛盾而是学着学着发现知识又更新了时间就像一台永不停歇的永动机向前不停地运作年初的flag渐行渐远管他前浪,还是后浪?能浪的浪,才是好浪!今天带你解锁 Springboot+Vue项目花了很长时间从头到尾......
  • vue中router-link路由携带参数跳转
    在对应的路由模块儿中path:'courseList/:id?'router-link中书写方法如下<templateslot-scope="scope"><router-link:to="{path:'/course/courseList/'+scope.row.id}">跳转按钮</router-link></el-ta......