Cannot assign component variable value inside geocode function

Multi tool use
Multi tool use












-1














GetLocation(address: string) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
this.lat = results[0].geometry.location.lat();
this.lng = results[0].geometry.location.lng(); <== this.lat value is undefined
}
else {
alert("Something went wrong : " + status);
}
});
}


Here I cannot assign value of component level variable 'lat' and 'lng' inside the geocode function.
FYI: there are values in location object of result inside it, but after assigning the value it is still undefined I don't know why?










share|improve this question




















  • 1




    Why do you say results[0].location.lat() is undefined? Or are you saying this.lat is undefined once you leave the callback function? Please provide a Minimal, Complete, and Verifiable example that demonstrates your issue.
    – geocodezip
    Dec 28 '18 at 1:42










  • sorry for that, but yes {this.lat} is undefined after callback function is complete.! I am still stuck on it. Thanks in advance.!
    – amit poddar
    Dec 28 '18 at 10:35
















-1














GetLocation(address: string) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
this.lat = results[0].geometry.location.lat();
this.lng = results[0].geometry.location.lng(); <== this.lat value is undefined
}
else {
alert("Something went wrong : " + status);
}
});
}


Here I cannot assign value of component level variable 'lat' and 'lng' inside the geocode function.
FYI: there are values in location object of result inside it, but after assigning the value it is still undefined I don't know why?










share|improve this question




















  • 1




    Why do you say results[0].location.lat() is undefined? Or are you saying this.lat is undefined once you leave the callback function? Please provide a Minimal, Complete, and Verifiable example that demonstrates your issue.
    – geocodezip
    Dec 28 '18 at 1:42










  • sorry for that, but yes {this.lat} is undefined after callback function is complete.! I am still stuck on it. Thanks in advance.!
    – amit poddar
    Dec 28 '18 at 10:35














-1












-1








-1







GetLocation(address: string) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
this.lat = results[0].geometry.location.lat();
this.lng = results[0].geometry.location.lng(); <== this.lat value is undefined
}
else {
alert("Something went wrong : " + status);
}
});
}


Here I cannot assign value of component level variable 'lat' and 'lng' inside the geocode function.
FYI: there are values in location object of result inside it, but after assigning the value it is still undefined I don't know why?










share|improve this question















GetLocation(address: string) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
this.lat = results[0].geometry.location.lat();
this.lng = results[0].geometry.location.lng(); <== this.lat value is undefined
}
else {
alert("Something went wrong : " + status);
}
});
}


Here I cannot assign value of component level variable 'lat' and 'lng' inside the geocode function.
FYI: there are values in location object of result inside it, but after assigning the value it is still undefined I don't know why?







google-maps angular6 google-geocoder






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 28 '18 at 10:36

























asked Dec 27 '18 at 16:36









amit poddar

13




13








  • 1




    Why do you say results[0].location.lat() is undefined? Or are you saying this.lat is undefined once you leave the callback function? Please provide a Minimal, Complete, and Verifiable example that demonstrates your issue.
    – geocodezip
    Dec 28 '18 at 1:42










  • sorry for that, but yes {this.lat} is undefined after callback function is complete.! I am still stuck on it. Thanks in advance.!
    – amit poddar
    Dec 28 '18 at 10:35














  • 1




    Why do you say results[0].location.lat() is undefined? Or are you saying this.lat is undefined once you leave the callback function? Please provide a Minimal, Complete, and Verifiable example that demonstrates your issue.
    – geocodezip
    Dec 28 '18 at 1:42










  • sorry for that, but yes {this.lat} is undefined after callback function is complete.! I am still stuck on it. Thanks in advance.!
    – amit poddar
    Dec 28 '18 at 10:35








1




1




Why do you say results[0].location.lat() is undefined? Or are you saying this.lat is undefined once you leave the callback function? Please provide a Minimal, Complete, and Verifiable example that demonstrates your issue.
– geocodezip
Dec 28 '18 at 1:42




Why do you say results[0].location.lat() is undefined? Or are you saying this.lat is undefined once you leave the callback function? Please provide a Minimal, Complete, and Verifiable example that demonstrates your issue.
– geocodezip
Dec 28 '18 at 1:42












sorry for that, but yes {this.lat} is undefined after callback function is complete.! I am still stuck on it. Thanks in advance.!
– amit poddar
Dec 28 '18 at 10:35




sorry for that, but yes {this.lat} is undefined after callback function is complete.! I am still stuck on it. Thanks in advance.!
– amit poddar
Dec 28 '18 at 10:35












1 Answer
1






active

oldest

votes


















-1














import { Component, OnInit, NgZone } from '@angular/core';  <= 1. I have to import NgZone

constructor(private ngZone: NgZone) { } <= 2. declared it here

ngOnInit() { }

GetLocation(address: string) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, (results, status) => this.ngZone.run(() => { <= 3. and used it here
if (status == google.maps.GeocoderStatus.OK) {
this.lat = results[0].geometry.location.lat();
this.lng = results[0].geometry.location.lng();
}
else {
alert("Something went wrong : " + status);
}
}));
}


I found the solution for this. I have to import NgZone from '@angular/core'
and used this.ngZone.run() function inside call back function as in 3. hint.






share|improve this answer























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53948133%2fcannot-assign-component-variable-value-inside-geocode-function%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    -1














    import { Component, OnInit, NgZone } from '@angular/core';  <= 1. I have to import NgZone

    constructor(private ngZone: NgZone) { } <= 2. declared it here

    ngOnInit() { }

    GetLocation(address: string) {
    var geocoder = new google.maps.Geocoder();
    geocoder.geocode({ 'address': address }, (results, status) => this.ngZone.run(() => { <= 3. and used it here
    if (status == google.maps.GeocoderStatus.OK) {
    this.lat = results[0].geometry.location.lat();
    this.lng = results[0].geometry.location.lng();
    }
    else {
    alert("Something went wrong : " + status);
    }
    }));
    }


    I found the solution for this. I have to import NgZone from '@angular/core'
    and used this.ngZone.run() function inside call back function as in 3. hint.






    share|improve this answer




























      -1














      import { Component, OnInit, NgZone } from '@angular/core';  <= 1. I have to import NgZone

      constructor(private ngZone: NgZone) { } <= 2. declared it here

      ngOnInit() { }

      GetLocation(address: string) {
      var geocoder = new google.maps.Geocoder();
      geocoder.geocode({ 'address': address }, (results, status) => this.ngZone.run(() => { <= 3. and used it here
      if (status == google.maps.GeocoderStatus.OK) {
      this.lat = results[0].geometry.location.lat();
      this.lng = results[0].geometry.location.lng();
      }
      else {
      alert("Something went wrong : " + status);
      }
      }));
      }


      I found the solution for this. I have to import NgZone from '@angular/core'
      and used this.ngZone.run() function inside call back function as in 3. hint.






      share|improve this answer


























        -1












        -1








        -1






        import { Component, OnInit, NgZone } from '@angular/core';  <= 1. I have to import NgZone

        constructor(private ngZone: NgZone) { } <= 2. declared it here

        ngOnInit() { }

        GetLocation(address: string) {
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({ 'address': address }, (results, status) => this.ngZone.run(() => { <= 3. and used it here
        if (status == google.maps.GeocoderStatus.OK) {
        this.lat = results[0].geometry.location.lat();
        this.lng = results[0].geometry.location.lng();
        }
        else {
        alert("Something went wrong : " + status);
        }
        }));
        }


        I found the solution for this. I have to import NgZone from '@angular/core'
        and used this.ngZone.run() function inside call back function as in 3. hint.






        share|improve this answer














        import { Component, OnInit, NgZone } from '@angular/core';  <= 1. I have to import NgZone

        constructor(private ngZone: NgZone) { } <= 2. declared it here

        ngOnInit() { }

        GetLocation(address: string) {
        var geocoder = new google.maps.Geocoder();
        geocoder.geocode({ 'address': address }, (results, status) => this.ngZone.run(() => { <= 3. and used it here
        if (status == google.maps.GeocoderStatus.OK) {
        this.lat = results[0].geometry.location.lat();
        this.lng = results[0].geometry.location.lng();
        }
        else {
        alert("Something went wrong : " + status);
        }
        }));
        }


        I found the solution for this. I have to import NgZone from '@angular/core'
        and used this.ngZone.run() function inside call back function as in 3. hint.







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Dec 28 '18 at 17:10

























        answered Dec 28 '18 at 13:24









        amit poddar

        13




        13






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53948133%2fcannot-assign-component-variable-value-inside-geocode-function%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            WfFwuS4FfzT8dm6lb ATM,v
            4RhAqg HBKk8I8Spyq

            Popular posts from this blog

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas