利用高德地图模拟美团搜索相似地址以及地图摄取选择类似地址

2023-11-07 01:59

本文主要是介绍利用高德地图模拟美团搜索相似地址以及地图摄取选择类似地址,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

效果图

我觉得不用废话那么多,直接上代码吧!

<!doctype html>
<html><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"><link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css" /><link rel="stylesheet" type="text/css" href="https://a.amap.com/jsapi_demos/static/demo-center/css/prety-json.css"><style>html,body{width: 100%;height: 100%;}.mapOut{position: absolute;width: 100%;height: 100%;box-sizing: border-box;-webkit-box-sizing: border-box;padding-bottom: 230px;}#container {width: 100%;height: 100%;}.info{min-width: 26rem;}#search {position: absolute;left: 0;top: 0;z-index: 1000;}#infoBottom{position: fixed;left: 0;width: 100%;bottom: 0;background-color: white;z-index: 1000000;border-radius: 10px 10px 0 0;padding:10px;box-shadow: 0 0px 2px rgba(0,0,0,0.2);-webkit-box-shadow: 0 0px 2px rgba(0,0,0,0.2);height: 250px;overflow: hidden;overflow-y: scroll;-webkit-overflow-scrolling: touch;}.infoLine{box-sizing: border-box;-webkit-box-sizing: border-box;padding: 5px 0;border-bottom: 1px dashed #dcdcdc;}.infoLine p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}	.infoLine:nth-last-child(1){border-bottom: 0px;}.mapReturn{width: 1.6rem;height: 1.6rem;border: 0.22rem solid #3c3c3c;position: absolute;left: 1.5rem;top: 1.3rem;border-bottom: 0;border-right: 0;z-index: 10000;transform: rotate(-45deg);-webkit-transform: rotate(-45deg);}</style><title>选择地址</title></head><body><div class="mapOut"><div id="container"></div></div><div class="mapReturn"></div><div class="info"><input type="text" id="search" /></div><div id="infoBottom"></div><script src="https://webapi.amap.com/maps?v=1.4.15&key=5433dcc2bc76f4bfae5b9b20179efac5&plugin=AMap.PlaceSearch"></script><script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/jquery-1.11.1.min.js"></script><script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/underscore-min.js"></script><script type="text/javascript" src="https://a.amap.com/jsapi_demos/static/demo-center/js/backbone-min.js"></script><script type="text/javascript" src='https://a.amap.com/jsapi_demos/static/demo-center/js/prety-json.js'></script><script>var startPosition = [113.26762, 23.129623];var startName = '珠江国际大厦';//标记点var marker;// 初始化地图var map = new AMap.Map("container", {resizeEnable: true,center: startPosition,zoom: 18});//添加地址插件var placeSearch;AMap.plugin('AMap.PlaceSearch', function() {placeSearch = new AMap.PlaceSearch({pageSize: 10, // 每页10条pageIndex: 1, // 获取第一页});aMapSearchNearBy(startPosition);marker = new AMap.Marker({position: new AMap.LngLat(startPosition[0], startPosition[1]),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]title: startName});map.add(marker);})// 移除已创建的 marker//map.remove(marker);document.getElementById('search').oninput = function(e) {var keywords = $(this).val();console.log(keywords);placeSearch.search(keywords, function(status, result) {console.log(result);$('#infoBottom').empty();locationList = result.poiList.pois;for(var i=0; i<locationList.length; i++){$('#infoBottom').append('<div class="infoLine" lng='+locationList[i].location.lng+' lat='+locationList[i].location.lat+'><div class="infoName"><p>名称:'+locationList[i].name+'</p></div><div class="infoAddress"><p>地址:<span>'+locationList[i].address+'</span></p></div></div>')if(i == 0){map.setCenter([locationList[i].location.lng, locationList[i].location.lat]);map.remove(marker);marker = new AMap.Marker({position: new AMap.LngLat(locationList[i].location.lng, locationList[i].location.lat),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]title: locationList[i].name});map.add(marker);}}$('#infoBottom').scrollTop(0);})};function aMapSearchNearBy(centerPoint) {// 第一个参数是关键字,这里传入的空表示不需要根据关键字过滤// 第二个参数是经纬度,数组类型// 第三个参数是半径,周边的范围// 第四个参数为回调函数placeSearch.searchNearBy('', centerPoint, 1000, function(status, result) {if(result.info === 'OK') {var locationList = result.poiList.pois; // 周边地标建筑列表console.log(locationList);$('#infoBottom').empty();for(var i=0; i<locationList.length; i++){$('#infoBottom').append('<div class="infoLine" lng='+locationList[i].location.lng+' lat='+locationList[i].location.lat+'><div class="infoName"><p>名称:'+locationList[i].name+'</p></div><div class="infoAddress"><p>地址:<span>'+locationList[i].address+'</span></p></div></div>')}$('#infoBottom').scrollTop(0);} else {$('.infoBottom').empty();console.log('获取位置信息失败!');}});}map.on('click', function(e) {var text = '您在 [ ' + e.lnglat.getLng() + ',' + e.lnglat.getLat() + ' ] 的位置双击了地图!';aMapSearchNearBy([e.lnglat.getLng(), e.lnglat.getLat()]);map.setCenter([e.lnglat.getLng(), e.lnglat.getLat()]);map.remove(marker);marker = new AMap.Marker({position: new AMap.LngLat(e.lnglat.getLng(), e.lnglat.getLat()),   // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]title: ''});map.add(marker);});//选取地址$('#infoBottom').on('click','.infoLine',function(){var lng = $(this).attr('lng');var lat = $(this).attr('lat');var address = $(this).find('.infoAddress span').text();console.log(lng,lat,address);})</script></body></html>

想做微信小程序、H5、微官网可以联系我,qq392563086

这篇关于利用高德地图模拟美团搜索相似地址以及地图摄取选择类似地址的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/360495

相关文章

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

使用Folium在Python中进行地图可视化的操作指南

《使用Folium在Python中进行地图可视化的操作指南》在数据分析和可视化领域,地图可视化是一项非常重要的技能,它能够帮助我们更直观地理解和展示地理空间数据,Folium是一个基于Python的地... 目录引言一、Folium简介与安装1. Folium简介2. 安装Folium二、基础使用1. 创建

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Python使用DeepSeek进行联网搜索功能详解

《Python使用DeepSeek进行联网搜索功能详解》Python作为一种非常流行的编程语言,结合DeepSeek这一高性能的深度学习工具包,可以方便地处理各种深度学习任务,本文将介绍一下如何使用P... 目录一、环境准备与依赖安装二、DeepSeek简介三、联网搜索与数据集准备四、实践示例:图像分类1.

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

基于Python实现多语言朗读与单词选择测验

《基于Python实现多语言朗读与单词选择测验》在数字化教育日益普及的今天,开发一款能够支持多语言朗读和单词选择测验的程序,对于语言学习者来说无疑是一个巨大的福音,下面我们就来用Python实现一个这... 目录一、项目概述二、环境准备三、实现朗读功能四、实现单词选择测验五、创建图形用户界面六、运行程序七、

前端知识点之Javascript选择输入框confirm用法

《前端知识点之Javascript选择输入框confirm用法》:本文主要介绍JavaScript中的confirm方法的基本用法、功能特点、注意事项及常见用途,文中通过代码介绍的非常详细,对大家... 目录1. 基本用法2. 功能特点①阻塞行为:confirm 对话框会阻塞脚本的执行,直到用户作出选择。②

Python如何计算两个不同类型列表的相似度

《Python如何计算两个不同类型列表的相似度》在编程中,经常需要比较两个列表的相似度,尤其是当这两个列表包含不同类型的元素时,下面小编就来讲讲如何使用Python计算两个不同类型列表的相似度吧... 目录摘要引言数字类型相似度欧几里得距离曼哈顿距离字符串类型相似度Levenshtein距离Jaccard相