使用谷歌地图清空离子内容 - Ionic2

Posted

技术标签:

【中文标题】使用谷歌地图清空离子内容 - Ionic2【英文标题】:Empty ion-content with google-map - Ionic2 【发布时间】:2017-03-13 10:50:45 【问题描述】:

我正在 ionic2 中开发一个页面以处理谷歌地图。 但我的离子含量什么也没显示。我的html 页面包含以下代码:

<ion-header>
    <ion-navbar>
        <ion-title>text.title</ion-title>
    </ion-navbar>
</ion-header>

<ion-content>
  <div #map id="map"></div>  
</ion-content>

虽然我的ts 文件包含:

import  Component, ViewChild, ElementRef  from '@angular/core';
import  NavController, AlertController  from 'ionic-angular';
import  Recosh  from '../../providers/recosh';

declare var google;

@Component(
    selector: 'page-search',
    templateUrl: 'search.html'
)
export class SearchPage 

  @ViewChild('map') mapElement: ElementRef;
  map: any;
    text: any;

  constructor(public navCtrl: NavController, public recoshService: Recosh, public alertCtrl: AlertController) 
        this.text = 
            title   :   this.recoshService.getMessage(1),
        
  

  ionViewLoaded()
    this.loadMap();
  

  loadMap()
    console.log("loading maps...");
    let latLng = new google.maps.LatLng(-34.9290, 138.6010);

    let mapOptions = 
      center: latLng,
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    

    this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);

  

src/index.html 也有以下一行:

<script src="https://maps.google.com/maps/api/js?key=*************"></script>

当我开始我的 ionic2 项目 (ionic serve) 时,在加载页面时地图没有显示。

在 google API 上创建的密钥没有限制,它是通过我的活动 API Google Maps javascript API 完成的。

我认为这是 API 的问题,所以我添加了以下所有内容:

 Google Maps android API
 Google Maps Directions API
 Google Maps Geocoding API
 Google Maps Geolocation API
 Google Maps JavaScript API
 Google Maps SDK for ios
 Google Places API for Android
 Google Places API for iOS
 Google Places API Web Service

但我的页面仍然没有显示任何地图。

奇怪的是,我的 loadMap() 函数中的 console.log 没有显示在我的 Web 浏览器(chrome)的控制台中;所以似乎根本没有调用 loadMap...

我的应用程序中实际上有一些警告,但它们在进入页面之前出现:

【问题讨论】:

抱歉,我在您的 ionViewLoaded 和 loadMap 函数中没有看到 console.log。这种方式无法通过chrome控制台判断函数是否正在运行。 这只是一个例子,但我更新了问题以包含它。 很好,也许你的组件从未被调用过。你的html页面叫做search.html?你把页面搜索选择器放在哪里了? 它正在加载的页面本身,因为我可以看到它和标题,只是没有显示地图。如果我在 中写了一些东西,它也会显示出来。 app.modules.ts 设置正确。 嗯。您是否尝试使用 ngOnInit 而不是 ionViewLoaded? 【参考方案1】:

只需将地图组件放在 ion-content 之外

<ion-header>
<ion-navbar>
    <ion-title>text.title</ion-title>
</ion-navbar>
</ion-header>

<ion-content></ion-content>

<div #map id="map"></div>  

【讨论】:

以上是关于使用谷歌地图清空离子内容 - Ionic2的主要内容,如果未能解决你的问题,请参考以下文章

离子简单地图,没有谷歌

带有离子的谷歌地图

如何使用谷歌地图和离子设置航点行程

离子/科尔多瓦谷歌地图插件的问题

Ionic 3 原生谷歌地图限制地图移动/拖动/旋转选项

Ionic 2 谷歌地图标记点击