View difference between Paste ID: eFyuUMEj and gSF6XuWL
SHOW: | | - or go back to the newest paste.
1
<html>
2
<head>
3
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places"></script>
4
5
<script>
6
    function initialize() {    
7
        var defaultBounds = new google.maps.LatLngBounds(
8
            new google.maps.LatLng(-33.8902, 151.1759),
9
            new google.maps.LatLng(-33.8474, 151.2631));
10
11
        var input = document.getElementById('location');
12
        var options = {
13
            bounds: defaultBounds,
14
            types: ['(cities)', '(regions)']
15
        }; 
16
        
17
        autocomplete = new google.maps.places.Autocomplete(input, options);
18
    
19
        google.maps.event.addListener(autocomplete, 'place_changed', function() {
20
            var place = autocomplete.getPlace(); 
21
            var city;
22
            var state;
23
            var country;
24
            var postcode;
25
            var latitude;
26
            var longitude;
27
	    input.className = '';
28-
            if (!place.geometry) {
28+
29
            if (place && place.geometry){
30
                address_components = place.address_components;
31
                if (address_components){
32
                    for (index in address_components){
33
                        component = address_components[index];
34
                        if (component.types.indexOf('locality') > -1){
35
                            city = component.long_name;
36
                        }
37
                        if (component.types.indexOf('administrative_area_level_1') > -1){
38
                            state = component.long_name;
39
                            if (!state){
40
                                if (component.types.indexOf('administrative_area_level_2') > -1){
41
                                    state = component.long_name;
42
                                    if (!state){
43
                                        if (component.types.indexOf('administrative_area_level_3') > -1){
44
                                            state = component.long_name;
45
                                        }
46
                                    }
47
                                }
48
                            }
49
                        }
50
                        if (component.types.indexOf('country') > -1){
51
                            country = component.long_name;
52
                        }
53
                        if (component.types.indexOf('postal_code') > -1){
54
                            postcode = component.long_name;
55
                        }
56
                    }
57
                }
58
                if (place.geometry.location){
59
                    latitude = place.geometry.location.lat();
60
                    longitude = place.geometry.location.lng();
61
                }
62
            }else{
63
                // Inform the user that the place was not found and return.
64
                input.className = 'notfound';
65
                return;
66
            }
67
        });
68
    }
69
    google.maps.event.addDomListener(window, 'load', initialize);
70
</script>
71
</head>
72
<body>
73
<input type="text" id="location">
74
</body>
75
</html>