Как отобразить переменные в ионном интерфейсе с помощью Cordova-Advanced.Geolocation и как показать местоположение ячейки сети на карте - PullRequest
0 голосов
/ 12 июня 2019

У меня проблема с Ionic (5.0.1) и Angular.Я хотел бы визуализировать некоторые java-переменные на домашней странице, переменные касаются информации о локализации или о некоторых параметрах сетевых ячеек.Я нашел пример того, как установить плагин «Cordova AdvancedGeolocation», но я могу только просматривать карту по умолчанию, на самом деле я хотел бы получить доступ к переменным плагина для отображения во внешнем интерфейсе.

Я использую этот кодв app.component.ts, а затем я изменяю config.xml и, наконец, я помещаю «sample-map.html» в поле src.

Я вижу карту с расположением GPS и сети, но я неНе понимаю, как я мог иметь доступ к переменным Java и отображать их в front-end.

Большое спасибо.

    import { Component, NgZone } from '@angular/core';

import { Platform } from '@ionic/angular';
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
import { StatusBar } from '@ionic-native/status-bar/ngx';
import { Geolocation, Geoposition } from '@ionic-native/geolocation/ngx';


@Component({
  selector: 'app-root',
  templateUrl: 'app.component.html'
})
export class AppComponent {


  AdvancedGeolocation: any;
  currentLat: any;
  currentLng: any;
  watch: any;


  constructor(
    private platform: Platform,
    private splashScreen: SplashScreen,
    private statusBar: StatusBar,
    // tslint:disable-next-line: no-shadowed-variable
    private zone : NgZone,
    private geolocation: Geolocation
  ) {
    this.initializeApp();
  }

  initializeApp() {
    this.platform.ready().then(() => {
      this.statusBar.styleDefault();
      this.splashScreen.hide();
      if (this.platform.is('android')) {
        this.platform.ready().then(() => {
          this.AdvancedGeolocation.start((success) => {
            //loading.dismiss();
            // this.refreshCurrentUserLocation();
            try {
              var jsonObject = JSON.parse(success);
              console.log("Provider " + JSON.stringify(jsonObject));
              switch (jsonObject.provider) {
                case "gps":
                  console.log("setting gps ====<<>>" + jsonObject.latitude);

                  this.currentLat = jsonObject.latitude;
                  this.currentLng = jsonObject.longitude;
                  break;

                case "network":
                  console.log("setting network ====<<>>" + jsonObject.latitude);

                  this.currentLat = jsonObject.latitude;
                  this.currentLng = jsonObject.longitude;

                  break;

                case "satellite":
                  //TODO
                  break;

                case "cell_info":
                  //TODO
                  break;

                case "cell_location":
                  //TODO
                  break;

                case "signal_strength":
                  //TODO
                  break;
              }
            }
            catch (exc) {
              console.log("Invalid JSON: " + exc);
            }
          },
            function (error) {
              console.log("ERROR! " + JSON.stringify(error));
            },
            {
              "minTime": 500,         // Min time interval between updates (ms)
              "minDistance": 1,       // Min distance between updates (meters)
              "noWarn": true,         // Native location provider warnings
              "providers": "all",     // Return GPS, NETWORK and CELL locations
              "useCache": true,       // Return GPS and NETWORK cached locations
              "satelliteData": false, // Return of GPS satellite info
              "buffer": false,        // Buffer location data
              "bufferSize": 0,         // Max elements in buffer
              "signalStrength": false // Return cell signal strength data
            });

        });
      } else {

        // **For IOS**

        let options = {
          frequency: 1000,
          enableHighAccuracy: false
        };

        this.watch = this.geolocation.getCurrentPosition({ enableHighAccuracy: true }).then((resp) => {
          console.log("current location at login" + JSON.stringify(resp.coords));

            // Run update inside of Angular's zone
            this.zone.run(() => {
              this.currentLat = resp.coords.latitude;
              this.currentLng = resp.coords.longitude;
            });

        }, Error => {
          console.log(Error);
        }).catch(Error => {
          console.log(Error);
        }) ;
      }
    });
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...