高德地图api

linefly的地图支持终于由google更换为高德

( google有大量的加载问题出现 及中国西南地区加载及其不稳定 )

海拔依然引用google数据部分 国内地图由于政策原因不提供海拔数据

以下为工作中使用到的功能

地图初始化

<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script>
var map = new AMap.Map('container', {
    resizeEnable: true,
    zoom:11,
    center: [116.397428, 39.90923]
});

监听事件

addListener( instance, eventName, handler, context)
//添加监听事件 instance地图名称 eventName事件类型 handler执行函数
removeListener( listener)
//撤销监听事件

地理坐标与地理信息转换

new AMap.Geocoder.getAddress(lnglatXY, function(status, result) {
            if (status === 'complete' && result.info === 'OK') {
                geocoder_CallBack(result);
            }
        });  
        function geocoder_CallBack(data) {
            var address = data.regeocode.formattedAddress; //返回地址描述
        document.getElementById("result").innerHTML = address;
    } 
//通过lnglatXY获取城市信息

鼠标点击获得经纬度

    var clickEventListener = map.on('click', function(e) {
        document.getElementById("lnglat").value = e.lnglat.getLng() + ',' + e.lnglat.getLat()
    });

覆盖物添加

    var lineArr = [
        [116.368904, 39.913423],
        [116.382122, 39.901176],
        [116.387271, 39.912501],
        [116.398258, 39.904600]
    ];
    var polyline = new AMap.Polyline({
        path: lineArr,          //设置线覆盖物路径
        strokeColor: "#3366FF", //线颜色
        strokeOpacity: 1,       //线透明度
        strokeWeight: 5,        //线宽
        strokeStyle: "solid",   //线样式
        strokeDasharray: [10, 5] //补充线样式
    });
    polyline.setMap(map);

    var polygonArr = new Array();//多边形覆盖物节点坐标数组
    polygonArr.push([116.403322, 39.920255]);
    polygonArr.push([116.410703, 39.897555]);
    polygonArr.push([116.402292, 39.892353]);
    polygonArr.push([116.389846, 39.891365]);
    var  polygon = new AMap.Polygon({
        path: polygonArr,//设置多边形边界路径
        strokeColor: "#FF33FF", //线颜色
        strokeOpacity: 0.2, //线透明度
        strokeWeight: 3,    //线宽
        fillColor: "#1791fc", //填充色
        fillOpacity: 0.35//填充透明度
    });
    polygon.setMap(map);

    var circle = new AMap.Circle({
        center: new AMap.LngLat("116.403322", "39.920255"),// 圆心位置
        radius: 1000, //半径
        strokeColor: "#F33", //线颜色
        strokeOpacity: 1, //线透明度
        strokeWeight: 3, //线粗细度
        fillColor: "#ee2200", //填充颜色
        fillOpacity: 0.35//填充透明度
    });
    circle.setMap(map);

天气预报

 AMap.service('AMap.Weather', function() {
        var weather = new AMap.Weather();
        //查询实时天气信息, 查询的城市到行政级别的城市,如朝阳区、杭州市
        weather.getLive('朝阳区', function(err, data) {
            if (!err) {
                var str = [];
                str.push('<div style="color: #3366FF;">实时天气' + '</div>');
                str.push('<div>城市/区:' + data.city + '</div>');
                str.push('<div>天气:' + data.weather + '</div>');
                str.push('<div>温度:' + data.temperature + '℃</div>');
                str.push('<div>风向:' + data.windDirection + '</div>');
                str.push('<div>风力:' + data.windPower + ' 级</div>');
                str.push('<div>空气湿度:' + data.humidity + '</div>');
                str.push('<div>发布时间:' + data.reportTime + '</div>');
                var marker = new AMap.Marker({map: map, position: map.getCenter()});
                var infoWin = new AMap.InfoWindow({
                    content: str.join(''),
                    offset: new AMap.Pixel(0, -20)
                });
                infoWin.open(map, marker.getPosition());
                marker.on('mouseover', function() {
                    infoWin.open(map, marker.getPosition());
                });
            }
        });
        //未来4天天气预报
        weather.getForecast('朝阳区', function(err, data) {
            if (err) {return;}
            var str = [];
            for (var i = 0,dayWeather; i < data.forecasts.length; i++) {
                dayWeather = data.forecasts[i];
                str.push(dayWeather.date+' <div class="weather">'+dayWeather.dayWeather+'</div> '+ dayWeather.nightTemp + '~' + dayWeather.dayTemp + '℃');
            }
            document.getElementById('tip').innerHTML = str.join('<br>');
        });
    });
### 高德地图 API 使用指南 高德地图 API 提供了一系列工具和接口,用于开发者快速集成地图功能到自己的应用中。以下是关于高德地图 API 的一些核心知识点以及如何使用它的说明。 #### 一、引入高德地图 API 脚本 为了在项目中使用高德地图的功能,首先需要通过脚本加载其 JavaScript SDK。如果是在 Vue3 环境下开发,则可以借助 `@amap/amap-jsapi-loader` 来简化加载过程[^1]。 安装依赖的方法如下: ```bash npm install @amap/amap-jsapi-loader --save ``` 随后,在代码中可以通过以下方式加载高德地图的 JSAPI: ```javascript import loadAMap from '@amap/amap-jsapi-loader'; loadAMap({ key: 'your_api_key', // 替换为您的高德开放平台申请的 Key version: '2.0', plugins: ['AMap.Marker'], // 加载插件(按需) }).then((AMap) => { console.log('高德地图 API 已成功加载'); }); ``` #### 二、地图初始化 完成脚本加载后,下一步是对地图进行初始化操作。这一步骤通常涉及指定地图容器、设定初始中心点坐标、缩放级别以及其他参数配置[^3]。下面是一个简单的初始化示例: ```javascript let map = new AMap.Map("container", { mapStyle: "amap://styles/normal", zoom: 13, center: [120.5853, 31.298886], viewMode: "3D" }); ``` 在此基础上还可以进一步调整视角角度或者启用其他高级特性,比如三维视图模式下的俯仰角设置 (`pitch`) 和旋转控制等[^3]。 #### 三、添加标记与信息窗口 当基础的地图框架构建完成后,常常还需要向其中添加地理标注 (Marker),并通过点击事件触发对应的信息展示框 (InfoWindow)[^2]。具体实现方法如下所示: ```javascript // 创建一个 Marker 实例 let marker = new AMap.Marker({ position: [120.5853, 31.298886], // 经纬度位置 title: "我的地点" // 标记名称 }); marker.setMap(map); // 设置 InfoWindow 内容并绑定至 Marker 上 let infoWindowContent = '<div style="width:200px;">这是一个测试点</div>'; let infowindow = new AMap.InfoWindow({content:infoWindowContent}); infowindow.open(map, marker.getPosition()); ``` #### 四、静态地图生成 除了动态交互型的地图外,有时也需要利用 **高德静态地图 API** 来获取特定区域的地图图片资源[^4]。该服务允许用户自定义图像大小、比例尺、标注样式等内容,并返回一张 PNG/JPG 图片链接地址作为结果输出。请求 URL 构造形式如下: ``` https://restapi.amap.com/v3/staticmap?location=经度,纬度&zoom=缩放等级&size=宽度*高度&markers=标志类型,...&key=您的Key ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值