全栈工程师_java全栈工程师_全栈开发者学习经验总结

  • 首页
  • 开发工具
    • 软件安装
    • 软件使用
  • 前端
    • Ionic
    • Android
    • Capacitor
    • Angular
    • Vue
    • 苹果开发者账号
  • 后端
    • Java
    • Python
    • MyBatis
    • Spring
    • SpringBoot
    • SpringMVC
    • SpringCloud
  • 服务器
    • Linux
    • MySQL
    • Nginx
    • Tomcat
    • Docker
  • 其他
    • 生活碎片
    • 报错专区
  • 我
lipsuper
专注产出高质量原创手打文章
  1. 首页
  2. 前端
  3. Ionic
  4. 正文

在Ionic上通过百度地图来定位当前城市,获取城市名称

2020年9月6日 628点热度 0人点赞 4条评论

在我们很多实际的项目中,都需要定位用户当前所处的城市来获取一些个性化的服务,接下来我就带领大家通过百度地图开放平台提供的服务来完成这个功能。

 

获取百度地图开放平台提供的能力

百度地图开放平台的网址是:http://lbsyun.baidu.com/

在开放平台的控制台里面,创建自己的应用,然后就能得到一个AK,也就是AccessKey。这里不讨论步骤了。

 

集成百度地图到我们的应用中

把下面这段代码添加到你项目index.html文件的头部,记得把这里的"你的密钥"换成你自己申请的AK密钥。

<script type="text/javascript" src="http://api.map.baidu.com/api?v=3.0&ak=您的密钥"></script>

然后在需要使用定位的页面的ts文件中编写如下的代码,我这里放在tab3.page.ts这个页面中,我就直接把全部的代码放在下面了:

import { Component, OnInit } from '@angular/core';
declare var BMap;

@Component({
  selector: 'app-tab3',
  templateUrl: 'tab3.page.html',
  styleUrls: ['tab3.page.scss']
})
export class Tab3Page implements OnInit{
  // 城市名称
  public cityName: string;

  constructor() {}

  ngOnInit() {
    const myCity = new BMap.LocalCity();
    myCity.get((result: any) => {
    this.cityName = result.name;
    // 在控制台打印出城市名称
    console.log(this.cityName);
    });
  }
}

实际的代码是非常简单的,核心代码我都放在了ngOnInit里面,你可以按照自己的需要来放置。

 

为了更直观的看见效果我在tab3.page.html中绑定了cityName,刷新页面就可以看到当前城市名称了,代码如下:

<ion-header [translucent]="true">
  <ion-toolbar>
    <ion-title>
      Tab 3
    </ion-title>
  </ion-toolbar>
</ion-header>

<ion-content [fullscreen]="true">
  <ion-label>当前城市:{{cityName}}</ion-label>
</ion-content>

 

实现效果

当我刷新页面,重新进入页面的时候,控制台打印出了我当前的城市名称,页面上也展示出了我的城市名称:

ionic城市定位效果展示

 

 

总结

总的来说实现起来很简答。关键就是要去申请百度的那个AK,然后别的都简单。如果你遇到了什么问题,不要责怪我,请立即与我联系,我来帮你解决。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 干货
最后更新:2020年9月6日

lipsuper

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • 匿名

    Vue3+ionic5的定位咋整

    2021年4月19日
    回复
    • lipsuper

      @匿名 我没用过Vue,但定位这块儿应该差不多的吧

      2021年4月22日
  • 路人

    请问如何获取当前的街道位置,就例如
    xx市xx区xx街道xxxxx
    之类的地址。
    还有个问题就是
    ERROR Error: Uncaught (in promise): ReferenceError: BMap is not defined
    这个错咋整

    2021年4月20日
    回复
    • lipsuper

      @路人 我这种定位方式是IP定位,最多只能精确到城市,详见百度地图官方文档http://lbsyun.baidu.com/index.php?title=jspopular3.0/guide/geolocation

      2021年4月22日
  • 取消回复

    COPYRIGHT © 2021 lipsuper.com. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    渝ICP备2021004735号-1

    渝公网安备 50011202502306号