geokit 1.7.0.rc1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/CHANGELOG.md +37 -18
- data/Gemfile +2 -1
- data/README.markdown +4 -5
- data/Rakefile +2 -1
- data/data/GeoLiteCity.dat +0 -0
- data/fixtures/vcr_cassettes/google3_city.yml +104 -0
- data/fixtures/vcr_cassettes/google3_country_code_biased_result.yml +399 -0
- data/fixtures/vcr_cassettes/google3_full.yml +120 -0
- data/fixtures/vcr_cassettes/google3_full_short.yml +104 -0
- data/fixtures/vcr_cassettes/google3_language_response_fr.yml +82 -0
- data/fixtures/vcr_cassettes/google3_multi.yml +391 -0
- data/fixtures/vcr_cassettes/google3_reverse_madrid.yml +454 -0
- data/fixtures/vcr_cassettes/yahoo_city.yml +43 -0
- data/fixtures/vcr_cassettes/yahoo_full.yml +44 -0
- data/fixtures/vcr_cassettes/yahoo_no_results.yml +40 -0
- data/geokit.gemspec +4 -3
- data/lib/geokit/geocoders.rb +6 -3
- data/lib/geokit/mappable.rb +0 -5
- data/lib/geokit/services/google3.rb +17 -10
- data/lib/geokit/services/ip.rb +1 -1
- data/lib/geokit/services/maxmind.rb +41 -0
- data/lib/geokit/services/ripe.rb +32 -0
- data/lib/geokit/services/yahoo.rb +125 -5
- data/lib/geokit/services/yandex.rb +51 -0
- data/lib/geokit/version.rb +1 -1
- data/test/helper.rb +47 -1
- data/test/test_google_geocoder3.rb +71 -432
- data/test/test_maxmind_geocoder.rb +17 -0
- data/test/test_yahoo_geocoder.rb +39 -34
- data/test/test_yandex_geocoder.rb +93 -0
- metadata +66 -8
- data/ext/mkrf_conf.rb +0 -15
@@ -0,0 +1,120 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://maps.google.com/maps/api/geocode/json?address=100%20Spear%20St%20Apt.%205,%20San%20Francisco,%20CA,%2094105,%20US&sensor=false
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- '*/*'
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Type:
|
22
|
+
- application/json; charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Wed, 13 Nov 2013 14:55:52 GMT
|
25
|
+
Expires:
|
26
|
+
- Thu, 14 Nov 2013 14:55:52 GMT
|
27
|
+
Cache-Control:
|
28
|
+
- public, max-age=86400
|
29
|
+
Vary:
|
30
|
+
- Accept-Language
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- '*'
|
33
|
+
Server:
|
34
|
+
- mafe
|
35
|
+
X-Xss-Protection:
|
36
|
+
- 1; mode=block
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
Transfer-Encoding:
|
40
|
+
- chunked
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: |
|
44
|
+
{
|
45
|
+
"results" : [
|
46
|
+
{
|
47
|
+
"address_components" : [
|
48
|
+
{
|
49
|
+
"long_name" : "5",
|
50
|
+
"short_name" : "5",
|
51
|
+
"types" : [ "subpremise" ]
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"long_name" : "100",
|
55
|
+
"short_name" : "100",
|
56
|
+
"types" : [ "street_number" ]
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"long_name" : "Spear Street",
|
60
|
+
"short_name" : "Spear St",
|
61
|
+
"types" : [ "route" ]
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"long_name" : "South Beach",
|
65
|
+
"short_name" : "South Beach",
|
66
|
+
"types" : [ "neighborhood", "political" ]
|
67
|
+
},
|
68
|
+
{
|
69
|
+
"long_name" : "San Francisco",
|
70
|
+
"short_name" : "SF",
|
71
|
+
"types" : [ "locality", "political" ]
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"long_name" : "San Francisco County",
|
75
|
+
"short_name" : "San Francisco County",
|
76
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"long_name" : "California",
|
80
|
+
"short_name" : "CA",
|
81
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"long_name" : "United States",
|
85
|
+
"short_name" : "US",
|
86
|
+
"types" : [ "country", "political" ]
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"long_name" : "94105",
|
90
|
+
"short_name" : "94105",
|
91
|
+
"types" : [ "postal_code" ]
|
92
|
+
}
|
93
|
+
],
|
94
|
+
"formatted_address" : "100 Spear Street #5, San Francisco, CA 94105, USA",
|
95
|
+
"geometry" : {
|
96
|
+
"location" : {
|
97
|
+
"lat" : 37.792524,
|
98
|
+
"lng" : -122.3940868
|
99
|
+
},
|
100
|
+
"location_type" : "APPROXIMATE",
|
101
|
+
"viewport" : {
|
102
|
+
"northeast" : {
|
103
|
+
"lat" : 37.7938729802915,
|
104
|
+
"lng" : -122.3927378197085
|
105
|
+
},
|
106
|
+
"southwest" : {
|
107
|
+
"lat" : 37.7911750197085,
|
108
|
+
"lng" : -122.3954357802915
|
109
|
+
}
|
110
|
+
}
|
111
|
+
},
|
112
|
+
"partial_match" : true,
|
113
|
+
"types" : [ "subpremise" ]
|
114
|
+
}
|
115
|
+
],
|
116
|
+
"status" : "OK"
|
117
|
+
}
|
118
|
+
http_version:
|
119
|
+
recorded_at: Wed, 13 Nov 2013 14:55:50 GMT
|
120
|
+
recorded_with: VCR 2.7.0
|
@@ -0,0 +1,104 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://maps.google.com/maps/api/geocode/json?address=San%20Francisco,%20CA&sensor=false
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- '*/*'
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Type:
|
22
|
+
- application/json; charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Wed, 13 Nov 2013 14:55:52 GMT
|
25
|
+
Expires:
|
26
|
+
- Thu, 14 Nov 2013 14:55:52 GMT
|
27
|
+
Cache-Control:
|
28
|
+
- public, max-age=86400
|
29
|
+
Vary:
|
30
|
+
- Accept-Language
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- '*'
|
33
|
+
Server:
|
34
|
+
- mafe
|
35
|
+
X-Xss-Protection:
|
36
|
+
- 1; mode=block
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
Transfer-Encoding:
|
40
|
+
- chunked
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: |
|
44
|
+
{
|
45
|
+
"results" : [
|
46
|
+
{
|
47
|
+
"address_components" : [
|
48
|
+
{
|
49
|
+
"long_name" : "San Francisco",
|
50
|
+
"short_name" : "SF",
|
51
|
+
"types" : [ "locality", "political" ]
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"long_name" : "San Francisco County",
|
55
|
+
"short_name" : "San Francisco County",
|
56
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"long_name" : "California",
|
60
|
+
"short_name" : "CA",
|
61
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"long_name" : "United States",
|
65
|
+
"short_name" : "US",
|
66
|
+
"types" : [ "country", "political" ]
|
67
|
+
}
|
68
|
+
],
|
69
|
+
"formatted_address" : "San Francisco, CA, USA",
|
70
|
+
"geometry" : {
|
71
|
+
"bounds" : {
|
72
|
+
"northeast" : {
|
73
|
+
"lat" : 37.9297707,
|
74
|
+
"lng" : -122.3279149
|
75
|
+
},
|
76
|
+
"southwest" : {
|
77
|
+
"lat" : 37.6933354,
|
78
|
+
"lng" : -123.1077733
|
79
|
+
}
|
80
|
+
},
|
81
|
+
"location" : {
|
82
|
+
"lat" : 37.7749295,
|
83
|
+
"lng" : -122.4194155
|
84
|
+
},
|
85
|
+
"location_type" : "APPROXIMATE",
|
86
|
+
"viewport" : {
|
87
|
+
"northeast" : {
|
88
|
+
"lat" : 37.812,
|
89
|
+
"lng" : -122.3482
|
90
|
+
},
|
91
|
+
"southwest" : {
|
92
|
+
"lat" : 37.70339999999999,
|
93
|
+
"lng" : -122.527
|
94
|
+
}
|
95
|
+
}
|
96
|
+
},
|
97
|
+
"types" : [ "locality", "political" ]
|
98
|
+
}
|
99
|
+
],
|
100
|
+
"status" : "OK"
|
101
|
+
}
|
102
|
+
http_version:
|
103
|
+
recorded_at: Wed, 13 Nov 2013 14:55:50 GMT
|
104
|
+
recorded_with: VCR 2.7.0
|
@@ -0,0 +1,82 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://maps.google.com/maps/api/geocode/json?address=Hanoi&language=FR&sensor=false
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- '*/*'
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Type:
|
22
|
+
- application/json; charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Wed, 13 Nov 2013 14:55:53 GMT
|
25
|
+
Expires:
|
26
|
+
- Thu, 14 Nov 2013 14:55:53 GMT
|
27
|
+
Cache-Control:
|
28
|
+
- public, max-age=86400
|
29
|
+
Access-Control-Allow-Origin:
|
30
|
+
- '*'
|
31
|
+
Server:
|
32
|
+
- mafe
|
33
|
+
X-Xss-Protection:
|
34
|
+
- 1; mode=block
|
35
|
+
X-Frame-Options:
|
36
|
+
- SAMEORIGIN
|
37
|
+
Transfer-Encoding:
|
38
|
+
- chunked
|
39
|
+
body:
|
40
|
+
encoding: ASCII-8BIT
|
41
|
+
string: !binary |-
|
42
|
+
ewogICAicmVzdWx0cyIgOiBbCiAgICAgIHsKICAgICAgICAgImFkZHJlc3Nf
|
43
|
+
Y29tcG9uZW50cyIgOiBbCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
|
44
|
+
ImxvbmdfbmFtZSIgOiAiSGFub8OvIiwKICAgICAgICAgICAgICAgInNob3J0
|
45
|
+
X25hbWUiIDogIkhhbm/DryIsCiAgICAgICAgICAgICAgICJ0eXBlcyIgOiBb
|
46
|
+
ICJsb2NhbGl0eSIsICJwb2xpdGljYWwiIF0KICAgICAgICAgICAgfSwKICAg
|
47
|
+
ICAgICAgICAgewogICAgICAgICAgICAgICAibG9uZ19uYW1lIiA6ICJIb2Fu
|
48
|
+
IEtpZW0gRGlzdHJpY3QiLAogICAgICAgICAgICAgICAic2hvcnRfbmFtZSIg
|
49
|
+
OiAiSG9hbiBLaWVtIERpc3RyaWN0IiwKICAgICAgICAgICAgICAgInR5cGVz
|
50
|
+
IiA6IFsgImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMiIsICJwb2xpdGlj
|
51
|
+
YWwiIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAg
|
52
|
+
ICAgICAibG9uZ19uYW1lIiA6ICJIYW5vw68iLAogICAgICAgICAgICAgICAi
|
53
|
+
c2hvcnRfbmFtZSIgOiAiSGFub8OvIiwKICAgICAgICAgICAgICAgInR5cGVz
|
54
|
+
IiA6IFsgImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMSIsICJwb2xpdGlj
|
55
|
+
YWwiIF0KICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAg
|
56
|
+
ICAgICAibG9uZ19uYW1lIiA6ICJWaWV0bmFtIiwKICAgICAgICAgICAgICAg
|
57
|
+
InNob3J0X25hbWUiIDogIlZOIiwKICAgICAgICAgICAgICAgInR5cGVzIiA6
|
58
|
+
IFsgImNvdW50cnkiLCAicG9saXRpY2FsIiBdCiAgICAgICAgICAgIH0KICAg
|
59
|
+
ICAgICAgXSwKICAgICAgICAgImZvcm1hdHRlZF9hZGRyZXNzIiA6ICJIYW5v
|
60
|
+
w68sIEhvYW4gS2llbSBEaXN0cmljdCwgSGFub8OvLCBWaWV0bmFtIiwKICAg
|
61
|
+
ICAgICAgImdlb21ldHJ5IiA6IHsKICAgICAgICAgICAgImJvdW5kcyIgOiB7
|
62
|
+
CiAgICAgICAgICAgICAgICJub3J0aGVhc3QiIDogewogICAgICAgICAgICAg
|
63
|
+
ICAgICAibGF0IiA6IDIxLjA1MDI5NDIsCiAgICAgICAgICAgICAgICAgICJs
|
64
|
+
bmciIDogMTA1Ljg3NjQ0NTkKICAgICAgICAgICAgICAgfSwKICAgICAgICAg
|
65
|
+
ICAgICAgInNvdXRod2VzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJsYXQi
|
66
|
+
IDogMjAuOTk1MDk5MSwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAxMDUu
|
67
|
+
Nzk3NDgxNQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0sCiAgICAg
|
68
|
+
ICAgICAgICJsb2NhdGlvbiIgOiB7CiAgICAgICAgICAgICAgICJsYXQiIDog
|
69
|
+
MjEuMDMzMzMzMywKICAgICAgICAgICAgICAgImxuZyIgOiAxMDUuODUKICAg
|
70
|
+
ICAgICAgICAgfSwKICAgICAgICAgICAgImxvY2F0aW9uX3R5cGUiIDogIkFQ
|
71
|
+
UFJPWElNQVRFIiwKICAgICAgICAgICAgInZpZXdwb3J0IiA6IHsKICAgICAg
|
72
|
+
ICAgICAgICAgIm5vcnRoZWFzdCIgOiB7CiAgICAgICAgICAgICAgICAgICJs
|
73
|
+
YXQiIDogMjEuMDUwMjk0MiwKICAgICAgICAgICAgICAgICAgImxuZyIgOiAx
|
74
|
+
MDUuODc2NDQ1OQogICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAi
|
75
|
+
c291dGh3ZXN0IiA6IHsKICAgICAgICAgICAgICAgICAgImxhdCIgOiAyMC45
|
76
|
+
OTUwOTkxLAogICAgICAgICAgICAgICAgICAibG5nIiA6IDEwNS43OTc0ODE1
|
77
|
+
CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LAog
|
78
|
+
ICAgICAgICAidHlwZXMiIDogWyAibG9jYWxpdHkiLCAicG9saXRpY2FsIiBd
|
79
|
+
CiAgICAgIH0KICAgXSwKICAgInN0YXR1cyIgOiAiT0siCn0K
|
80
|
+
http_version:
|
81
|
+
recorded_at: Wed, 13 Nov 2013 14:55:51 GMT
|
82
|
+
recorded_with: VCR 2.7.0
|
@@ -0,0 +1,391 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://maps.google.com/maps/api/geocode/json?address=via%20Sandro%20Pertini%208,%20Ossona,%20MI&sensor=false
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- '*/*'
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Type:
|
22
|
+
- application/json; charset=UTF-8
|
23
|
+
Date:
|
24
|
+
- Wed, 13 Nov 2013 14:55:53 GMT
|
25
|
+
Expires:
|
26
|
+
- Thu, 14 Nov 2013 14:55:53 GMT
|
27
|
+
Cache-Control:
|
28
|
+
- public, max-age=86400
|
29
|
+
Vary:
|
30
|
+
- Accept-Language
|
31
|
+
Access-Control-Allow-Origin:
|
32
|
+
- '*'
|
33
|
+
Server:
|
34
|
+
- mafe
|
35
|
+
X-Xss-Protection:
|
36
|
+
- 1; mode=block
|
37
|
+
X-Frame-Options:
|
38
|
+
- SAMEORIGIN
|
39
|
+
Transfer-Encoding:
|
40
|
+
- chunked
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
string: |
|
44
|
+
{
|
45
|
+
"results" : [
|
46
|
+
{
|
47
|
+
"address_components" : [
|
48
|
+
{
|
49
|
+
"long_name" : "8",
|
50
|
+
"short_name" : "8",
|
51
|
+
"types" : [ "street_number" ]
|
52
|
+
},
|
53
|
+
{
|
54
|
+
"long_name" : "Via Sandro Pertini",
|
55
|
+
"short_name" : "Via Sandro Pertini",
|
56
|
+
"types" : [ "route" ]
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"long_name" : "Mesero",
|
60
|
+
"short_name" : "Mesero",
|
61
|
+
"types" : [ "locality", "political" ]
|
62
|
+
},
|
63
|
+
{
|
64
|
+
"long_name" : "Mesero",
|
65
|
+
"short_name" : "Mesero",
|
66
|
+
"types" : [ "administrative_area_level_3", "political" ]
|
67
|
+
},
|
68
|
+
{
|
69
|
+
"long_name" : "Milan",
|
70
|
+
"short_name" : "MI",
|
71
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"long_name" : "Lombardy",
|
75
|
+
"short_name" : "Lombardy",
|
76
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"long_name" : "Italy",
|
80
|
+
"short_name" : "IT",
|
81
|
+
"types" : [ "country", "political" ]
|
82
|
+
},
|
83
|
+
{
|
84
|
+
"long_name" : "20010",
|
85
|
+
"short_name" : "20010",
|
86
|
+
"types" : [ "postal_code" ]
|
87
|
+
}
|
88
|
+
],
|
89
|
+
"formatted_address" : "Via Sandro Pertini, 8, 20010 Mesero Milan, Italy",
|
90
|
+
"geometry" : {
|
91
|
+
"location" : {
|
92
|
+
"lat" : 45.496774,
|
93
|
+
"lng" : 8.852637
|
94
|
+
},
|
95
|
+
"location_type" : "ROOFTOP",
|
96
|
+
"viewport" : {
|
97
|
+
"northeast" : {
|
98
|
+
"lat" : 45.49812298029151,
|
99
|
+
"lng" : 8.853985980291501
|
100
|
+
},
|
101
|
+
"southwest" : {
|
102
|
+
"lat" : 45.49542501970851,
|
103
|
+
"lng" : 8.851288019708496
|
104
|
+
}
|
105
|
+
}
|
106
|
+
},
|
107
|
+
"partial_match" : true,
|
108
|
+
"types" : [ "street_address" ]
|
109
|
+
},
|
110
|
+
{
|
111
|
+
"address_components" : [
|
112
|
+
{
|
113
|
+
"long_name" : "8",
|
114
|
+
"short_name" : "8",
|
115
|
+
"types" : [ "street_number" ]
|
116
|
+
},
|
117
|
+
{
|
118
|
+
"long_name" : "Via Sandro Pertini",
|
119
|
+
"short_name" : "Via Sandro Pertini",
|
120
|
+
"types" : [ "route" ]
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"long_name" : "Santo Stefano Ticino",
|
124
|
+
"short_name" : "Santo Stefano Ticino",
|
125
|
+
"types" : [ "locality", "political" ]
|
126
|
+
},
|
127
|
+
{
|
128
|
+
"long_name" : "Santo Stefano Ticino",
|
129
|
+
"short_name" : "Santo Stefano Ticino",
|
130
|
+
"types" : [ "administrative_area_level_3", "political" ]
|
131
|
+
},
|
132
|
+
{
|
133
|
+
"long_name" : "Milan",
|
134
|
+
"short_name" : "MI",
|
135
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
136
|
+
},
|
137
|
+
{
|
138
|
+
"long_name" : "Lombardy",
|
139
|
+
"short_name" : "Lombardy",
|
140
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"long_name" : "Italy",
|
144
|
+
"short_name" : "IT",
|
145
|
+
"types" : [ "country", "political" ]
|
146
|
+
},
|
147
|
+
{
|
148
|
+
"long_name" : "20010",
|
149
|
+
"short_name" : "20010",
|
150
|
+
"types" : [ "postal_code" ]
|
151
|
+
}
|
152
|
+
],
|
153
|
+
"formatted_address" : "Via Sandro Pertini, 8, 20010 Santo Stefano Ticino Milan, Italy",
|
154
|
+
"geometry" : {
|
155
|
+
"location" : {
|
156
|
+
"lat" : 45.488678,
|
157
|
+
"lng" : 8.919173000000001
|
158
|
+
},
|
159
|
+
"location_type" : "ROOFTOP",
|
160
|
+
"viewport" : {
|
161
|
+
"northeast" : {
|
162
|
+
"lat" : 45.4900269802915,
|
163
|
+
"lng" : 8.920521980291504
|
164
|
+
},
|
165
|
+
"southwest" : {
|
166
|
+
"lat" : 45.4873290197085,
|
167
|
+
"lng" : 8.917824019708499
|
168
|
+
}
|
169
|
+
}
|
170
|
+
},
|
171
|
+
"partial_match" : true,
|
172
|
+
"types" : [ "street_address" ]
|
173
|
+
},
|
174
|
+
{
|
175
|
+
"address_components" : [
|
176
|
+
{
|
177
|
+
"long_name" : "Via S. Pertini",
|
178
|
+
"short_name" : "Via S. Pertini",
|
179
|
+
"types" : [ "route" ]
|
180
|
+
},
|
181
|
+
{
|
182
|
+
"long_name" : "Ossona",
|
183
|
+
"short_name" : "Ossona",
|
184
|
+
"types" : [ "locality", "political" ]
|
185
|
+
},
|
186
|
+
{
|
187
|
+
"long_name" : "Ossona",
|
188
|
+
"short_name" : "Ossona",
|
189
|
+
"types" : [ "administrative_area_level_3", "political" ]
|
190
|
+
},
|
191
|
+
{
|
192
|
+
"long_name" : "Milan",
|
193
|
+
"short_name" : "MI",
|
194
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
195
|
+
},
|
196
|
+
{
|
197
|
+
"long_name" : "Lombardy",
|
198
|
+
"short_name" : "Lombardy",
|
199
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
200
|
+
},
|
201
|
+
{
|
202
|
+
"long_name" : "Italy",
|
203
|
+
"short_name" : "IT",
|
204
|
+
"types" : [ "country", "political" ]
|
205
|
+
},
|
206
|
+
{
|
207
|
+
"long_name" : "20010",
|
208
|
+
"short_name" : "20010",
|
209
|
+
"types" : [ "postal_code" ]
|
210
|
+
}
|
211
|
+
],
|
212
|
+
"formatted_address" : "Via S. Pertini, 20010 Ossona Milan, Italy",
|
213
|
+
"geometry" : {
|
214
|
+
"bounds" : {
|
215
|
+
"northeast" : {
|
216
|
+
"lat" : 45.5085129,
|
217
|
+
"lng" : 8.9024208
|
218
|
+
},
|
219
|
+
"southwest" : {
|
220
|
+
"lat" : 45.5064874,
|
221
|
+
"lng" : 8.901982
|
222
|
+
}
|
223
|
+
},
|
224
|
+
"location" : {
|
225
|
+
"lat" : 45.5075969,
|
226
|
+
"lng" : 8.9022609
|
227
|
+
},
|
228
|
+
"location_type" : "GEOMETRIC_CENTER",
|
229
|
+
"viewport" : {
|
230
|
+
"northeast" : {
|
231
|
+
"lat" : 45.5088491302915,
|
232
|
+
"lng" : 8.903550380291502
|
233
|
+
},
|
234
|
+
"southwest" : {
|
235
|
+
"lat" : 45.5061511697085,
|
236
|
+
"lng" : 8.900852419708498
|
237
|
+
}
|
238
|
+
}
|
239
|
+
},
|
240
|
+
"partial_match" : true,
|
241
|
+
"types" : [ "route" ]
|
242
|
+
},
|
243
|
+
{
|
244
|
+
"address_components" : [
|
245
|
+
{
|
246
|
+
"long_name" : "8",
|
247
|
+
"short_name" : "8",
|
248
|
+
"types" : [ "street_number" ]
|
249
|
+
},
|
250
|
+
{
|
251
|
+
"long_name" : "Via Sandro Pertini",
|
252
|
+
"short_name" : "Via Sandro Pertini",
|
253
|
+
"types" : [ "route" ]
|
254
|
+
},
|
255
|
+
{
|
256
|
+
"long_name" : "Bernate Ticino",
|
257
|
+
"short_name" : "Bernate Ticino",
|
258
|
+
"types" : [ "administrative_area_level_3", "political" ]
|
259
|
+
},
|
260
|
+
{
|
261
|
+
"long_name" : "Milan",
|
262
|
+
"short_name" : "MI",
|
263
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
264
|
+
},
|
265
|
+
{
|
266
|
+
"long_name" : "Lombardy",
|
267
|
+
"short_name" : "Lombardy",
|
268
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
269
|
+
},
|
270
|
+
{
|
271
|
+
"long_name" : "Italy",
|
272
|
+
"short_name" : "IT",
|
273
|
+
"types" : [ "country", "political" ]
|
274
|
+
},
|
275
|
+
{
|
276
|
+
"long_name" : "20010",
|
277
|
+
"short_name" : "20010",
|
278
|
+
"types" : [ "postal_code" ]
|
279
|
+
}
|
280
|
+
],
|
281
|
+
"formatted_address" : "Via Sandro Pertini, 8, 20010 Bernate Ticino, Milan, Italy",
|
282
|
+
"geometry" : {
|
283
|
+
"bounds" : {
|
284
|
+
"northeast" : {
|
285
|
+
"lat" : 45.4887285,
|
286
|
+
"lng" : 8.8274942
|
287
|
+
},
|
288
|
+
"southwest" : {
|
289
|
+
"lat" : 45.4887173,
|
290
|
+
"lng" : 8.827485099999999
|
291
|
+
}
|
292
|
+
},
|
293
|
+
"location" : {
|
294
|
+
"lat" : 45.4887285,
|
295
|
+
"lng" : 8.827485099999999
|
296
|
+
},
|
297
|
+
"location_type" : "RANGE_INTERPOLATED",
|
298
|
+
"viewport" : {
|
299
|
+
"northeast" : {
|
300
|
+
"lat" : 45.4900718802915,
|
301
|
+
"lng" : 8.828838630291502
|
302
|
+
},
|
303
|
+
"southwest" : {
|
304
|
+
"lat" : 45.4873739197085,
|
305
|
+
"lng" : 8.826140669708497
|
306
|
+
}
|
307
|
+
}
|
308
|
+
},
|
309
|
+
"partial_match" : true,
|
310
|
+
"types" : [ "street_address" ]
|
311
|
+
},
|
312
|
+
{
|
313
|
+
"address_components" : [
|
314
|
+
{
|
315
|
+
"long_name" : "8",
|
316
|
+
"short_name" : "8",
|
317
|
+
"types" : [ "street_number" ]
|
318
|
+
},
|
319
|
+
{
|
320
|
+
"long_name" : "Via Sandro Pertini",
|
321
|
+
"short_name" : "Via Sandro Pertini",
|
322
|
+
"types" : [ "route" ]
|
323
|
+
},
|
324
|
+
{
|
325
|
+
"long_name" : "Casate",
|
326
|
+
"short_name" : "Casate",
|
327
|
+
"types" : [ "locality", "political" ]
|
328
|
+
},
|
329
|
+
{
|
330
|
+
"long_name" : "Bernate Ticino",
|
331
|
+
"short_name" : "Bernate Ticino",
|
332
|
+
"types" : [ "administrative_area_level_3", "political" ]
|
333
|
+
},
|
334
|
+
{
|
335
|
+
"long_name" : "Milan",
|
336
|
+
"short_name" : "MI",
|
337
|
+
"types" : [ "administrative_area_level_2", "political" ]
|
338
|
+
},
|
339
|
+
{
|
340
|
+
"long_name" : "Lombardy",
|
341
|
+
"short_name" : "Lombardy",
|
342
|
+
"types" : [ "administrative_area_level_1", "political" ]
|
343
|
+
},
|
344
|
+
{
|
345
|
+
"long_name" : "Italy",
|
346
|
+
"short_name" : "IT",
|
347
|
+
"types" : [ "country", "political" ]
|
348
|
+
},
|
349
|
+
{
|
350
|
+
"long_name" : "20010",
|
351
|
+
"short_name" : "20010",
|
352
|
+
"types" : [ "postal_code" ]
|
353
|
+
}
|
354
|
+
],
|
355
|
+
"formatted_address" : "Via Sandro Pertini, 8, 20010 Casate Milan, Italy",
|
356
|
+
"geometry" : {
|
357
|
+
"bounds" : {
|
358
|
+
"northeast" : {
|
359
|
+
"lat" : 45.4894486,
|
360
|
+
"lng" : 8.8285407
|
361
|
+
},
|
362
|
+
"southwest" : {
|
363
|
+
"lat" : 45.4894444,
|
364
|
+
"lng" : 8.828523299999999
|
365
|
+
}
|
366
|
+
},
|
367
|
+
"location" : {
|
368
|
+
"lat" : 45.4894444,
|
369
|
+
"lng" : 8.828523299999999
|
370
|
+
},
|
371
|
+
"location_type" : "RANGE_INTERPOLATED",
|
372
|
+
"viewport" : {
|
373
|
+
"northeast" : {
|
374
|
+
"lat" : 45.4907954802915,
|
375
|
+
"lng" : 8.829880980291502
|
376
|
+
},
|
377
|
+
"southwest" : {
|
378
|
+
"lat" : 45.4880975197085,
|
379
|
+
"lng" : 8.827183019708498
|
380
|
+
}
|
381
|
+
}
|
382
|
+
},
|
383
|
+
"partial_match" : true,
|
384
|
+
"types" : [ "street_address" ]
|
385
|
+
}
|
386
|
+
],
|
387
|
+
"status" : "OK"
|
388
|
+
}
|
389
|
+
http_version:
|
390
|
+
recorded_at: Wed, 13 Nov 2013 14:55:51 GMT
|
391
|
+
recorded_with: VCR 2.7.0
|