Hey, I just started contributing to Ember open source ecosystem and wanted to share my ember-addon with you.
I made HTML5 Geolocation implementation for Ember, because I needed to use Geolocation in my Ember web app and I found out that existing solutions were not complete enough and didn’t seem production-ready.
So I decided to write an easy-to-use and understandable wrapper for HTML5 Geolocation API with all the features needed to use it with Ember.
I will be happy to see you using it or contributing.
As I see you are using the example from dummy app inside the ember-cli-geo addon.
The
code above clearly gives geoObject which contains all data about user
geolocation and it also sets the user current coordinates to the
currentLocation property on the service.
So, you can use this in order to access user coordinates directly:
var that = this;
this.get('geolocation').getLocation().then(function(geoObject) {
that.get('geolocation').get('currentLocation'); // this will give you coordinates, which you can store to any variable you want or display, or assign to another controller/route property.
console.log("user coordinates are: " + that.get('geolocation').get('currentLocation')); // Use this to display coordinates in browser console
});
Also try console.log(geoObject); inside returned Promise to see what information the service returns about the user.
The service shouldn’t return you any value, it just lets you use geoObject
after the geolocation is determined or use currentLocation property on
service to retrieve user coordinates directly.
All specific functions to store or display geolocation wherever you need or want you should write yourself.
Also, I replied to your email, so please check it.
I tried to use this add-on, and this part of the instructions is not clear to me: “In order to use geolocation inside of your Ember.Route you should directly inject it to the one”.
What file does that code go in? Sorry, I’m very new to Ember.
this.geolocation.getLocation().then(function (geoObject) {
// var currentLocation = that.get(‘geolocation’).get(‘currentLocation’); // this will give you coordinates, which you can store to any variable you want or display, or assign to another controller/route property.
// console.log(currentLocation);
// console.log(
// 'user coordinates are: ’ +
// that.get(‘geolocation’).get(‘currentLocation’)
// ); // Use this to display coordinates in browser console
// this.controllerFor(‘geolocator’).set(‘userLocation’, currentLocation);
document.getElementById(‘geolocation’).innerHTML = /* currentLocation+ */'latitude : '+ geoObject.coords.latitude + ' longitude : ’ + geoObject.coords.longitude + ' timestamp : ’ + geoObject.timestamp + ‘ ’;
// setupController(controller, geolocator){
// super.setupController(controller, geolocator);
// this.controllerFor(‘geolocator’).set(‘userLocation’, currentLocation);
// }