Cannot assign component variable value inside geocode function

Multi tool use
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?

add a comment |
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?

1
Why do you sayresults[0].location.lat()
is undefined? Or are you sayingthis.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
add a comment |
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?

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?


edited Dec 28 '18 at 10:36
asked Dec 27 '18 at 16:36


amit poddar
13
13
1
Why do you sayresults[0].location.lat()
is undefined? Or are you sayingthis.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
add a comment |
1
Why do you sayresults[0].location.lat()
is undefined? Or are you sayingthis.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
add a comment |
1 Answer
1
active
oldest
votes
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.
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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.
add a comment |
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.
add a comment |
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.
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.
edited Dec 28 '18 at 17:10
answered Dec 28 '18 at 13:24


amit poddar
13
13
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
1
Why do you say
results[0].location.lat()
is undefined? Or are you sayingthis.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