Thank you for the answer. I confirmed that the error was in angular-leaflet-directive too. I moved to angular-google-maps and then it works fine.
Nice job, you have found where the bug was... I will wait until some fix is done prior to go back to angular-leaflet-directive. Onq question : how would you do to get direct access to the map object if there are two leaflets object on the document ... 2014-05-15 17:04 GMT+02:00 Parker Woodworth <par...@jumpshell.com>: > I ran into a similar problem using the > angular-leaflet-directive<https://github.com/tombatossals/angular-leaflet-directive>module > (which it looks like you might be using as well?). While I haven't > had a chance to drill down into the source yet, it looks like the problem > is being caused by a watcher on the map location which becomes overwhelmed > (that is to say, too many digest cycles triggered) by the leaflet animation > when the map position is changed programatically. > > disabling the animation solves the problem (although it is not ideal that > this needs to be the solution). > > I haven't found a way to disable animation as a master setting yet, but I > was able to solve the problem for each particular center change event by > accessing the map object directly and using leaflet's built in .panTo() > function like so: > > leafletData.getMap().then(function(map) { > map.panTo([new_lat, new_long], {animate:false}) > }); > > here's<http://tombatossals.github.io/angular-leaflet-directive/examples/access-leaflet-object-example.html>an > example of how to access the map object directly (hint: you'll need to > import the leafletData module). > > hope this helps. > > > P > > On Friday, April 11, 2014 3:01:39 AM UTC-4, Sylvain M. wrote: >> >> Hi, >> >> I'm having trouble with angularJS and geolocation API (cordova app). >> >> >> $scope.GEOsucces=function(position) >> { >> var newpos ={ "lat": position.coords.latitude, "lng": >> position.coords.longitude, "altitude": position.coords.altitude }; >> var newcenter={ "lat": position.coords.latitude, "lng": >> position.coords.longitude, "zoom": 15 }; >> $scope.$emit('NEW_GPS',newpos, newcenter); >> >> return false; >> }; >> >> $scope.GEOerreur=function(err) >> { >> $log.info("GPS error..."); >> return false; >> }; >> >> $scope.$on("NEW_GPS", function(event, pos, centre) >> { >> $scope.$apply(function() >> { >> $scope.mytrace.path.p2.latlngs.push(pos); >> $scope.mytrace.centre.lat = centre.lat; >> $scope.mytrace.centre.lng = centre.lng; >> }); >> $log.info($scope.mytrace); >> }); >> >> GeoLoc = navigator.geolocation.watchPosition($scope.GEOsucces, >> $scope.GEOerreur, { maximumAge: 3000, timeout: 10000, enableHighAccuracy: >> true}); >> >> It works for a while and then I get the following error : >> >> http://errors.angularjs.org/1.2.12/$rootScope/infdig?p0=10& >> p1=%5B%5B%22fn%3…406%2C%5C%22zoom%5C%22%3A13%2C%5C% >> 22autoDiscover%5C%22%3Afalse%7D%22%5D%5D >> at http://127.0.0.1:1200/lib/ionic/js/ionic.bundle.js:7548:12 >> at Scope.$digest (http://127.0.0.1:1200/lib/ionic/js/ionic.bundle.js: >> 19339:19) >> at Scope.$apply (http://127.0.0.1:1200/lib/ionic/js/ionic.bundle.js: >> 19553:24) >> at safeApply (http://127.0.0.1:1200/bower_components/angular-leaflet- >> directive/dist/angular-leaflet-directive.min.js:32:11561) >> at Object.<anonymous> (http://127.0.0.1:1200/bower_ >> components/angular-leaflet-directive/dist/angular- >> leaflet-directive.min.js:31:21383) >> at o.Mixin.Events.fireEvent (http://127.0.0.1:1200/bower_ >> components/leaflet-dist/leaflet.js:6:5055) >> at o.Map.Keyboard.o.Handler.extend._onBlur ( >> http://127.0.0.1:1200/bower_components/leaflet-dist/leaflet.js:9:8418) >> at HTMLDivElement.t.(anonymous function).s [as _leaflet_blur13] ( >> http://127.0.0.1:1200/bower_components/leaflet-dist/leaflet.js:8:20284) >> ionic.bundle.js:16905 >> Uncaught Error: [$rootScope:infdig] 10 $digest() iterations reached. >> Aborting! >> Watchers fired in the last 5 iterations: [["fn: parentValueWatch; newVal: >> {\"lat\":43.468057820224466,\"lng\":3.715953826904297,\" >> zoom\":13,\"autoDiscover\":false}; oldV...<omitted>...5D >> ionic.bundle.js:7548 >> Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting! >> Watchers fired in the last 5 iterations: [["fn: parentValueWatch; newVal: >> {\"lat\":43.46768406520923,\"lng\":3.7128639221191406,\" >> zoom\":13,\"autoDiscover\":false}; oldVal: {\"lat\":43.468057820224466,\" >> lng\":3.715953826904297,\"zoom\":13,\"autoDiscover\":false}","center; >> newVal: {\"lat\":43.46768406520923,\"lng\":3.7128639221191406,\" >> zoom\":13,\"autoDiscover\":false}; oldVal: {\"lat\":43.468057820224466,\" >> lng\":3.715953826904297,\"zoom\":13,\"autoDiscover\":false}"],["fn: >> parentValueWatch; newVal: {\"lat\":43.468057820224466,\" >> lng\":3.715953826904297,\"zoom\":13,\"autoDiscover\":false}; oldVal: >> {\"lat\":43.46768406520923,\"lng\":3.7128639221191406,\" >> zoom\":13,\"autoDiscover\":false}","center; newVal: >> {\"lat\":43.468057820224466,\"lng\":3.715953826904297,\" >> zoom\":13,\"autoDiscover\":false}; oldVal: {\"lat\":43.46768406520923,\" >> lng\":3.7128639221191406,\"zoom\":13,\"autoDiscover\":false}"],["fn: >> parentValueWatch; newVal: {\"lat\":43.46768406520923,\" >> lng\":3.7128639221191406,\"zoom\":13,\"autoDiscover\":false}; oldVal: >> {\"lat\":43.468057820224466,\"lng\":3.715953826904297,\" >> zoom\":13,\"autoDiscover\":false}","center; newVal: >> {\"lat\":43.46768406520923,\"lng\":3.7128639221191406,\" >> zoom\":13,\"autoDiscover\":false}; oldVal: {\"lat\":43.468057820224466,\" >> lng\":3.715953826904297,\"zoom\":13,\"autoDiscover\":false}"],["fn: >> parentValueWatch; newVal: {\"lat\":43.468057820224466,\" >> lng\":3.715953826904297,\"zoom\":13,\"autoDiscover\":false}; oldVal: >> {\"lat\":43.46768406520923,\"lng\":3.7128639221191406,\" >> zoom\":13,\"autoDiscover\":false}","center; newVal: >> {\"lat\":43.468057820224466,\"lng\":3.715953826904297,\" >> zoom\":13,\"autoDiscover\":false}; oldVal: {\"lat\":43.46768406520923,\" >> lng\":3.7128639221191406,\"zoom\":13,\"autoDiscover\":false}"],["fn: >> parentValueWatch; newVal: {\"lat\":43.46768406520923,\" >> lng\":3.7128639221191406,\"zoom\":13,\"autoDiscover\":false}; oldVal: >> {\"lat\":43.468057820224466,\"lng\":3.715953826904297,\" >> zoom\":13,\"autoDiscover\":false}","center; newVal: >> {\"lat\":43.46768406520923,\"lng\":3.7128639221191406,\" >> zoom\":13,\"autoDiscover\":false}; oldVal: {\"lat\":43.468057820224466,\" >> lng\":3.715953826904297,\"zoom\":13,\"autoDiscover\":false}"]] >> >> Any help welcome... >> >> Best regards, >> >> Sylvain >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "AngularJS" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/f5MEcuBJQgM/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > angular+unsubscr...@googlegroups.com. > To post to this group, send email to angular@googlegroups.com. > Visit this group at http://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to angular+unsubscr...@googlegroups.com. To post to this group, send email to angular@googlegroups.com. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.