高德地图

准备

1 注册成为开发者

    http://lbs.amap.com/

2 进入开发者中心控制台

3 创建新应用

4 添加新key

如何引入高德地图到你的项目

1 页面直接引入

<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script>

2 异步加载

    <script src="http://webapi.amap.com/maps?v=1.3&amp;key=您申请的key值&callback=init"></script>
    <script>
    function init(){
        var map = new AMap.Map(‘container‘, {
            center: [117.000923, 36.675807],
            zoom: 6
    });
    map.plugin(["AMap.ToolBar"], function() {
            map.addControl(new AMap.ToolBar());
        });
    }
    </script>

第一个高德地图程序 01/start.html

1 在页面中引入高德地图JavaScript API入口脚本

    <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script>

2 创建地图容器

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

3 CSS 給地图容器指定大小

    #container {width:300px; height: 180px; }

4 创建地图

    var map = new AMap.Map(‘container‘);

5 设定地图的中心点和级别

我们一般需要给地图按需设定中心点和坐标等属性,这里可以通过两种方式,第一种,直接在地图初始化的时候传入相关属性,center属性的值可以是经纬度的二元数组,也可以是AMap.LngLat对象,要求经度值在前,纬度值在后:

    var map = new AMap.Map(‘container‘,{
        zoom: 10,
        center: [116.39,39.9]//new AMap.LngLat(116.39,39.9)
    });

也可以在地图初始化过后,任何需要的地方通过方法来改变地图的中心点和级别

    var map = new AMap.Map(‘container‘);
    map.setZoom(10);
    map.setCenter([116.39,39.9]);

JavaScript API提供了丰富的覆盖物,比如Marker点标记、Polyline折线、Polygon多边形、Circle圆等。以Marker为例, 我们创建一个最简单的Marker,并将它添加到地图上:

    var marker = new AMap.Marker({
        position: [116.480983, 39.989628],//marker所在的位置
        map:map//创建时直接赋予map属性
    });
    //也可以在创建完成后通过setMap方法执行地图对象
    marker.setMap(map);

坐标拾取器 01/tiananmen.html

通过坐标拾取器可以创建拾取坐标为核心的地图,比如天安门为中心的地图,拾取坐标经纬度 [116.397428, 39.90923] ,那么只需在创建时配置参数即可

    http://lbs.amap.com/console/show/picker

    var map = new AMap.Map(‘container‘, {
            resizeEnable: true,
            zoom:11,
            center: [116.397428, 39.90923]
    });

地图控件 01/controll.html

  • 工具条 : ToolBar
  • 比例尺 : Scale
  • 定位 : Geolocation
  • 鹰眼 : OverView
  • 基本图层切换 : MapType

覆盖物

最常用的地图覆盖物是Marker和信息窗体,除此之外,我们提供了圆Circle、多边形Polygon、折线Polyline、右键菜单ContextMenu等。除信息窗体和右键菜单之外,这些覆盖物都可以使用setMap方法添加到地图或者从地图上移除,使用setMap()可以将覆盖物从地图中移除;信息窗体和右键菜单使用open方法显示在地图上:

  • 点标记 Marker 用来在地图上添加点状标记,可指定任意icon或者content
  • 信息窗体 infoWindow 用来展示比较详细或者复杂的内容,同一事件只能展示一个
  • 圆 Circle 以某一中心和半径(m)在地图上绘制圆
  • 多边形 Polygon 通过路径path在地图上绘制多边形,支持填充、描边以及多环多边形
  • 折线 Polyline 通过路径在地图上绘制折线,支持描边以及虚线
  • 右键菜单 ContentMenu 封装地图的右键菜单,鼠标右键单击时弹出
    var marker = new AMap.Marker({
        position: [116.480983, 39.989628]
    });
    marker.setMap(map);
        var circle = new AMap.Circle({
        center: [116.480983, 39.989628],
        radius: 100,
        fillOpacity:0.2,
        strokeWeight:1
    })
    circle.setMap(map);
        map.setFitView()
        var info = new AMap.InfoWindow({
        content:"信息窗体<br>这里是方恒科技大厦",
        offset:new AMap.Pixel(0,-28)
    })
    info.open(map,marker.getPosition())
    

图层

  • TileLayer 默认图层
  • TileLayer.Traffic 实时交通
  • TileLayer.Statellite 卫星
  • TileLayer.RoadNet 路网
  • Buildings 3D楼块

除了默认的图层之外,API提供了路况Traffic、卫星Satellite、路网RoadNet、3D楼块Buildings等图层类,使用多图层的时候有两种方式, 第一种方式,在地图初始化的时候将需要的图层设定到layers属性中:

方式一:

    var defaultLayer = new AMap.TileLayer();
    var traffic = new AMap.TileLayer.Traffic();
    var map = new AMap.Map(‘container‘,{
        zoom: 10,
        layers: [
        defaultLayer,//默认图层
        traffic//实时交通图层
        ],
        center: [116.39,39.9]
    });

方式二:

第二种方式,在地图初始化之后,通过调用setMap(map)将图层添加到地图上,不需要的时候可以使用setMap()来移除某个图层:

    var defaultLayer = new AMap.TileLayer();
    var traffic = new AMap.TileLayer.Traffic();
    var map = new AMap.Map(‘container‘,{
        zoom: 10,
        center: [116.39,39.9]
    });
    traffic.setMap(map);

地图组件

1 可实现功能

  • 位置标注
  • 路线规划
  • 周边搜索
  • 选址组件
时间: 2024-10-26 13:57:20

高德地图的相关文章

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

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">

js中实现高德地图坐标经纬度转百度地图坐标

1 function tobdMap(x, y) { 2 var x_pi = 3.14159265358979324 * 3000.0 / 180.0; 3 var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi); 4 var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi); 5 var bd_lon = z * Math.cos(theta) + 0.00

使用高德地图api导入行政区域及经纬度

高德地图提供了行政区域及经纬度查询api 参考如下链接 高德地图行政区域api 具体实现代码如下 package com.test; import java.util.HashMap;import java.util.Map; import org.json.JSONArray;import org.json.JSONObject; import jvc.util.DBUtils;import jvc.util.NetUtils;import jvc.util.db.Insert; public

IOS原生地图与高德地图

原生地图 1.什么是LBS LBS: 基于位置的服务   Location Based Service 实际应用:大众点评,陌陌,微信,美团等需要用到地图或定位的App 2.定位方式 1.GPS定位      2.基站定位      3.WIFI定位 3.框架 MapKit:地图框架,显示地图 CoreLocation:定位框架,没有地图时也可以使用定位. 4.如何使用原生地图<MapKit> 和定位<CoreLocation> MapKit: 1) 初始化MapView _map

利用高德地图完成用户地图选址,包括搜索位置和标签固定居中

这两天一直捣鼓着地图的选址功能,需要达到的要求是:1,能用户定位  2,大头针固定在地图中心,拖动地图停止后获取到该大头针的位置信息    3,能通过搜索框搜索到我们输入的地址 主要思路:大头针分为两个   一个是用户的位置大头针  另一个是所选取的位置的大头针(包括拖动后的大头针和搜索功能查找到位置的大头针,公用一个大头针  )并且两个大头针都成为控制器器属性. 我使用到的高德地图sdk是: 'AMap3DMap' , '5.2.1' #高德3D地图 'AMapSearch' , '5.2.1

高德地图api实现地址和经纬度的转换(python)

利用高德地图web服务api实现地理/逆地址编码 api使用具体方法请查看官方文档 文档网址:http://lbs.amap.com/api/webservice/guide/api/georegeo/ 1.利用python第三方库requests实现 Requests库文档地址:http://www.python-requests.org/en/master/ 1 #!/usr/bin/env python3 2 #-*- coding:utf-8 -*- 3 ''' 4 利用高德地图api实

高德地图API INVALID_USER_SCODE问题以及keystore问题

今天这篇文章会给大家介绍三个问题: 1,接入API时出现invalid_user_scode问题 首先进行第一个大问题,接入高德地图API时出现invalid_user_scode问题 因为项目需要接入高德地图的API,在接入其它API时会出现类似问题,在进行定位的时候出现了下列问题 运行时log信息如下 可以看到,定位失败有两个原因: 1,错误代码为10,定位服务启动失败. 2,错误代码为7,key错误. 根据高德地图的官方使用文档的介绍,对相关问题进行处理 问题1:服务启动失败:检查清单配置

高德地图返回地址详细信息

个人习惯,上图 关于高德地图自动定位返回地址详细信息一直没写,一方面太忙了(也可以说太懒了),另一方面这个地方的内容太少,因为项目后面会用到快速搜索提示,往地图中添加marker.以及导航以及语音提示等等 本来想等项目上线在好好总结一下,算了不想拖了, 上代码: package com.example.mydemo; import android.app.Activity;import android.location.Location;import android.os.Bundle;impo

高德地图iOS SDK限制地图的缩放比例

问题 高德地图的iOS SDK 3D版中(v2.4.0), 显示范围在560m左右时建筑会呈现3D效果. 我们有没有办法可以限制地图最小缩放到这个比例, 从而保证建筑始终使用3D效果显示呢? 探索 高德地图的MAMapView再怎么封装也是个UIView, 通过加断点很容易看出它的结构 很明显, 地图上的操作都是依赖UIGestureRecognizer来处理的. 为了限制地图的交互, 我们只需要想办法修改一下这些gesture的处理逻辑即可. 对于pinch操作它提供了handlePinch: