带有Ionic 3中当前位置标记的Google地图

时间:2019-02-02 12:01:56

标签: google-maps-api-3 ionic3

我正在构建一个要使用Google Map的应用程序,并且我使用的是离子版本3.20.1和科尔多瓦版本8.xx

我想使用Google Maps Java脚本API,并使我的地图看起来像在大多数应用程序上一样。 屏幕截图- 我要建立的i want it to be like this 我能够建立的this is where i reached

我的地图.html文件看起来

<ion-header>
  <ion-navbar>
    <ion-title>
      Map
    </ion-title>
    <ion-buttons end>
      <button ion-button (click)="addMarker()"><ion-icon name="add"></ion- 
icon>Add Marker</button>
    </ion-buttons>  
  </ion-navbar>
</ion-header>

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

我的map.ts文件是

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

declare var google;

@IonicPage()
@Component({
  selector: 'page-google-map',
  templateUrl: 'google-map.html',
})
export class GoogleMapPage {
  @ViewChild('map') mapElement: ElementRef;
  map: any;

  constructor(public navCtrl: NavController, public navParams: 
NavParams,public geolocation: Geolocation) {
  }

  ionViewDidLoad() {
    console.log('ionViewDidLoad GoogleMapPage');
    this.loadMap();
  }

  loadMap(){

this.geolocation.getCurrentPosition().then((position) => {

  let latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);

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

  this.map = new google.maps.Map(this.mapElement.nativeElement, mapOptions);
  this
}, (err) => {
  console.log(err);
});

  }
      addMarker(){

    let marker = new google.maps.Marker({
      map: this.map,
      animation: google.maps.Animation.DROP,
      position: this.map.getCenter()
    });

    let content = "<h4>Information!</h4>";          

    this.addInfoWindow(marker, content);

  }
      addInfoWindow(marker, content){

    let infoWindow = new google.maps.InfoWindow({
      content: content
    });

    google.maps.event.addListener(marker, 'click', () => {
  infoWindow.open(this.map, marker);
    });

  }
 }

我强烈需要显示当前位置的蓝点

1 个答案:

答案 0 :(得分:1)

https://developers.google.com/maps/documentation/javascript/markers#complex_icons

的“复杂图标”下查看Google Maps API参考。

您可以使用带有蓝点的SVG图标设置自定义标记。这是来自上一个Ionic项目的示例,该项目需要一个用于用户位置的自定义图标。注意,SVG并不是整个文件,而只是路径信息。我认为您也可以通过URL引用完整的SVG文件(请参阅参考资料)。在此示例中,SVG路径不是点。

var myLocationIcon = {
  path: 'M11 11l1.256 5 3.744-10-10 3.75 5 1.25zm1-11c-5.522 0-10 4.395-10 9.815 0 5.505 4.375 9.268 10 14.185 5.625-4.917 10-8.68 10-14.185 0-5.42-4.478-9.815-10-9.815zm0 18c-4.419 0-8-3.582-8-8s3.581-8 8-8 8 3.582 8 8-3.581 8-8 8z',
  scale: 1,
  fillColor: '#3a84df'
};

var marker = new google.maps.Marker({
  map: map,
  animation: google.maps.Animation.DROP,
  position: latlng,
  icon: myLocationIcon
});