ionic2 百度地图应用

ionic2 百度地图集成

demo: https://github.com/wangzuxing/myionic2prj

1、创建项目工程(命令行方式)

ionic start myionic2prj blank --v2      //--v2 参数 指示创建ionic2工程
cd myionic2prj

2、
npm install //或使用”cnpm install” 主要完成安装所需模块(根据package.json中的配置参数指明所需模块)到node_modules目录,同时会生成相应的配置项在config.xml中

3、

ionic platform add android             // 添加platform支持 

4、
src/index.html中添加

<head>
  ...
  <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=uhfNa0vlBkdS28Vh096yehMugu3T7YqN">
  //v2.0版本的引用方式:src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"
  </script>
  ...
</head>

src/pages/my-page1/my-page1.html:

<ion-header>
    <ion-navbar>
        <ion-title>AMap</ion-title>
    </ion-navbar>
</ion-header>

<ion-content padding>
    <div id="container" style="height: 500px;"></div>
</ion-content>

src/pages/my-page1/my-page1.ts文件中导入应用:

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';

declare var AMap; //declare var AMap: any;

/**
 * Generated class for the MyPage1 page.
 *
 * See http://ionicframework.com/docs/components/#navigation for more info
 * on Ionic pages and navigation.
 */
@IonicPage()
@Component({
  selector: 'page-my-page1',
  templateUrl: 'my-page1.html',
})

export class MyPage1 {
  public map: any;

  constructor(public navCtrl: NavController, public navParams: NavParams) {
  }

  ionViewDidLoad() {
    console.log('Loading Amap');
    this.loadMap();
    this.loadToolBar();
  }

  loadToolBar(){
    AMap.plugin('AMap.ToolBar',function(){//异步
      var toolbar = new AMap.ToolBar();
      this.map.plugin(toolbar);
    });
  }

  loadMap() {
    this.map = new AMap.Map('container', {
      resizeEnable: true,
      //mapStyle:'normal',  地图类型: normal  dark  blue_night  fresh  light
      zoom: 15,
      center: [113.400675, 22.88816]
    });

    function refresh(e) {
      this.map.setMapStyle("dark");
    };

    //创建并添加工具条控件AMap.plugin
    this.map.plugin(['AMap.ToolBar'], function () {
      this.map.addControl(new AMap.ToolBar());
    });

    //创建高级信息窗体并在指定位置打开
    this.map.plugin(['AMap.AdvancedInfoWindow'],function(){
      var infowindow = new AMap.AdvancedInfoWindow({
        content: '<div class="info-title">高德地图</div><div class="info-content">'+
            '<img src="http://webapi.amap.com/images/amap.jpg">'+
            '高德是中国领先的数字地图内容、导航和位置服务解决方案提供商。<br>'+
            '<a target="_blank" href="http://mobile.amap.com/">点击下载高德地图</a></div>',
        offset: new AMap.Pixel(0, -30)
      });
      infowindow.open(this.map, this.map.getCenter());//[116.480983, 39.989628]);
    });

    let marker = new AMap.Marker({
      position: this.map.getCenter(),
      draggable: true,
      cursor: 'move'
    });

    marker.setLabel({
      offset: new AMap.Pixel(20, 20),//修改label相对于maker的位置
      content: "华科尔科技有限公司"
    });

    marker.on('click',function(e){
      marker.markOnAMAP({
        name:'华科尔科技',
        position:marker.getPosition()
      })
    });

    //marker.content='华科尔科技有限公司'+this.map.getCenter(); 
    //marker.on('click', markerClick); //绑定单击事件

    marker.setMap(this.map);
    // 设置点标记的动画效果,此处为弹跳效果
    marker.setAnimation('AMAP_ANIMATION_BOUNCE');

    function markerClick(e){
      var infoWindow = new AMap.InfoWindow();
      infoWindow.setContent(e.target.content);
      infoWindow.open(this.map, e.target.getPosition());
    };
  }

  goToHomePage() {
     //push another page onto the history stack
     //causing the nav controller to animate the new page in
     //this.navCtrl.push(HomePage);
     this.navCtrl.pop();
  }

}

5、

ionic run android                      //android真机/模拟器调试

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值