2017-03-08 75 views
4

我正在使用googleMaps和我的ionic2应用程序。我正在使用离子本地lib.I迄今已经实施了很多业务,现在我正在尝试使用Google路线服务找到两点之间的路线。但我找不到任何样本或我可以从哪里开始。任何想法或样本都完全赞赏。GoogleMaps使用离子本地方向的服务

+0

你找到一个合适的解决方案? – f0rza

回答

2

Cordova尚未实施Directions-Service,因此在Ionic中不易使用。

下面是一个例子,如何使用它的另一种方式:

打开并编辑“的src/index.html”,则body标签结束前添加此脚本引用。

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

我假设你知道如何从google API控制台创建YOUR-API-KEY。

接下来,打开并编辑'src/pages/home/home.html',然后用这行代码替换'ion-content'内的所有标签。

<ion-content> 
    <div id="floating-panel"> 
    <b>Start: </b> 
    <select [(ngModel)]="start" id="start" (change)="calculateAndDisplayRoute()"> 
     <option value="chicago, il">Chicago</option> 
     <option value="st louis, mo">St Louis</option> 
     <option value="joplin, mo">Joplin, MO</option> 
     <option value="oklahoma city, ok">Oklahoma City</option> 
     <option value="amarillo, tx">Amarillo</option> 
     <option value="gallup, nm">Gallup, NM</option> 
     <option value="flagstaff, az">Flagstaff, AZ</option> 
     <option value="winona, az">Winona</option> 
     <option value="kingman, az">Kingman</option> 
     <option value="barstow, ca">Barstow</option> 
     <option value="san bernardino, ca">San Bernardino</option> 
     <option value="los angeles, ca">Los Angeles</option> 
    </select><br> 
    <b>End: </b> 
    <select [(ngModel)]="end" id="end" (change)="calculateAndDisplayRoute()"> 
     <option value="chicago, il">Chicago</option> 
     <option value="st louis, mo">St Louis</option> 
     <option value="joplin, mo">Joplin, MO</option> 
     <option value="oklahoma city, ok">Oklahoma City</option> 
     <option value="amarillo, tx">Amarillo</option> 
     <option value="gallup, nm">Gallup, NM</option> 
     <option value="flagstaff, az">Flagstaff, AZ</option> 
     <option value="winona, az">Winona</option> 
     <option value="kingman, az">Kingman</option> 
     <option value="barstow, ca">Barstow</option> 
     <option value="san bernardino, ca">San Bernardino</option> 
     <option value="los angeles, ca">Los Angeles</option> 
    </select> 
    </div> 
    <div #map id="map"></div> 
</ion-content> 

打开并编辑'src/pages/home/home.ts',然后用此代码替换所有代码。

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

declare var google; 

@IonicPage() 
@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class HomePage { 

    @ViewChild('map') mapElement: ElementRef; 
    map: any; 
    start = 'chicago, il'; 
    end = 'chicago, il'; 
    directionsService = new google.maps.DirectionsService; 
    directionsDisplay = new google.maps.DirectionsRenderer; 

    constructor(public navCtrl: NavController) { 

    } 

    ionViewDidLoad(){ 
    this.initMap(); 
    } 

    initMap() { 
    this.map = new google.maps.Map(this.mapElement.nativeElement, { 
     zoom: 7, 
     center: {lat: 41.85, lng: -87.65} 
    }); 

    this.directionsDisplay.setMap(this.map); 
    } 

    calculateAndDisplayRoute() { 
    this.directionsService.route({ 
     origin: this.start, 
     destination: this.end, 
     travelMode: 'DRIVING' 
    }, (response, status) => { 
     if (status === 'OK') { 
     this.directionsDisplay.setDirections(response); 
     } else { 
     window.alert('Directions request failed due to ' + status); 
     } 
    }); 
    } 

} 

Reference Link

+0

为什么downvotes? – rubenlop

+0

您可以使用本机进行无限制的API调用,但JS每天仅允许2500次 –