高德地图初学,如何获取key,简单实例,附github地址 (二)

上篇文章非常简单,代码复制出来就能出地图

这篇将增加很多小功能

直接上代码

gaodeMap2.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>高德地图</title>
    <script src="../../resources/jquery-1.11.1.min.js"></script>
    <!--AMap.AdvancedInfoWindow 信息窗体插件-->
    <!--AMap.Geocoder 地理编码与逆地理编码服务,用于地址描述与坐标间的相互转换-->
    <!--AMap.PlaceSearch 地点搜索服务插件,提供某一特定地区的位置查询服务-->
    <script src="https://webapi.amap.com/maps?v=1.4.10&key=a8e3f1d526511281bac2edf977a6ca03&plugin=AMap.AdvancedInfoWindow&plugin=AMap.Geocoder&plugin=AMap.PlaceSearch"></script>
    <!-- UI组件库 1.0 -->
    <script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
    <link rel="stylesheet" href="https://cache.amap.com/lbs/static/main1119.css"/>
</head>
<style type="text/css">
    .info-title {
        color: white;
        font-size: 14px;
        background-color:blue;
        line-height: 26px;
        padding: 0px 0 0 6px;
        font-weight: lighter;
        letter-spacing: 1px
    }
    .info-content {
        font: 12px Helvetica, 'Hiragino Sans GB', 'Microsoft Yahei', '微软雅黑', Arial;
        padding: 4px;
        color: #666666;
        line-height: 23px;
    }
    .info-content img {
        float: left;
        margin: 3px;
    }
</style>
<body>


<div id="container"></div>


<script type="text/javascript" src="gaodeMap2.js"></script>
</body>
</html>

gaodeMap2.js

var map = null;
var lng = null;
var lat = null;

/**
 *  经纬度判断
 */
function getLnglat(lng, lat) {
    if ( lng == null || lng == '' || lng == undefined ){
        lng = 116.405467;
    } else {
        lng = parseFloat(lng);
    }
    if ( lat == null || lat == '' || lat == undefined ) {
        lat = 39.907761;
    }else {
        lat = parseFloat(lat);
    }
    return [lng,lat];
}
/**
 *  地图初始化
 */

$(function () {
    map = map = new AMap.Map('container', {
        resizeEnable : true,//监控地图容器尺寸变化
        zoom : 12,//地图显示的缩放级别
        center : getLnglat(lng,lat),//地图中心点坐标值
        lang : "zh_cn",//zh_cn 中文简体,en:英文,zh_en:中英文对照默认为: zh_cn:中文简体
        defaultCursor : "crosshair",//地图鼠标样式  crosshair\default\auto\pointer
        isHotspot : true,//是否开启地图热点和标注的hover效果。PC端默认是true,移动端默认是false
        dragEnable : true,//是否可通过鼠标拖拽平移,默认为true
        zoomEnable : true,//是否可缩放,默认值为true
        doubleClickZoom : true,//是否可通过双击鼠标放大地图,默认为true
        keyboardEnable : true,// 是否可通过键盘控制,默认为true  "+"和"-"缩放,Ctrl+“→”顺时针旋转,Ctrl+“←”逆时针旋转。
        jogEnable : true,//是否使用缓动效果,默认值为true
        scrollWheel : true//是否可通过鼠标滚轮缩放浏览,默认为true
    });



//------------------------------------------------------------------------------------------

    //点标记
    var marker = new AMap.Marker({
        position: getLnglat(lng,lat),
        clickable : true //点标记是否可点击
    });
    marker.setMap(map);

//------------------------------------------------------------------------------------------

    //工具条--方向盘、标尺
    map.plugin(["AMap.ToolBar"], function() {
        map.addControl(new AMap.ToolBar());
    });

//------------------------------------------------------------------------------------------

    //比例尺
    map.plugin(["AMap.Scale"],function () {
        map.addControl(new AMap.Scale());
    })

//------------------------------------------------------------------------------------------

    AMapUI.loadUI(['control/BasicControl'], function(BasicControl) {
        //图层切换控件
        map.addControl(new BasicControl.LayerSwitcher({
            position: 'rt'//rt 右上角
        }));
    });

//------------------------------------------------------------------------------------------

    //信息窗体
    var content='<div class="info-title">高德地图</div><div class="info-content">' +
        '<img src="https://webapi.amap.com/images/amap.jpg">' +
        '高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。<br/>' +
        '<a target="_blank" href = "https://mobile.amap.com/">点击下载高德地图</a></div>';
    var  infowindow1 = new AMap.AdvancedInfoWindow({
        content: content,//显示内容
        offset: new AMap.Pixel(0, -30),//显示基点位置
        closeWhenClickMap : false//是否在鼠标点击地图后关闭信息窗体,默认false
    });

//------------------------------------------------------------------------------------------
    //地理编码
    var geocoder = new AMap.Geocoder({
        city : "全国",//可选值:城市名(中文或中文全拼)、citycode、adcode;默认值:“全国”
        radius: 1000,//取值范围:0-3000 逆地理编码时,以给定坐标为中心点
        extensions : "all" //返回信息的详略 默认值:base,返回基本地址信息;取值为:all,返回地址信息及附近poi、道路、道路交叉口等信息
    })
    map.addControl(geocoder);

//------------------------------------------------------------------------------------------

    //点击事件
    map.on("click",function (e) {
        // console.log(e);
        map.clearMap();
        var lnglat = [e.lnglat.getLng(),e.lnglat.getLat()];
        //点标记
        marker = new AMap.Marker({
            position : lnglat,
            map : map
        })
        //打开信息窗体
        infowindow1.open(map,lnglat);
        // 根据坐标获取地址
        geocoder.getAddress(lnglat,function(status,result) {
            console.log(status)
            console.log(result)
        })

    })


    /*  status: complete  no_data
        result :
        info: "OK"
        regeocode: Object { addressComponent: {…}, formattedAddress: "北京市东城区东华门街道天安门", roads: (3) […], … }
        <prototype>: Object { … }
    */
    /* e :
        lnglat: Object { N: 39.900518342783364, O: 116.37525459766391, lng: 116.375255, … }
        pixel: Object { x: 712, y: 317 }
        target: Object { _amap_id: 1, id: 1, CLASS_NAME: "AMap.Map", … }
        type: "click"*/
//------------------------------------------------------------------------------------------


//------------------------------------------------------------------------------------------


//------------------------------------------------------------------------------------------
    var contextmenu=new AMap.ContextMenu();
    var pos=[];
    // 添加右键菜单内容项
    contextmenu.addItem("放大",function () {
        map.zoomIn();
    },0);
    contextmenu.addItem("缩小",function () {
        map.zoomOut();
    },1);
    contextmenu.addItem("添加点标记",function () {
        marker=new AMap.Marker({
            map:map,
            position:pos
        });
    },2);
    // 监听鼠标右击事件
    map.on("rightclick",function (e) {
        contextmenu.open(map,e.lnglat);
        pos=e.lnglat;
    });
//------------------------------------------------------------------------------------------
})

GitHub地址 https://github.com/1571312541/gaodeMap

猜你喜欢

转载自blog.csdn.net/weixin_41637749/article/details/82882652
今日推荐