高德地图 Autocomplete + 设置marker

          

js 引入    <script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=4d81136d607c68fb6c906599c0bd1de1&plugin=AMap.Autocomplete,AMap.PlaceSearch,AMap.Geocoder"></script>

为组件,直接使用。

<template>
	<div>
		<div style="display: flex;">
			<el-select size="mini" @change="initAutocompleteCity"  filterable v-model="cityName" placeholder="选择城市">
				<el-option  v-for="data in cityLists" :key="data.city_name" :label="data.city_name" :value="data.city_name"></el-option>
			</el-select>
			<el-input style="width: 440px;margin-left: 10px;" size="mini" id="tipinput" v-model="searchWeizhi" placeholder="输入关键字"></el-input>
		</div>
		<div id="container" style="margin-top: 10px;"></div>
		<span slot="footer" class="dialog-footer" style="display: flex; justify-content: flex-end;margin-top: 20px;">
			
			<el-button type="primary" @click="sureOpanre">确 定</el-button>
		</span>
	</div>
</template>

<script>
	var geocoder,marker,lnglat,map,searchmap,Autocomplete;
	export default{
		data(){
			return{
				cityName:'',
				searchWeizhi:'',
				lishiLat:[]
			}
		},
		props:{
			cityLists:{
				type:Array
			}
		},
		mounted() {
			this.intialMap();
		},
		created() {
			
		},
		updated() {
			
		},
		methods:{
			sureOpanre(){
				this.$emit('comfirmOparete',{
					name:this.searchWeizhi,
					lng:this.lishiLat[0],
					lat:this.lishiLat[1]
				})
			},
			intialMap(){
				let that = this;
				setTimeout(()=>{
					map = new AMap.Map('container', {
						resizeEnable: true, //是否监控地图容器尺寸变化
						zoom: 11 //初始化地图层级
					});
					map.on('click',function(e){
						console.log(e)
						map.clearMap();
						lnglat = e.lnglat;
						that.lishiLat =  [lnglat.lng, lnglat.lat];
						marker = new AMap.Marker();
						map.add(marker);
						marker.setPosition(lnglat);
						that.lngatByAdress(lnglat);
						
					})
					this.initAutocompleteCity();
				},200)
			},
			lngatByAdress(lnglat){
				let that = this;
				geocoder = new AMap.Geocoder({
					city: '全国', //城市设为北京,默认:“全国”
					radius: 1000 //范围,默认:500
				});
				geocoder.getAddress(lnglat, function(status, result) {
					console.log('result',lnglat);
					if (status === 'complete'&&result.regeocode) {
						var address = result.regeocode.formattedAddress;
						that.searchWeizhi  = address;
					}else{
						
					}
				})
			},
			initAutocompleteCity(){
				// $('.amap-sug-result').remove();
				var autoOptions = {
					input: "tipinput",
					city: this.cityName
				};
				map.clearMap();
				this.searchWeizhi = '';
				var auto = new AMap.Autocomplete(autoOptions);
				AMap.event.addListener(auto, "select", this.select);
				
			},
			select(e){
				
				var lng = Number(e.poi.location.lng);
				var lat = Number(e.poi.location.lat)
				let _that = this;
				map.clearMap();
				map.setCenter([lng, lat])
				this.lishiLat =  [lng, lat];
				var  marker = new AMap.Marker({
					position : [lng, lat]
				});
				map.add(marker);
				_that.lngatByAdress(_that.lishiLat);
			},
		}
	}
</script>

<style>
	#container {
		width: 100%;
		height: 300px;
	}
	.amap-sug-result{
		z-index: 999999999999999;
	}
</style>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在jquery中引入高德地图搜索提示,并设置回车事件,可以按照以下步骤操作: 1. 在HTML文件中引入jquery和高德地图API: ``` <script src="https://code.jquery.com/jquery-3.5.1.min.js"></script> <script src="https://webapi.amap.com/maps?v=1.4.15&key=yourKey"></script> ``` 其中,`yourKey`需要替换成你自己的高德地图API key。 2. 在HTML文件中添加一个输入框和一个搜索按钮: ``` <input type="text" id="searchInput"> <button id="searchBtn">搜索</button> ``` 3. 在jQuery中使用高德地图API的`AMap.Autocomplete`类来实现搜索提示: ``` $(function() { // 初始化地图 var map = new AMap.Map('mapContainer', { zoom: 13, center: [116.39, 39.9] }); // 初始化搜索提示 var autoComplete = new AMap.Autocomplete({ input: 'searchInput' }); // 设置回车事件 $('#searchInput').on('keydown', function(e) { if (e.keyCode == 13) { // 获取输入框中的值 var keyword = $('#searchInput').val(); // 根据关键字搜索 AMap.service(['AMap.PlaceSearch'], function() { var placeSearch = new AMap.PlaceSearch({ pageSize: 5, pageIndex: 1, city: '全国' }); placeSearch.search(keyword); }); } }); // 点击搜索按钮时搜索 $('#searchBtn').on('click', function() { // 获取输入框中的值 var keyword = $('#searchInput').val(); // 根据关键字搜索 AMap.service(['AMap.PlaceSearch'], function() { var placeSearch = new AMap.PlaceSearch({ pageSize: 5, pageIndex: 1, city: '全国' }); placeSearch.search(keyword); }); }); }); ``` 在上面的代码中,我们使用`keydown`事件监听输入框中的回车键,如果按下了回车键,就会根据输入框中的值进行搜索。同时,我们也为搜索按钮添加了点击事件,以便用户点击按钮进行搜索。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值