高德地图,选点,移除点。

找了很多资料,自己写的在高德地图添加围栏,选点的功能。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>输入提示后查询,点击获取坐标</title>
    <style type="text/css">
        body{
            margin:0;
            height:100%;
            width:100%;
            position:absolute;
            font-size:12px;
        }
        #mapContainer{
            position: absolute;
            top:0;
            left: 0;
            right:0;
            bottom:0;
        }
    </style>
</head>
<body>
    <div id="mapContainer" ></div>

    <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=3819e3b9a7810x1930026f02fa8ebac2b"></script>
    <script type="text/javascript">
        var windowsArr = [];
        var marker = [];
        var mapObj = new AMap.Map("mapContainer", {
        	resizeEnable: true,
            zoom:11
        });
        mapObj.plugin(["AMap.ToolBar"], function() {
        	mapObj.addControl(new AMap.ToolBar());
    	});
        
        var jsonx = [];
        var clickEventListener=AMap.event.addListener(mapObj,'click',function(e){
        	var marker = new AMap.Marker({map:mapObj,position:[e.lnglat.lng,e.lnglat.lat]});
        	jsonx.push({"latitude":e.lnglat.lat,"longitude":e.lnglat.lng});
        	window.top.json = jsonx;
        	AMap.event.addListener(marker, 'click', function(){
        		var mark = this; 
        		var x = 0;
				for(var i=0, a;a=jsonx[i];i++){
        			if (mark.getPosition().lng == a.longitude &&
        					mark.getPosition().lat == a.latitude)
        			{
        				x = i;
        			}
        		}
				Array.prototype.baoremove = function(dx)
				 {
				  if(isNaN(dx)||dx>this.length){return false;}
				  this.splice(dx,1);
				 }
				jsonx.baoremove(x)
        		mapObj.remove(this);
				window.top.json = jsonx;
        	});
        });
    </script>

</body>
</html>

 最后得到的json 就是围栏的数组

 

 

 

### 集成高德地图API到UniApp实现选点和定位 #### 权限与配置准备 为了能够在UniApp项目中使用高德地图的服务,需要先完成必要的权限设置以及环境准备工作。这包括但不限于注册成为高德开放平台的开发者,并创建相应的Web服务密钥用于后续接口调用[^1]。 #### 安装依赖包 对于基于Vue框架构建的应用程序来说,在HBuilderX环境下可以通过npm安装`amap-js-api`来引入官方JavaScript API库: ```bash npm install amap-js-api --save ``` #### 初始化地图组件 在页面初始化阶段加载地图实例之前,需确保已经成功导入了上述提到的地图SDK文件。接着可以在mounted生命周期钩子函数内执行如下操作以显示默认中心为中国北京的位置信息作为初始视图展示给用户查看[^2]: ```javascript import AMapLoader from '@amap/amap-jsapi-loader'; export default { mounted() { AMapLoader.load({ key: 'your_amap_web_service_key', // 替换成自己的key version: "2.0", plugins: [] }).then((AMap) => { this.map = new AMap.Map('container', { zoom: 10, center: [116.397428, 39.90923], // 设置地图中心坐标为北京市区经纬度值 }); }) } } ``` #### 获取当前设备位置 借助于浏览器内置Geolocation API能够方便快捷地取得终端用户的实时地理坐标数据。这里给出一段简单的代码片段用来请求访问GPS硬件资源并更新至地图界面上相应地标记处: ```javascript navigator.geolocation.getCurrentPosition( (position) => { const { latitude, longitude } = position.coords; // 更新地图中心 map.setCenter([longitude, latitude]); // 添加标记 var marker = new AMap.Marker({ position: new AMap.LngLat(longitude, latitude), title: '当前位置' }); map.add(marker); }, error => console.error(error) ); ``` #### 使用POI检索插件查找周边兴趣 为了让应用程序具备更强大的交互能力,还可以考虑接入高德提供的POI(Point Of Interest)查询工具,允许访客输入关键词后返回匹配的结果列表供其挑选感兴趣的目的地之一再进一步规划出行路线等动作. ```javascript // 加载搜索模块 const placeSearch = new AMap.PlaceSearch({ pageSize: 5, pageIndex: 1, citylimit: true }); document.getElementById('search').addEventListener('click', () => { let keyword = document.querySelector('#keyword').value; placeSearch.search(keyword); placeSearch.on('markerclick', function(e){ alert(`您选择了${e.poi.name}`); }); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值