Google map С маркером текущего местоположения в Ionic 3 - PullRequest
0 голосов
/ 02 февраля 2019

Я создаю приложение, в котором я хочу использовать карту Google, и я использую ионную версию 3.20.1 и Cordova версии 8.xx

Я хочу использовать API-интерфейс JavaScript Java Maps Google и сделать свою картуПохоже, что это выглядит на большинстве приложений.снимки экрана - что я хочу построить 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 голосов
/ 05 февраля 2019

Посмотрите Справочник по API Карт Google в разделе Сложные значки здесь: https://developers.google.com/maps/documentation/javascript/markers#complex_icons

Вы можете установить собственный маркер со значком SVG, который является синей точкой.Вот пример из предыдущего проекта Ionic, который требовал пользовательский значок для местоположения пользователя.Обратите внимание, что SVG - это не весь файл, а только информация о пути.Я думаю, что вы также можете ссылаться на полный файл SVG по URL (см. Ссылку).В этом примере путь 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
});
...