geolocation-8.x-3.x-dev/js/MapCenter/ClientLocation.js

js/MapCenter/ClientLocation.js
import { GeolocationMapCenterBase } from "./GeolocationMapCenterBase.js";
import { GeolocationCoordinates } from "../Base/GeolocationCoordinates.js";

/**
 * @prop {float} settings.initial_longitude
 * @prop {float} settings.initial_latitude
 * @prop {boolean} settings.follow_client
 */
export default class ClientLocation extends GeolocationMapCenterBase {
  setCenter() {
    super.setCenter();

    this.map.setCenterByCoordinates(new GeolocationCoordinates(this.settings.initial_latitude, this.settings.initial_longitude));

    if (!navigator.geolocation) {
      return false;
    }

    navigator.geolocation.getCurrentPosition((position) => {
      this.map.setCenterByCoordinates(new GeolocationCoordinates(position.coords.latitude, position.coords.longitude));
    });

    if (this.settings.follow_client) {
      setInterval(() => {
        navigator.geolocation.getCurrentPosition((position) => {
          this.map.setCenterByCoordinates(new GeolocationCoordinates(position.coords.latitude, position.coords.longitude));
        });
      }, 20000);
    }

    return true;
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc