ionic2如何调用百度地图

使用ionic2接入百度地图

在index.html中引入百度地图的js类库
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
密钥需要到百度地图API官方文档中申请

http://lbsyun.baidu.com/index.php?title=jspopular

html页面内容
<ion-content>
    <div id="map" #map></div>
</ion-content>
scss样式文件
#map{
    width: 100%;
    height: 100%;
    display: block;
    overflow: hidden;
    margin:0;
    font-family:"微软雅黑";

}
.scroll{
    height: 100%;
}
需要导入的声明文件
import { Component, ViewChild, ElementRef } from ‘@angular/core‘;
import { NavController, Platform} from ‘ionic-angular‘;
在typescript中接入百度地图类库
declare var BMap;
使用注解在页面创建视图
export class HomePage {

  @ViewChild(‘map‘) mapElement: ElementRef;
  constructor(
    private navCtrl: NavController,
    private platform: Platform,
  )
定义全局变量,调用初始化方法
 ionViewWillEnter() {
    let map = this.map = new BMap.Map(this.mapElement.nativeElement, { enableMapClick: true });//创建地图实例
    map.enableScrollWheelZoom();//启动滚轮放大缩小,默认禁用
    map.enableContinuousZoom();//连续缩放效果,默认禁用
    let point = new BMap.Point(116.06827, 22.549284);//坐标可以通过百度地图坐标拾取器获取
    map.centerAndZoom(point, 16);//设置中心和地图显示级别
插入百度的一些控件,展示在地图中
//地图放大缩小控件
let sizeMap = new BMap.Size(10, 80);//显示位置
map.addControl(new BMap.NavigationControl({
  anchor: BMAP_ANCHOR_BOTTOM_RIGHT,//显示方向
  offset: sizeMap
}));

//3D效果矢量图控件
let size3D = new BMap.Size(10, 10);
map.addControl(new BMap.MapTypeControl({
  anchor: BMAP_ANCHOR_TOP_RIGHT,
  offset: size3D
}));
map.setCurrentCity("深圳");//3D效果需要设置城市

//城市列表控件
let sizeCity = new BMap.Size(10, 10);
map.addControl(new BMap.CityListControl({
  anchor: BMAP_ANCHOR_TOP_LEFT,
  offset: sizeCity
}));
添加自定义的控件展示地图中
 function showAttractionControl() {
      //定义显示位置
      this.defaultAnchor = BMAP_ANCHOR_TOP_RIGHT;
      this.defaultOffset = new BMap.Size(10, 50);
    }
    //初始化控件
    showAttractionControl.prototype = new BMap.Control();
    showAttractionControl.prototype.initialize = function (map) {
      let div = document.createElement("button");// 创建一个按钮
      div.appendChild(document.createTextNode("附近景点"));
      div.style.width = "135px";
      div.style.height = "35px";
      div.style.borderRadius = "15px";
      div.onclick = function (e) {
        let local = new BMap.LocalSearch(map, {
          renderOptions: { map: map, autoViewport: true }
        });
        local.search("景点");
      }
      map.getContainer().appendChild(div);// 添加DOM元素到地图中
      return div;
    }
    let showAttraction = new showAttractionControl();
    map.addControl(showAttraction);//添加控件
添加自定义标注在地图中
div.onclick = function (e) {//地图上可以添加自定义标注
    let icon = new BMap.Icon(‘http://pic002.cnblogs.com/images/2011/308287/2011091516161618.png‘, new BMap.Size(20, 32), {
      anchor: new BMap.Size(10, 30),
    })//设置标注图片和位置
    var mkr = new BMap.Marker(new BMap.Point(116.06827, 22.549284), {
      icon: icon,
      enableDragging: true,
      raiseOnDrag: true
    });//设置起始坐标点
    map.addOverlay(mkr);//添加标注在地图中并实现拖拽
}
时间: 2024-10-05 08:52:16

ionic2如何调用百度地图的相关文章

Delphi XE6 通过JavaScript API调用百度地图

参考昨天的内容,有朋友还是问如何调用百度地图,也是,谁让咱都在国内呢,没办法,你懂的. 首先去申请个Key,然后看一下百度JavaScript的第一个例子:http://developer.baidu.com/map/jsdemo.htm 下一步,就是把例子中的代码,移动TWebBrower中. unit Unit3; interface uses  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Var

苹果手机 微信调用百度地图Javascript API 频繁闪退问题

最近在网页中调用百度地图API js大众版,但是在IOS8系统中,缩放的时候频繁闪退,安卓手机没有这个问题! 在网上查询了下,有网友回答说不要频繁的去new marker,而是初始化话一定量的marker,然后setPosition.但是我的页面中匹配当前城市 注入marker也没有几个,所以排除这答案. 最后发现有网友说版本不稳定引起的,于是把百度地图API回退到了1.5,结果还真是可以了.

delphi 调用百度地图WEBSERVICE转换GPS坐标

百度地图的API说明 使用方法 第一步,申请密钥(ak),作为访问服务的依据: 第二步,按照请求参数说明拼写发送http请求的url,注意需使用第一步申请的ak: 第三步,接收返回的数据(json或者xml格式). 注:本接口支持回调. 服务地址 http://api.map.baidu.com/geoconv/v1/? 组成说明: 域名:http://api.map.baidu.com 服务名:geoconv 服务版本号:v1 服务参数说明 参数 含义 取值范围 是否必须 默认取值 coord

HTML5 调用百度地图API地理定位

<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="ht

Android中调用百度地图

一.调用百度地图 --第一种方法 1.下载百度地图SDK SDK可以拆分下载,需要使用那一部分功能就下载相应包含的SDK,如下图 核心的的jar 和so包,放在工程中的libs目录下 2.申请key 注册百度账号申请key,格式如下:sha1值+";"+包名. 包名指的是AndroidManifest.xml 中定义的名称 ,并非工程包名 3.将百度地图加入工程 (1)在application中添加开发密钥 <application   <meta-data android

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地(转)

HTML5页面直接调用百度地图API,获取当前位置,直接导航目的地 我是应用在微信中,自定义菜单,菜单直接链接到这个HTML5页面,获取当前位置后,页面中定好目的地,这样打开页面后直接进入导航页面 可以省下先发送位置信息后,点确定再出导航,省一步, <!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8"> <meta name="viewpor

JS调用百度地图拼接成路径,C#保存地图图片到本地

昨日公司要求做一个静态百度地图图片生成到本地的功能,以前没做过,这次小小总结一下 百度地图API自己看(http://developer.baidu.com/map/index.php?title=static) 当然首先得调用百度地图API,无非就是前台后台,,我是用JS写的,(http://www.cnblogs.com/kulong995/p/3368048.html)这个人写的不错,是用c#写的调用百度地图,写的很不错,可以看看 百度地图是由一堆乱七八糟的数据拼接出来的路径,然而保存图片

Android Studio调用百度地图为何总是初始化失败?

============问题描述============ Android Studio调用百度地图为何总是初始化失败? 只要一调用,就黑屏,然后程序自动关闭?请问是什么原因,libs我也加.jar文件了 ============解决方案1============ 怎么加?只是加个包?没写其他了? ============解决方案2============ 布局写了么.. ============解决方案3============ 运行在真机?还是模拟器? ============解决方案4===

android 调用百度地图客户端,

以前都是使用百度API在软件里面做一个百度地图出来这样感觉既浪费时间又浪费精力,这里就教大家直接使用Intent的方式调用手机上安装的百度地图客户端,访问我们所需要的路径规划等, //调起百度地图客户端 try { intent = Intent.getIntent("intent://map/direction?origin=latlng:34.264642646862,108.95108518068|name:我家&destination=大雁塔&mode=driving®i