Hvordan få besøkeres plassering ved bruk av Angular 2 eller TypeScript
Jeg begynte å bruke ServerVariables["HTTP_CF_IPCOUNTRY"] på backend-serveren, men det er for tregt, jeg trenger en Angular- eller TypeScript-løsning for dette.
Svar #1
Hvis du vil hente posisjon fra front-end siden, kan vi enkelt få posisjonen via JavaScript
var x = document.getElementById("demo");
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
x.innerHTML = "Geolocation is not supported by this browser.";
}
}
function showPosition(position) {
x.innerHTML = "Latitude: " + position.coords.latitude +
"<br>Longitude: " + position.coords.longitude;
}
Dette vil be brukeren fra nettleseren om å dele plasseringen, og det er gjort.
Mer detaljer.
I Angular 2 Component implementerer OnInit, legg den koden inne i ngOnInit
import { Component, OnInit } from '@angular/core';
export class LocationComponent implements OnInit {
ngOnInit(){
if(window.navigator.geolocation){
window.navigator.geolocation.getCurrentPosition(this.setPosition.bind(this));
};
}
}
}
Svar #2
Fant løsning ved å bruke Viveks eksempel.
ngOnInit() {
if (window.navigator && window.navigator.geolocation) {
window.navigator.geolocation.getCurrentPosition(
position => {
this.geolocationPosition = position,
console.log(position)
},
error => {
switch (error.code) {
case 1:
console.log('Permission Denied');
break;
case 2:
console.log('Position Unavailable');
break;
case 3:
console.log('Timeout');
break;
}
}
);
};
}
