Advertisement
Fhernd

app.component.ts

Mar 26th, 2018
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import { Component, OnInit } from "@angular/core";
  2. import * as dialogs from "tns-core-modules/ui/dialogs";
  3. import { HttpClient, HttpHeaders, HttpResponse } from "@angular/common/http";
  4. import "rxjs/add/operator/map";
  5. import "rxjs/add/operator/do";
  6.  
  7. import {isEnabled, enableLocationRequest, getCurrentLocation, watchLocation, distance, clearWatch} from 'nativescript-geolocation'
  8.  
  9. import {Universidad} from './universidad.model';
  10. import {Ubicacion} from './ubicacion.model';
  11.  
  12. @Component({
  13.   selector: "my-app",
  14.   templateUrl: './app.component.html',
  15.   styleUrls: ['./app.component.css']
  16. })
  17. export class AppComponent implements OnInit {
  18.  
  19.   ngOnInit(): void {
  20.     enableLocationRequest(true).then(() => {
  21.       console.log("*** SE OBTUVO LA LOCALIZACION");
  22.     });
  23.   }
  24.   public nombre = 'California';
  25.   public API_URL: string = "http://universities.hipolabs.com/search";
  26.   public resultados : Array<Universidad> = [];
  27.   public miUbicacion : Ubicacion = {
  28.     latitud: 0,
  29.     longitud: 0,
  30.     zoom: 0,
  31.     bearing: 0,
  32.     tilt: 0,
  33.     padding: [40, 40, 40, 40]
  34.   };
  35.  
  36.   constructor(private http: HttpClient) {
  37.   }
  38.  
  39.   buscar() {
  40.  
  41.     if (!this.nombre) {
  42.       var options = {
  43.         title: "Oh... oh!",
  44.         message: "Escribe un nombre a buscar.",
  45.         okButtonText: "OK"
  46.       };
  47.       dialogs.alert(options);
  48.  
  49.       return;
  50.     }
  51.  
  52.     var headers = new HttpHeaders();
  53.     headers.append("Content-Type", 'application/json');
  54.  
  55.     this.http.get(this.API_URL + "?name=" + this.nombre, {responseType: 'json'})
  56.       .map(response => response)
  57.       .subscribe((resultado) => {
  58.  
  59.         this.resultados = [];
  60.  
  61.         var json = JSON.parse(JSON.stringify(resultado));
  62.  
  63.         for(var i = 0; i < json.length; ++i){
  64.           this.resultados.push(new Universidad(json[i]['state-province'], json[i].alpha_two_code, json[i].country, json[i].name));
  65.         }
  66.       }, (error) => {
  67.         var options = {
  68.           title: "Oh... vaya!",
  69.           message: "Un error en la solicitud acaba de ocurrir. Intente de nuevo.",
  70.           okButtonText: "OK"
  71.         };
  72.         dialogs.alert(options);
  73.       });
  74.   }
  75.  
  76.   buscarPorUbicacion(){
  77.     if(!isEnabled()){
  78.       enableLocationRequest();
  79.     }
  80.  
  81.     getCurrentLocation({desiredAccuracy: 3})
  82.       .then(location => {
  83.         this.miUbicacion= {
  84.           latitud: location.latitude,
  85.           longitud: location.longitude,
  86.           zoom: 8,
  87.           bearing: 0,
  88.           tilt: 0,
  89.           padding: [40, 40, 40, 40]
  90.         };
  91.  
  92.         this.http.get("http://api.geonames.org/findNearbyPlaceNameJSON?username=larry&lat=" + this.miUbicacion.latitud + "&lng=" + this.miUbicacion.longitud)
  93.           .map(res => res)
  94.           .subscribe(resultado => {
  95.             console.log(resultado['geonames'][0].countryName);
  96.           });
  97.       }, error => {
  98.         var options = {
  99.           title: "Oh... vaya!",
  100.           message: "Problema para obtener tu ubicación actual. ",
  101.           okButtonText: "OK"
  102.         };
  103.         dialogs.alert(options);
  104.       });
  105.   }
  106. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement