分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

JS高德地图应用 ---- 鼠标点击加入标记 & POI搜索

发布时间:2023-09-06 02:08责任编辑:熊小新关键词:暂无标签

代码如下 (填入Key值) :

<!DOCTYPE html><html><head> ???<meta charset="utf-8"> ???<title>高德地图</title> ???<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/> ???<script type="text/javascript" ???????????src="http://webapi.amap.com/maps?v=1.4.8&key=申请的key值&plugin=AMap.Autocomplete,AMap.PlaceSearch"></script> ???<script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script> ???<script type="text/javascript"> ???????window.onload = function () { ???????????//定义初始经纬度 ???????????var mylgt = "120.185954"; ???????????var mylat = "30.11235"; ???????????//地图加载 ???????????var map = new AMap.Map("container", { ???????????????zoom: 15, ???//地图缩放级别 ???????????????resizeEnable: true, ???????????????center: [mylgt, mylat] ???????????}); ???????????//定义一个标记 ???????????var marker = new AMap.Marker({ ???????????????icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png", ???????????????position: [mylgt, mylat] ???????????}); ???????????//添加标记 ???????????marker.setMap(map); ???????????//为地图注册click事件获取鼠标点击出的经纬度坐标 ???????????var clickEventListener = map.on(‘click‘, function (e) { ???????????????document.getElementById("lnglat").value = e.lnglat.getLng() + ‘,‘ + e.lnglat.getLat(); ???????????????//清空标记 ???????????????if (marker) { ???????????????????marker.setMap(null); ???????????????????marker = null; ???????????????} ???????????????//重设标记 ???????????????marker = new AMap.Marker({ ???????????????????icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png", ???????????????????position: [e.lnglat.getLng(), e.lnglat.getLat()] ???????????????}); ???????????????marker.setMap(map); ???????????}); ???????????//输入地点提示 ???????????var auto = new AMap.Autocomplete({ ???????????????input: "tipinput" ???????????}); ???????????//构造地点查询类 ???????????var placeSearch = new AMap.PlaceSearch({ ???????????????map: map ???????????}); ???????????//注册监听,当选中某条记录时会触发 ???????????AMap.event.addListener(auto, "select", select); ???????????function select(e) { ???????????????placeSearch.setCity(e.poi.adcode); ???????????????placeSearch.search(e.poi.name); ?//关键字查询查询 ???????????} ???????} ???</script></head><body><div id="container"></div><div id="myPageTop"> ???<table> ???????<tr> ???????????<td> ???????????????<label>按关键字搜索:</label> ???????????</td> ???????????<td> ???????????????<label>左击获取经纬度:</label> ???????????</td> ???????</tr> ???????<tr> ???????????<td> ???????????????<input type="text" placeholder="请输入关键字进行搜索" id="tipinput"> ???????????</td> ???????????<td> ???????????????<input type="text" readonly="true" id="lnglat"> ???????????</td> ???????</tr> ???</table></div></body></html>

步骤说明 :

1. 在高德地图开放平台中申请Key

2. 创建Html文件,添加引用资源 ( plugin=AMap.Autocomplete,AMap.PlaceSearch 中 AMap.Autocomplete -> 输入提示插件 , AMap.PlaceSearchPOI -> 搜索插件 )

<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/><script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.8&key=e0fa91db4ad26b3c627452db308f570e&plugin=AMap.Autocomplete,AMap.PlaceSearch"></script><script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>

3. 编写地图div与相应显示栏

<div id="container"></div><div id="myPageTop"> ???<table> ???????<tr> ???????????<td> ???????????????<label>按关键字搜索:</label> ???????????</td> ???????????<td> ???????????????<label>左击获取经纬度:</label> ???????????</td> ???????</tr> ???????<tr> ???????????<td> ???????????????<input type="text" placeholder="请输入关键字进行搜索" id="tipinput"> ???????????</td> ???????????<td> ???????????????<input type="text" readonly="true" id="lnglat"> ???????????</td> ???????</tr> ???</table></div>

4. 为页面添加对应功能的JS代码

<script type="text/javascript">
???window.onload = function () {

???????//定义初始经纬度
???????var mylgt = "120.185954";
???????var mylat = "30.11235";

???????//地图加载
???????var map = new AMap.Map("container", {
???????????zoom: 15, ???//地图缩放级别
???????????resizeEnable: true,
???????????center: [mylgt, mylat]
???????});

???????//定义一个标记
???????var marker = new AMap.Marker({
???????????icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
???????????position: [mylgt, mylat]
???????});

???????//添加标记
???????marker.setMap(map);

???????//为地图注册click事件获取鼠标点击出的经纬度坐标
???????var clickEventListener = map.on(‘click‘, function (e) {
???????????document.getElementById("lnglat").value = e.lnglat.getLng() + ‘,‘ + e.lnglat.getLat();

???????????//清空标记
???????????if (marker) {
???????????????marker.setMap(null);
???????????????marker = null;
???????????}

???????????//重设标记
???????????marker = new AMap.Marker({
???????????????icon: "https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
???????????????position: [e.lnglat.getLng(), e.lnglat.getLat()]
???????????});
???????????marker.setMap(map);
???????});

???????//输入地点提示
???????var auto = new AMap.Autocomplete({
???????????input: "tipinput"
???????});

???????//构造地点查询类
???????var placeSearch = new AMap.PlaceSearch({
???????????map: map
???????});

???????//注册监听,当选中某条记录时会触发
???????AMap.event.addListener(auto, "select", select);

???????function select(e) {
???????????placeSearch.setCity(e.poi.adcode);
???????????placeSearch.search(e.poi.name); ?//关键字查询查询
???????}
???}
</script>

JS高德地图应用 ---- 鼠标点击加入标记 & POI搜索

原文地址:https://www.cnblogs.com/Jervisking/p/9409508.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved