高德地图API JS实现获取坐标和回显点标记

本文介绍如何使用高德地图API实现地图搜索、经纬度获取及地址解析等功能,并提供了一个具体的JavaScript代码示例。
部署运行你感兴趣的模型镜像

1.搜索+选择+获取经纬度和详细地址

2.回显数据并点标记

3.实现

第一步:引入资源文件

<!--引入高德地图JSAPI -->
<script src="//webapi.amap.com/maps?v=1.3&key=在官网申请一个key"></script>
<!--引入UI组件库(1.0版本) -->
<script src="//webapi.amap.com/ui/1.0/main.js"></script>
<script type="text/javascript" src="http://webapi.amap.com/demos/js/liteToolbar.js"></script>
<script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script>
<link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>

根据需要引入

第二步:代码

复制代码
 1 var map,addMarker;
 2 var geocoder;
 3 var placeSearch;
 4 $(function(){
 5     // 加入高的地图
 6     map = new AMap.Map('mymap', {
 7            resizeEnable: true/* ,
 8            zoom:11,
 9            center: [116.397428, 39.90923] */
10     });
11     AMap.plugin(['AMap.ToolBar','AMap.Scale'],
12         function(){
13             map.addControl(new AMap.ToolBar());
14 
15             map.addControl(new AMap.Scale());
16     });
17     AMap.service('AMap.Geocoder',function(){//回调函数
18         //实例化Geocoder
19         geocoder = new AMap.Geocoder({
20             city: "全国"//城市,默认:“全国”
21         });
22         //TODO: 使用geocoder 对象完成相关功能
23     });
24     // 加载搜索列表
25     myMapViewLocation();
26     AMap.service(["AMap.PlaceSearch"], function() {
27             placeSearch = new AMap.PlaceSearch({ //构造地点查询类
28             pageSize: 5,
29             pageIndex: 1,
30             city: "全国", //城市
31             map: map,
32             panel: "panel"
33         });
34     });
35     //为地图注册click事件获取鼠标点击出的经纬度坐标
36     var clickEventListener = map.on('click', function(e) {
37         $("input[name=lon]").val(e.lnglat.lng);
38         $("input[name=lat]").val(e.lnglat.lat);
39         // 填写地址
40         writeAddress([e.lnglat.lng,e.lnglat.lat]);
41     });
42     //placeSearch.search("北京");
43     $("#mymap_search").on("keydown",function(event){
44         if(event = event || window.event){
45             if(event.keyCode==13){
46                 mapsearch();
47             }
48         }
49     });
50 });
51 //地图搜索
52 function mapsearch(){
53     var searchVal = $("#mymap_search").val();
54     placeSearch.search(searchVal);
55 }
56 // 回显
57 function myMapViewLocation(){
58     //console.log("回显坐标");
59     var mlon = $("input[name=lon]").val();
60     var mlat = $("input[name=lat]").val();
61     var lnglatXY = [mlon,mlat];
62     if(mlon&&mlat){
63         addMarker(lnglatXY);
64     }
65 }
66 // 实例化点标记
67 function addMarker(lnglatXY) {
68     //console.log(lnglatXY);
69     marker = new AMap.Marker({
70         icon: "http://webapi.amap.com/theme/v1.3/markers/n/mark_b.png",
71         position: lnglatXY
72     });
73     marker.setMap(map);
74     map.setFitView();// 执行定位
75 }
76 // 填写地址
77 function writeAddress(lnglatXY){
78     geocoder.getAddress(lnglatXY, function(status, result) {
79         if (status === 'complete' && result.info === 'OK') {
80             geocoder_CallBack(result);
81         }
82     }); 
83 }
84 // 地址回调
85 function geocoder_CallBack(data) {
86     var address = data.regeocode.formattedAddress; //返回地址描述
87     $("input[name=resourceAddress]").val(address);
88 }

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

### 集成高德地图API至Vue项目 为了在 Vue 项目中集成高德地图 API实现地理坐标功能,需遵循一系列配置流程。 #### 安装依赖库 首先,在项目根目录下通过 npm 或 yarn 命令安装 `amap-jsapi-loader` 这一用于加载高德 JS API 的工具包[^2]。 ```bash npm install amap-jsapi-loader --save ``` 或者 ```bash yarn add amap-jsapi-loader ``` #### 初始化地图组件 创建一个新的 Vue 组件来承载地图实例。在此过程中,引入之前安装好的 `amap-jsapi-loader` 来动态加载高德地图 SDK,并设置好容器样式以便于展示地图界面。 ```javascript import { defineComponent, onMounted } from 'vue'; import AMapLoader from '@amap/amap-jsapi-loader'; export default defineComponent({ name: 'AmapContainer', setup() { let map; const initMap = () => { AMapLoader.load({ key: '<your_amap_api_key>', // 替换成自己的key version: '2.0', // 版本号 plugins: [] // 插件列表 }).then((AMap) => { map = new AMap.Map('container', { zoom: 10, center: [116.397428, 39.90923], // 默认中心点位置 }); // 地理编码服务初始化 const geocoder = new AMap.Geocoder(); function showInfoByAddress(address){ geocoder.getLocation(address, (status, result)=>{ if(status === 'complete' && result.info === 'OK'){ console.log(result); map.setCenter([result.geocodes[0].location.lng, result.geocodes[0].location.lat]); var marker = new AMap.Marker({ position: [result.geocodes[0].location.lng, result.geocodes[0].location.lat], title: address }); map.add(marker); } }) } // 调用函数传入想要查询的位置字符串参数即可完成地理坐标操作 showInfoByAddress("北京市朝阳区望京SOHO"); }).catch(e => { console.error(e); }); }; onMounted(() => { initMap(); }); return {}; }, }); ``` 此代码片段展示了如何利用 `@amap/amap-jsapi-loader` 加载高德地图插件并构建基本的地图视图,同时实现了基于给定地址的地理坐标转换与示逻辑。 #### 获取当前位置信息 对于希望获取用户的实时地理位置的情况,则可以借助浏览器内置的 Geolocation API 结合高德提供的逆向地理编解码接口(ReGeocode),从而达到精准定位的效果[^1]。 ```javascript navigator.geolocation.getCurrentPosition(position => { const lnglat = [position.coords.longitude, position.coords.latitude]; map.setZoomAndCenter(15, lnglat); // 使用 ReGeocode 将经纬度转为具体描述性的地址文字说明 }, error => { alert(`Error occurred while fetching location data: ${error.message}`); }); ``` 上述方法能够帮助开发者快速搭建起具备基础功能的地图应用框架,满足大多数场景下的需求。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值