2017-02-28 71 views
0

在Ionic2我使用休耕代码加载页面时加载的标记,但它显示错误:由如何在页面加载离子2时自动加载地图标记?

ionViewDidEnter(){ 
    this.Marker(); 
} 

view-controller.js:471 MapPage ionViewDidEnter error: Cannot read property 'getCenter' of null

更新1

initializeMap() { 

let minZoomLevel = 16; 
Geolocation.getCurrentPosition().then((position) => { 
this.map = new google.maps.Map(document.getElementById('map_canvas'), { 
zoom: minZoomLevel, 
center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude), 
mapTypeControl: false, 
streetViewControl: false, 
disableDefaultUI: true, 
mapTypeId: google.maps.MapTypeId.ROADMAP 
}); 
var trafficLayer = new google.maps.TrafficLayer(); 
     trafficLayer.setMap(this.map); 
    }); 
Marker(){ 
    let source = "origin"; 
    let image = 'assets/img/Untitled-1.png'; 
    let marker = new google.maps.Marker({  
    map: this.map, 
    animation: google.maps.Animation.DROP, 
    position: this.map.getCenter(), 
    draggable: true 
    , icon: image 
    }); 
    this.lastLatLng(marker,source); 
} 

在此代码我打电话marker()截图在@ Rohit-kumar-vinay要求: enter image description here

回答

0

,我不得不做的唯一的事情是,呼叫this.Marker();Geolocation.getCurrentPosition()函数的末尾。非常感谢Josh Morony

1

您可以使用OnInit@angular/core

  1. 进口OnInint

    import { Component, OnInit } from '@angular/core'; 
    import { Geolocation } from 'ionic-native'; 
    
  2. 实现出口类

    export class WelcomePage implements OnInit { 
        map:any 
    } 
    
  3. 实现功能

    ngOnInit() { 
        this.map = this.initMap(); 
    } 
    
    initMap(): Promise<void> { 
    let promise: Promise<void> = new Promise<void>((resolve, reject) => { 
    Geolocation.getCurrentPosition().then((position) => { 
    
    let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
    let GooleMap = new google.maps.Map(document.getElementById('map'), { 
        center: latLng, 
        zoom: 18 
    }); 
    let marker = new google.maps.Marker({ 
        position: latLng, 
        map: GooleMap, 
        title: 'My Location', 
    }); 
    }); 
    }); 
    return promise; 
    } 
    

请按照以下Uber应用克隆链接使用ionic2 Youtube Link/ Github Link

+0

tnx,但它显示'loadingCtrl'和'this.map = this.initMap();'的错误 – RSA

+0

我已经知道了,但是这行还是有一个错误:'this.map = this.initMap();'并且键入promise 不可分配。 – RSA

+0

可以发送控制台截图吗? –

相关问题