一、引言

之前在Angular4使用过百度地图,记录一下踩过的坑

二、实现

1.安装

  1. npm install angular2-baidu-map

2.在app.module.ts配置

ak key在http://lbsyun.baidu.com/apiconsole/key中创建

  1. import { BrowserModule } from '@angular/platform-browser'
  2. import { NgModule } from '@angular/core'
  3.  
  4. import { AppComponent } from './app.component'
  5.  
  6. import { BaiduMapModule } from 'angular2-baidu-map'
  7.  
  8. @NgModule({
  9. declarations: [AppComponent],
  10. imports: [BrowserModule, BaiduMapModule.forRoot({ ak: 'your ak' })],
  11. providers: [],
  12. bootstrap: [AppComponent]
  13. })
  14. export class AppModule {}

3.在app.component.html使用

  1. <div style="height: 500px;width: 900px;" >
  2. <baidu-map [options]="opts" >
  3. <!--<marker [point]="point" [options]="markOpts" (loaded)="" (clicked)=""></marker>-->
  4. <marker *ngFor="let marker of markers" [point]="marker.point" [options]="marker.options"></marker>
  5. <!--导航控件-->
  6. <control type="navigation" [options]="controlOpts"></control>
  7. <!--地图全景控件-->
  8. <control type="overviewmap" [options]="overviewmapOpts"></control>
  9. <!--比例尺-->
  10. <control type="scale" [options]="scaleOpts"></control>
  11. <!--地图类型-->
  12. <control type="maptype" [options]="mapTypeOpts"></control>
  13.  
  14. <control type="geolocation" [options]="geolocationOpts"></control>
  15. </baidu-map>
  16. </div>

4.在app.component.ts

  1. import {Component, OnInit} from '@angular/core';
  2.  
  3. import {
  4. MapOptions, Point, MarkerOptions, NavigationControlOptions, ControlAnchor,
  5. NavigationControlType, OverviewMapControlOptions, ScaleControlOptions, MapTypeControlOptions, MapTypeControlType,
  6. GeolocationControlOptions
  7. } from 'angular2-baidu-map';
  8. @Component({
  9. selector: 'app-root',
  10. templateUrl: './app.component.html',
  11. styleUrls: ['./app.component.sass']
  12. })
  13. export class AppComponent {
  14.  
  15. public opts: MapOptions;
  16. public markers: Array<{ point: Point; options?: MarkerOptions }>;
  17. public controlOpts: NavigationControlOptions;
  18. public overviewmapOpts: OverviewMapControlOptions;
  19. public scaleOpts: ScaleControlOptions;
  20. public mapTypeOpts: MapTypeControlOptions;
  21. public geolocationOpts: GeolocationControlOptions;
  22. // 文字标注
  23. public text: string;
  24. public onMarkerLoad(marker: any) {
  25. const label = new window.BMap.Label(’文字标注‘, {
  26. offset: new window.BMap.Size(20, -12)
  27. });
  28. label.setStyle({
  29. border: '1px solid #d81e06',
  30. color: '#d81e06',
  31. fontSize: '10px',
  32. padding: '1px'
  33. });
  34. marker.setLabel(label);
  35. }
  36. constructor() {
  37. this.opts = {
  38. centerAndZoom: { // 设置中心点和缩放级别
  39. lng: 120.62, // 经度
  40. lat: 31.32, // 纬度
  41. zoom: 15 // 缩放级别
  42. },
  43. minZoom: 3, // 最小缩放级别的地图
  44. maxZoom: 19, // 最大缩放级别的地图
  45. enableHighResolution: true, // 是否用高分辨率的地图,default:true
  46. enableAutoResize: true, // 是否可以自动调整大小,default:true
  47. enableMapClick: true, // 地图是否可以点击,default:true
  48. disableDragging: false, // 是否禁用地图拖动功能
  49. enableScrollWheelZoom: true, // 是否启用滚轮进行缩放功能
  50. disableDoubleClickZoom: false, // 是否禁用双击缩放功能
  51. enableKeyboard: true, // 是否启用键盘移动地图功能
  52. enableInertialDragging: false, // 是否启用惯性阻力函数
  53. enableContinuousZoom: true, // 是否启用连续缩放功能
  54. disablePinchToZoom: false, // 是否禁用缩放功能的缩放
  55. cursor: '', // 设置默认的光标样式,应该遵循CSS规范
  56. draggingCursor: '', // 设置默认的拖动光标样式,应该遵循CSS规范
  57. currentCity: '苏州市', // 设置当前的城市
  58. };
  59.  
  60. // 这是地图标记marker
  61. this.markers = [
  62. {
  63. options: {
  64. icon: {
  65. imageUrl: '/assets/1.jpg',
  66. size: {
  67. height: 60,
  68. width: 50
  69. }
  70. },
  71. title: 'asdkjgaslfkjasd'
  72. },
  73. point: {
  74. lng: 120.62, // 经度
  75. lat: 31.32, // 纬度
  76. }
  77. },
  78. {
  79. point: {
  80. lng: 120.63, // 经度
  81. lat: 31.32, // 纬度
  82. }
  83. },
  84. {
  85. point: {
  86. lng: 120.63, // 经度
  87. lat: 31.31, // 纬度
  88. }
  89. }
  90. ];
  91. // 这是控件control
  92. this.controlOpts = { // 导航控件
  93. anchor: ControlAnchor.BMAP_ANCHOR_TOP_LEFT, // 显示的控件的位置
  94. type: NavigationControlType.BMAP_NAVIGATION_CONTROL_LARGE, // 用来描述它是什么样的导航
  95. offset: { // 控件的大小
  96. width: 30,
  97. height: 30
  98. },
  99. showZoomInfo: true, // 是否展示当前的信息
  100. enableGeolocation: true // 是否启用地理定位功能
  101. };
  102. this.overviewmapOpts = { // 地图全景控件
  103. anchor: ControlAnchor.BMAP_ANCHOR_BOTTOM_RIGHT, // 显示的控件的位置
  104. isOpen: true
  105. };
  106. this.scaleOpts = { // 比例尺控件
  107. anchor: ControlAnchor.BMAP_ANCHOR_BOTTOM_LEFT
  108. };
  109. this.mapTypeOpts = { // 地图类型
  110. type: MapTypeControlType.BMAP_MAPTYPE_CONTROL_HORIZONTAL
  111. };
  112. // Geolocation 和Panorama 没有属性
  113. }
  114. }

效果预览

在Angular4中使用ng2-baidu-map详解的更多相关文章

  1. C#中的Linq to Xml详解

    这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...

  2. Sass map详解

    作为一个CSS预处理器,Sass正受到越来越多的青睐,诸如Github.Codepen.CSS-Tricks.SitePoint.w3cplus等网站采用Sass组织.管理CSS文件,Sass正在逐渐 ...

  3. [ 转载 ] Java开发中的23种设计模式详解(转)

    Java开发中的23种设计模式详解(转)   设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类 ...

  4. python中requests库使用方法详解

    目录 python中requests库使用方法详解 官方文档 什么是Requests 安装Requests库 基本的GET请求 带参数的GET请求 解析json 添加headers 基本POST请求 ...

  5. List、Set、Map详解及区别

    一.List接口 List是一个继承于Collection的接口,即List是集合中的一种.List是有序的队列,List中的每一个元素都有一个索引:第一个元素的索引值是0,往后的元素的索引值依次+1 ...

  6. Linux中/proc目录下文件详解

    转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...

  7. JQuery在循环中绑定事件的问题详解

    JQuery在循环中绑定事件的问题详解 有个页面上需要N个DOM,每个DOM里面的元素ID都要以数字结尾,比如说 ? 1 2 3 <input type="text" nam ...

  8. 批处理中的echo命令图文详解

    批处理中的echo命令图文详解 1. Echo 显示当前ECHO的状态:ECHO ON 或者ECHO OFF 2. ECHO ON 将ECHO状态设置为ON,将显示命令行,也就是前面的C:\>类 ...

  9. C#中的预处理器指令详解

    这篇文章主要介绍了C#中的预处理器指令详解,本文讲解了#define 和 #undef.#if.#elif.#else和#endif.#warning和#error.#region和#endregio ...

  10. SVN中tag branch trunk用法详解

    SVN中tag branch trunk用法详解 2010-05-24 18:32 佚名 字号:T | T 本文向大家简单介绍一下SVN中tag branch trunk用法,SVN中tag bran ...

随机推荐

  1. MAC TXT文本

    Mac系统下.txt格式的纯文本怎么保存? 作者:佚名 字体:[增加 减小] 来源:互联网 时间:06-02 14:29:23 我要评论 Mac系统下.txt格式的纯文本怎么保存?.txt是个用途广泛 ...

  2. pyecharts和echarts的混合使用

    ECharts是一个由百度开发的纯 Javascript 的图表库,pyecharts是某三位大佬将ECharts移植到Python项目中的产物,在Python网站中可以更轻松的接入图表,但是个人感觉 ...

  3. [20190531]ORA-600 kokasgi1故障模拟与恢复(后续).txt

    [20190531]ORA-600 kokasgi1故障模拟与恢复(后续).txt --//http://blog.itpub.net/267265/viewspace-2646340/=>[2 ...

  4. 苹果手机Chrome浏览器显示input:disabled时字体颜色总是为浅灰色

    今天被测试人员提了个bug:苹果手机浏览器(Chrome)打开h5,控件在input:disabled的样式始终是浅灰色,要求改成黑色.测试对比:1.在多个pc浏览器上浏览input:disabled ...

  5. 各种windows10下的快捷键

    Windows键+ctrl+D 创建虚拟桌面 windows键+Ctrl+方向键 可以切换桌面 windows+tab ctrl+alt+TAB 切换应用 windows+[1-9] 打开任务栏固定的 ...

  6. vue+node+elementUI实现分页功能

    第1===>收集当前页码 和 每页显示条数 第2==>发送ajax请求页码 和 每页显示条数发送给后端 第3===>接收后端返回的数据总条数 total 和 当前页码的数据 data ...

  7. day45_9_4前端(2)css

    一.css的三种css导入: 1.在标签中内部定义(不推荐). 2.在head中的style总定义样式. 3.使用link链接外部的css文件. <!DOCTYPE html> <h ...

  8. Feign的介绍与使用(五)

    一.Feign的介绍 Feign是一个声明式 WebService 客户端,使用Feign能够让编写Web Service 客户端更加简单,它的使用方法是定义一个接口,然后在上面添加注解,同时也支持J ...

  9. 为了Runtime Broke 关了一堆东西

    可是,好像还是不行啊?CPU还是用了 10-20% 还得写这个随笔,怕自己关东西关多了,以后还得回复. https://www.drivereasy.com/knowledge/runtime-bro ...

  10. A1101 Quick Sort (25 分)

    一.技术总结 这里的一个关键就是理解调换位置排序是时,如果是元主,那么它要确保的条件就只有两个一个是,自己的位置不变,还有就是前面的元素不能有比自己大的. 二.参考代码 #include<ios ...