美文网首页ionic2实战ionic3+
ionic2实战-使用高德地图javascript api

ionic2实战-使用高德地图javascript api

作者: 昵称已被使用_ | 来源:发表于2017-02-25 14:52 被阅读4628次

前言

  • 这里注册成为高德个人开发者并登录高德开放平台
  • 如下图,高德地图API分web端、Android平台、IOS平台,还不熟悉高德开发平台的同学请先花半天时间浏览一下
  • 本博文主讲在app上使用web端api,如果需要精确定位和导航功能可以看这里
  • 特别强调:在做ionic App使用使用高德地图功能时,只有定位和导航需要使用高德android和ios api,其余的地图功能均使用avascript api.由于已有封装好的定位和导航插件,所以基本上只需要熟读javascript api就够了,点这里查看高德javascript api示例

申请key

  • 必看JavaScript API入门指南
  • 控制台申请web端key,点击控制台右上角的创建应用按钮,创建一个应用,应用名一般和项目名相同,然后在添加一个__web端__key,如下图
    创建一个应用
    添加一个web端key
    生成了web端key

在app上添加地图

  1. 复制如下代码到appindex.html页面的<head>标签中,如下图
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.3&key=你申请的高德地图web端key"></script>
  • 在一个.html创建一个div
<ion-content>
  <div #map_container class="map_container"></div>
</ion-content>
页面上添加有一个div
  • 设置div宽高为100%
page-home {
  .map_container {
    width: 100%;
    height: 100%;
  }
}
设置div宽高为100%
  • 如下图,创建对图对象

      import {Component, ViewChild, ElementRef} from '@angular/core';
    
      declare var AMap;
    
      @Component({
        selector: 'page-home',
        templateUrl: 'home.html'
      })
      export class HomePage {
        @ViewChild('map_container') map_container: ElementRef;
        map: any;//地图对象
    
        constructor() {
        }
    
        ionViewDidEnter() {
          this.map = new AMap.Map(this.map_container.nativeElement, {
            view: new AMap.View2D({//创建地图二维视口
              zoom: 11, //设置地图缩放级别
              rotateEnable: true,
              showBuildingBlock: true
            })
          });
        }
    
      }
    
创建对图对象
  • 执行ionic serve启动app,就可以看到地图啦
    显示地图

完善地图

  • 完善后的app如下图,完整代码已上传至github
    完善后的功能.gif

相关文章

网友评论

  • ec7154608c72:大佬,你这个运行在手机上用流量定位的时候会出现较大的偏差怎么弄呢,用wifi定位的话就挺准的
    昵称已被使用_:@ec7154608c72 流量在室内定位是不准,在室外还行吧,一般偏差大概在30米内,除非是在信号不好的地方。可以和高德地图app定位对比下
  • 6ed7cdfa16f0:大神大神,目前要实现一个定时向后台发送用户位置的功能,有什么比较好的思路麽?还请大神多多指教,感谢~
    6ed7cdfa16f0:@小军617 好的 谢谢
    昵称已被使用_:@C_ceab setTimeout
  • eff0f6ac4817:没有执行document.addEventListener('deviceready', function(){
    window.LocationPlugin.getLocation(successCallback,errorCallback);
    }, false);
    是插件没有插上吗?
  • 9cfca6cadad0:楼主,楼主,我
    showCityInfo() {
    //实例化城市查询类
    var citysearch = new AMap.CitySearch();
    //自动获取用户IP,返回当前城市
    citysearch.getLocalCity(function(status, result) {
    if (status === 'complete' && result.info === 'OK') {
    if (result && result.city && result.bounds) {
    var cityinfo = result.city;
    var citybounds = result.bounds;
    this.city=cityinfo; //这里出错
    console.log(cityinfo);
    }
    } else {

    }
    });
    会报错 然后我在外面console.log(this.city);
    控制台报的是undefined,就是城市定位取不出来
    我取经纬度lnglat也是取不出来。
    ionic 高德地图 请问楼主怎么解决
  • f7da14019c0d:小军,你好,你这个例子真的很好,先谢谢。参考你的程序尤其providers下封装功能,做了简单的数据展示和提交。安卓和苹果本来都没有问题,但提交appstore审核,报错如下:

    We discovered one or more bugs in your app when reviewed on iPhone running iOS 11.3 on Wi-Fi connected to an IPv6 network.
    We were not able to fully load your app content after launch.
    Please see attached screenshots for details.

    审核截屏就是白屏,我用mac的ipv6热点试了确实app打开就是黑屏(启动广告都没出来)。苹果ipv4下没有任何问题,安卓都没有问题。

    个人猜测angular/http不支持IPV6? 请多多指教,感谢!
    昵称已被使用_:@卍解 我猜你app应该是用第三方的sdk,你可以删除第三方sdk插件测试试试。如极光推送插件
  • ce597d91726f:你好,楼主,我想问一下你,具体实现的步骤在GitHub上我没找到。
    ce597d91726f:@小军617 谢谢楼主
    昵称已被使用_:http://yanxiaojun.me/ionic2_tabs/dist/index.html
    在这里>我的>工作地图看demo
    昵称已被使用_:https://github.com/yanxiaojun617/ionic2_tabs/blob/master/src/shared/map-component/map-location/map-location.html
  • 87c87c5475a3:楼主,非常感谢,最近学习ionic基本都是跟着你的demo走的,太有用了。
    昵称已被使用_:@十二月二十号 :+1:
  • bebd89445c90:大神,求完整地图源码下载地址:pray:
    昵称已被使用_:@晨枫_bc96 https://github.com/yanxiaojun617/ionic2_tabs/
  • 204de2c5fa00:@小军617 您好 我想请问一下 我只要用到驾车或者步行 刚刚进去导航页面就不对,我的定位对,搜索对;我没用到极光,把storage中的话也注册了 ,可是还是闪退??您知道为什么吗?
    昵称已被使用_:@微风拂面513 :sweat: https://github.com/yanxiaojun617/ionic2_tabs/跑我的项目
    204de2c5fa00:@小军617 我建立了一个新的项目 项目里就有它 也是闪退
    昵称已被使用_:@微风拂面513 建议你搞个空白项目,只添加定位和导航功能,看是否有毛病
  • 1d91211faa62:楼主,我想知道怎么在providers文件里面创建一个全局的API
    昵称已被使用_:能说具体点么
  • DONG999:咨询下,输入任意地址后, 如何获得地图上的地址的坐标呢
    我用百度, 没能实现
    9cfca6cadad0:楼主,楼主,我
    showCityInfo() {
    //实例化城市查询类
    var citysearch = new AMap.CitySearch();
    //自动获取用户IP,返回当前城市
    citysearch.getLocalCity(function(status, result) {
    if (status === 'complete' && result.info === 'OK') {
    if (result && result.city && result.bounds) {
    var cityinfo = result.city;
    var citybounds = result.bounds;
    this.city=cityinfo; //这里出错
    console.log(cityinfo);
    }
    } else {

    }
    });
    会报错 然后我在外面console.log(this.city);
    控制台报的是undefined,就是城市定位取不出来
    我取经纬度lnglat也是取不出来。
    ionic 高德地图 请问楼主怎么解决
    DONG999:@小军617 谢谢
    昵称已被使用_:http://lbs.amap.com/api/javascript-api/example/geocoder/geocoding
  • 清丶虹:博主,你这个app添加android平台的时候好像有点问题,不能在真机运行
  • 会飞的tiger:弄了一天,一步一步的按照你的文章,始终报错,说key错误,实在不清楚key哪里错了。。。
    昵称已被使用_:高德地图key有4种,web端,android端,ios端和静态地图key
    本文申请web端key,填到index.html.如果申请android key则需要填在插件plugin.xml中.plugins/com.kit.cordova.amaplocation/plugin.xml
    所以,你不要搞混了
  • 4d8fda9280a0:为什么我下载下来用不了 同事的可以
  • 来日可期_久:请问 您用高德地图api 有碰到过 map is not defined 这个问题吗 ???
    Kathy丶Andy:@WAWAWAW <script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key="; "&plugin=AMap.Geocoder"></script>
    你看你加这句话没 &plugin=AMap.Geocoder"
    昵称已被使用_:@Kathy丶Andy 是因为index.html没有引入高德地图api吗?
    看这里18行https://github.com/yanxiaojun617/ionic2_tabs/blob/master/src/index.html
    Kathy丶Andy:你的这个问题解决了么
  • 想嘟:多操作一会就会出现内存爆满闪退问题,有解决办法吗?
    昵称已被使用_::disappointed_relieved: 现在还有问题吗
  • summerhe:我把这个demo下载下来,运行了npm install ,安装好依赖包后,运行ionic serve 报错了,错误如下:Typescript Error
    Module '"C:/Users/summer/Desktop/ionic2_tabs-master/node_modules/@ionic-native/core/index"' has no exported member 'IonicNativePlugin'.
    ...mer/Desktop/ionic2_tabs-master/node_modules/@ionic-native/app-version/index.d.ts
    import { IonicNativePlugin } from '@ionic-native/core';
    昵称已被使用_:直接运行没问题的,那你试试用cnpm install安装依赖
    summerhe:需要重新编译@ionic-native?
  • 世界这么大_我只想看你:用的什么开发工具呢
    昵称已被使用_:@世界这么大_我只想看你 我用的是webstorm
    去官网下载http://www.jetbrains.com/webstorm/
    在这里获取破解码http://idea.lanyus.com/
  • 西山侠客:不错,学习了
    昵称已被使用_: @冯昌伟 ~(*+﹏+*)~

本文标题:ionic2实战-使用高德地图javascript api

本文链接:https://www.haomeiwen.com/subject/znagwttx.html