开发者

Google Maps problem with Geocoder

The point is to point out the markers from a JSON file, but if the current json, dont have any lat and lng it should calculate it, but it dont work

//For example when
item.county = 'Orust'
//开发者_运维知识库and 
item.region = 'Bohuslän'

Why is that?

if(lat == null)
            {
                geocoder.geocode({ 'address': item.county+', '+item.region}, function(result, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    if(result[0])
                    {
                        latlng = result[0].geometry.location
                    }
                }
                });

Have I missed something?


First check to see if things are working as expected inside the callback. To do that, change this:

latlng = result[0].geometry.location;

To this:

console.log(result[0].geometry.location);

(You can also just add the console.log above the latlng assignment rather than changing it. Actually, that's probably better.)

If the resulting message in your JavaScript console looks like a latlng object, then the problem is likely a scope problem--in other words, latlng outside of the callback is not the same as latlng inside the callback.

If the resulting message in your JavaScript console does not look like a latlng object, then the problem is inside the callback itself. Check to see if you are getting any results at all by putting this where you put the last console.log() above:

console.log(result);

If these console.log commands never fire and nothing appears in your JavaScript console, then the status returned from the geocoder.geocoder() is not OK and you need to add some error handling in the callback to see what's going on.


Request to geocoder runs asynchronously. You cannot access to vriable which is assigned inside the callback from the outside code. Actually you could but it will be undefined.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜