geokit 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +6 -14
- data/.travis.yml +1 -0
- data/CHANGELOG.md +11 -0
- data/Gemfile +2 -1
- data/MIT-LICENSE +20 -0
- data/README.markdown +44 -39
- data/Rakefile +15 -0
- data/fixtures/vcr_cassettes/bing_full.yml +102 -0
- data/fixtures/vcr_cassettes/bing_full_au.yml +91 -0
- data/fixtures/vcr_cassettes/bing_full_de.yml +91 -0
- data/fixtures/vcr_cassettes/fcc_reverse_geocode.yml +37 -0
- data/fixtures/vcr_cassettes/free_geo_ip_geocode.yml +36 -0
- data/fixtures/vcr_cassettes/geo_plugin_geocode.yml +38 -0
- data/fixtures/vcr_cassettes/geonames_geocode.yml +304 -0
- data/fixtures/vcr_cassettes/{google3_city.yml → google_city.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_country_code_biased_result.yml → google_country_code_biased_result.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_full.yml → google_full.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_full_short.yml → google_full_short.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_language_response_fr.yml → google_language_response_fr.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_multi.yml → google_multi.yml} +0 -0
- data/fixtures/vcr_cassettes/{google3_reverse_madrid.yml → google_reverse_madrid.yml} +0 -0
- data/fixtures/vcr_cassettes/ripe_geocode.yml +66 -0
- data/fixtures/vcr_cassettes/ripe_geocode_au.yml +66 -0
- data/geokit.gemspec +1 -1
- data/lib/geokit.rb +5 -0
- data/lib/geokit/bounds.rb +96 -0
- data/lib/geokit/core_ext.rb +17 -0
- data/lib/geokit/geo_loc.rb +134 -0
- data/lib/geokit/geocoders.rb +48 -35
- data/lib/geokit/geocoders/base_ip.rb +43 -0
- data/lib/geokit/geocoders/bing.rb +101 -0
- data/lib/geokit/geocoders/ca_geocoder.rb +50 -0
- data/lib/geokit/{services → geocoders}/fcc.rb +17 -20
- data/lib/geokit/geocoders/free_geo_ip.rb +34 -0
- data/lib/geokit/geocoders/geo_plugin.rb +33 -0
- data/lib/geokit/geocoders/geonames.rb +53 -0
- data/lib/geokit/{services/google3.rb → geocoders/google.rb} +59 -57
- data/lib/geokit/geocoders/ip.rb +69 -0
- data/lib/geokit/geocoders/mapquest.rb +72 -0
- data/lib/geokit/geocoders/maxmind.rb +29 -0
- data/lib/geokit/geocoders/openstreetmap.rb +119 -0
- data/lib/geokit/geocoders/ripe.rb +41 -0
- data/lib/geokit/{services → geocoders}/us_geocoder.rb +15 -20
- data/lib/geokit/{services → geocoders}/yahoo.rb +52 -55
- data/lib/geokit/geocoders/yandex.rb +61 -0
- data/lib/geokit/inflectors.rb +1 -2
- data/lib/geokit/lat_lng.rb +129 -0
- data/lib/geokit/mappable.rb +41 -424
- data/lib/geokit/multi_geocoder.rb +6 -2
- data/lib/geokit/polygon.rb +46 -0
- data/lib/geokit/version.rb +1 -1
- data/test/helper.rb +2 -12
- data/test/test_base_geocoder.rb +0 -10
- data/test/test_bing_geocoder.rb +60 -0
- data/test/test_fcc_geocoder.rb +23 -0
- data/test/test_free_geo_ip_geocoder.rb +23 -0
- data/test/test_geo_plugin_geocoder.rb +23 -0
- data/test/test_geonames_geocoder.rb +23 -0
- data/test/test_google_geocoder.rb +208 -235
- data/test/test_maxmind_geocoder.rb +35 -4
- data/test/test_multi_geocoder.rb +3 -1
- data/test/test_ripe_geocoder.rb +35 -0
- data/test/test_yahoo_geocoder.rb +0 -12
- metadata +78 -52
- data/LICENSE +0 -25
- data/Manifest.txt +0 -21
- data/data/GeoLiteCity.dat +0 -0
- data/lib/geokit/services/ca_geocoder.rb +0 -55
- data/lib/geokit/services/geo_plugin.rb +0 -31
- data/lib/geokit/services/geonames.rb +0 -53
- data/lib/geokit/services/google.rb +0 -158
- data/lib/geokit/services/ip.rb +0 -103
- data/lib/geokit/services/maxmind.rb +0 -39
- data/lib/geokit/services/openstreetmap.rb +0 -119
- data/lib/geokit/services/ripe.rb +0 -32
- data/lib/geokit/services/yandex.rb +0 -51
- data/test/test_google_geocoder3.rb +0 -238
- data/test/test_google_reverse_geocoder.rb +0 -49
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
Njg0YTQwYzRmMTIxZDhiYWVjMDJhZDI0M2UxNjYyNGNjZDc0NzI0NzNhMjcx
|
10
|
-
MTJkYjlhMmEyMzc3MDQwODIyZTIxOGE3NTkwOWVkOTgzMmU0YzgzYmU2ZDhi
|
11
|
-
Y2UwNDhhODM0NjkyODhjOGFjMTcwMTEyOTgxZDg1YjM4ZGYzN2Y=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
OWYwOGNjZTRmYjJhODg0NzMxMWQ2MDg2Y2UyMGUxMGNlYzU2YmU0YzJjNTk3
|
14
|
-
YzdhM2JmMjYwMWIzZGU0ZWE3NDU0YWEyMWI3ZTQ2M2U4ZjRlNGE5NzEzY2M0
|
15
|
-
N2Y1NDNiMzA2NjZlOGM3MTg0ZDk5YTM3ZWI0YTQwZjQ4NjFlY2E=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 964d3db61abcfa9bbe2d95d74cfbd6dff9455184
|
4
|
+
data.tar.gz: ac8c3ac65b9f0348f92a482ccd216d4b9e6e3a5a
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a7ad5b2491c7bd77d6704fd9e50c35d8860c013ee0e11e41f4e6e5d039a417166f664784e4895dca3fc876e748b91f17a0402d3be5ea66227270f52891d0ddf3
|
7
|
+
data.tar.gz: b88419201129e2cfb85ddd5301414cdb76cc69079895206e78a225a149e51f6dadb71ddc0ca032e95bfb64f257856dcb5858659b2cbe671f31e5400c20622a5f
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
## 1.8.0
|
2
|
+
|
3
|
+
* Added Bing Geocoder
|
4
|
+
* Added freegeoip.net Geocoder
|
5
|
+
* Added MapQuest Geocoder
|
6
|
+
* Remove Google (v2) Geocoder and rename Google3 (v3) to Google
|
7
|
+
* Added tests for various gateways
|
8
|
+
* Greatly standarize, simplify and improve code
|
9
|
+
* Reorganise files
|
10
|
+
* MaxMind bug fixes
|
11
|
+
|
1
12
|
## 1.7.1
|
2
13
|
|
3
14
|
* Remove geoip require from MaxMind to avoid new dependency issues
|
data/Gemfile
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in geokit.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
+
gem 'pry', :platforms => :ruby_19
|
6
7
|
gem 'mime-types', '< 2.0', :platforms => :ruby_18
|
7
8
|
gem 'geoip' # for testing - only required for max_mind
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 Michael Noack, James Cox, Bill Eisenhauer & Andre Lewis
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.markdown
CHANGED
@@ -3,7 +3,7 @@ Geokit
|
|
3
3
|
|
4
4
|
[](http://badge.fury.io/rb/geokit)
|
5
5
|
[](https://travis-ci.org/geokit/geokit)
|
6
|
-
[](https://coveralls.io/r/geokit/geokit)
|
7
7
|
[](https://gemnasium.com/geokit/geokit)
|
8
8
|
[](https://codeclimate.com/github/geokit/geokit)
|
9
9
|
|
@@ -17,25 +17,55 @@ The Geokit gem provides:
|
|
17
17
|
* Rectangular bounds calculations: is a point within a given rectangular bounds?
|
18
18
|
* Heading and midpoint calculations
|
19
19
|
|
20
|
-
Combine this gem with the [geokit-rails
|
20
|
+
Combine this gem with the [geokit-rails](http://github.com/geokit/geokit-rails) to get location-based finders for your Rails app.
|
21
21
|
|
22
22
|
* Repository at Github: [http://github.com/geokit/geokit](http://github.com/geokit/geokit).
|
23
23
|
* RDoc pages: [http://rdoc.info/github/geokit/geokit/master/frames](http://rdoc.info/github/geokit/geokit/master/frames)
|
24
|
-
|
24
|
+
|
25
|
+
## COMMUNICATION
|
26
|
+
|
27
|
+
* If you **need help**, use [Stack Overflow](http://stackoverflow.com/questions/tagged/geokit). (Tag 'geokit' and we'll be alerted)
|
28
|
+
* If you **found a bug**, use GitHub issues.
|
29
|
+
* If you **have an idea**, use GitHub issues.
|
30
|
+
* If you'd like to **ask a general question**, use GitHub issues.
|
31
|
+
* If you **want to contribute**, submit a pull request.
|
25
32
|
|
26
33
|
## INSTALL
|
27
34
|
|
28
35
|
gem install geokit
|
29
36
|
|
37
|
+
## SUPPORTED GEOCODERS
|
38
|
+
|
39
|
+
### "regular" address geocoders
|
40
|
+
* Yahoo BOSS - requires an API key.
|
41
|
+
* Geocoder.us - may require authentication if performing more than the free request limit.
|
42
|
+
* Geocoder.ca - for Canada; may require authentication as well.
|
43
|
+
* Geonames - a free geocoder
|
44
|
+
* Bing
|
45
|
+
* Yandex
|
46
|
+
* MapQuest
|
47
|
+
|
48
|
+
### address geocoders that also provide reverse geocoding
|
49
|
+
* Google - requires an API key. Also supports multiple results and bounding box/country code biasing.
|
50
|
+
* FCC
|
51
|
+
* Open Street Map
|
52
|
+
|
53
|
+
### IP address geocoders
|
54
|
+
* IP - geocodes an IP address using hostip.info's web service.
|
55
|
+
* Geoplugin.net -- another IP address geocoder
|
56
|
+
* RIPE
|
57
|
+
* MaxMind
|
58
|
+
* freegeoip.net
|
59
|
+
|
30
60
|
## QUICK START
|
31
61
|
|
32
62
|
```ruby
|
33
63
|
irb> require 'rubygems'
|
34
64
|
irb> require 'geokit'
|
35
|
-
irb> a=Geokit::Geocoders::
|
65
|
+
irb> a=Geokit::Geocoders::GoogleGeocoder.geocode '140 Market St, San Francisco, CA'
|
36
66
|
irb> a.ll
|
37
67
|
=> 37.79363,-122.396116
|
38
|
-
irb> b=Geokit::Geocoders::
|
68
|
+
irb> b=Geokit::Geocoders::GoogleGeocoder.geocode '789 Geary St, San Francisco, CA'
|
39
69
|
irb> b.ll
|
40
70
|
=> 37.786217,-122.41619
|
41
71
|
irb> a.distance_to(b)
|
@@ -68,24 +98,23 @@ If you're using this gem by itself, here are the configuration options:
|
|
68
98
|
# is in seconds.
|
69
99
|
Geokit::Geocoders::request_timeout = 3
|
70
100
|
|
71
|
-
#
|
72
|
-
# These setting can be nil if not needed, otherwise,
|
101
|
+
# This setting can be used if web service calls must be routed through a proxy.
|
102
|
+
# These setting can be nil if not needed, otherwise, a valid URI must be
|
73
103
|
# filled in at a minimum. If the proxy requires authentication, the username
|
74
104
|
# and password can be provided as well.
|
75
|
-
Geokit::Geocoders::
|
76
|
-
Geokit::Geocoders::proxy_port = nil
|
77
|
-
Geokit::Geocoders::proxy_user = nil
|
78
|
-
Geokit::Geocoders::proxy_pass = nil
|
105
|
+
Geokit::Geocoders::proxy = 'https://user:password@host:port'
|
79
106
|
|
80
107
|
# This is your yahoo application key for the Yahoo Geocoder.
|
81
108
|
# See http://developer.yahoo.com/faq/index.html#appid
|
82
109
|
# and http://developer.yahoo.com/maps/rest/V1/geocode.html
|
83
110
|
Geokit::Geocoders::yahoo = 'REPLACE_WITH_YOUR_YAHOO_KEY'
|
84
111
|
|
85
|
-
# This is your Google Maps geocoder
|
112
|
+
# This is your Google Maps geocoder keys (all optional).
|
86
113
|
# See http://www.google.com/apis/maps/signup.html
|
87
114
|
# and http://www.google.com/apis/maps/documentation/#Geocoding_Examples
|
88
|
-
Geokit::Geocoders::
|
115
|
+
Geokit::Geocoders::google_client_id = ''
|
116
|
+
Geokit::Geocoders::google_cryptographic_key = ''
|
117
|
+
Geokit::Geocoders::google_channel = ''
|
89
118
|
|
90
119
|
# You can also set multiple API KEYS for different domains that may be directed to this same application.
|
91
120
|
# The domain from which the current user is being directed will automatically be updated for Geokit via
|
@@ -125,24 +154,6 @@ If you're using this gem by itself, here are the configuration options:
|
|
125
154
|
# Geokit::Geocoders::ip_provider_order = [:external,:geo_plugin,:ip]
|
126
155
|
```
|
127
156
|
|
128
|
-
If you're using this gem with the [geokit-rails plugin](http://github.com/geokit/geokit-rails), the plugin
|
129
|
-
creates a template with these settings and places it in `config/initializers/geokit_config.rb`.
|
130
|
-
|
131
|
-
## SUPPORTED GEOCODERS
|
132
|
-
|
133
|
-
### "regular" address geocoders
|
134
|
-
* Yahoo Geocoder - requires an API key.
|
135
|
-
* Geocoder.us - may require authentication if performing more than the free request limit.
|
136
|
-
* Geocoder.ca - for Canada; may require authentication as well.
|
137
|
-
* Geonames - a free geocoder
|
138
|
-
|
139
|
-
### address geocoders that also provide reverse geocoding
|
140
|
-
* Google Geocoder - requires an API key. Also supports multiple results and bounding box/country code biasing.
|
141
|
-
|
142
|
-
### IP address geocoders
|
143
|
-
* IP Geocoder - geocodes an IP address using hostip.info's web service.
|
144
|
-
* Geoplugin.net -- another IP address geocoder
|
145
|
-
|
146
157
|
### Google Geocoder Tricks
|
147
158
|
|
148
159
|
The Google Geocoder sports a number of useful tricks that elevate it a little bit above the rest of the currently supported geocoders. For starters, it returns a `suggested_bounds` property for all your geocoded results, so you can more easily decide where and how to center a map on the places you geocode. Here's a quick example:
|
@@ -223,16 +234,15 @@ mappable.rb contains the Mappable module, which provides basic
|
|
223
234
|
distance calculation methods, i.e., calculating the distance
|
224
235
|
between two points.
|
225
236
|
|
226
|
-
mappable.rb also contains LatLng, GeoLoc, and Bounds.
|
227
237
|
LatLng is a simple container for latitude and longitude, but
|
228
238
|
it's made more powerful by mixing in the above-mentioned Mappable
|
229
239
|
module -- therefore, you can calculate easily the distance between two
|
230
240
|
LatLng ojbects with `distance = first.distance_to(other)`
|
231
241
|
|
232
|
-
GeoLoc
|
242
|
+
GeoLoc represents an address or location which
|
233
243
|
has been geocoded. You can get the city, zipcode, street address, etc.
|
234
244
|
from a GeoLoc object. GeoLoc extends LatLng, so you also get lat/lng
|
235
|
-
AND the Mappable
|
245
|
+
AND the Mappable module goodness for free.
|
236
246
|
|
237
247
|
geocoders.rb contains all the geocoder implemenations. All the gercoders
|
238
248
|
inherit from a common base (class Geocoder) and implement the private method
|
@@ -269,8 +279,3 @@ You must then also require such extenal file back in your main geokit configurat
|
|
269
279
|
end
|
270
280
|
end
|
271
281
|
```
|
272
|
-
|
273
|
-
## GOOGLE GROUP
|
274
|
-
|
275
|
-
Follow the Google Group for updates and discussion on Geokit: http://groups.google.com/group/geokit
|
276
|
-
|
data/Rakefile
CHANGED
@@ -15,3 +15,18 @@ task :coverage do
|
|
15
15
|
ENV['COVERAGE'] = 'true'
|
16
16
|
Rake::Task['test'].invoke
|
17
17
|
end
|
18
|
+
|
19
|
+
desc "Downloads GeoLiteCity.dat from maxmind.com"
|
20
|
+
task :download_geolitecity do
|
21
|
+
total_size = nil
|
22
|
+
url = 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz'
|
23
|
+
progress_cb = lambda {|size| print("Downloaded #{size} of #{total_size} bytes\r") if total_size }
|
24
|
+
length_cb = lambda {|content_length| total_size = content_length }
|
25
|
+
require 'open-uri'
|
26
|
+
File.open("/tmp/GeoLiteCity.dat.gz", "wb") do |f|
|
27
|
+
open(url, 'rb', :progress_proc => progress_cb, :content_length_proc => length_cb ) do |downloaded_file|
|
28
|
+
f.write(downloaded_file.read)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
puts "\nDone."
|
32
|
+
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://dev.virtualearth.net/REST/v1/Locations/100%20Spear%20St,%20San%20Francisco,%20CA,%2094105-1522,%20US?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- ! '*/*'
|
12
|
+
User-Agent:
|
13
|
+
- Ruby
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: !binary |-
|
18
|
+
T0s=
|
19
|
+
headers:
|
20
|
+
!binary "Q2FjaGUtQ29udHJvbA==":
|
21
|
+
- !binary |-
|
22
|
+
bm8tY2FjaGU=
|
23
|
+
!binary "VHJhbnNmZXItRW5jb2Rpbmc=":
|
24
|
+
- !binary |-
|
25
|
+
Y2h1bmtlZA==
|
26
|
+
!binary "Q29udGVudC1UeXBl":
|
27
|
+
- !binary |-
|
28
|
+
YXBwbGljYXRpb24veG1sOyBjaGFyc2V0PXV0Zi04
|
29
|
+
!binary "U2VydmVy":
|
30
|
+
- !binary |-
|
31
|
+
TWljcm9zb2Z0LUlJUy84LjA=
|
32
|
+
!binary "WC1CbS1UcmFjZWlk":
|
33
|
+
- !binary |-
|
34
|
+
NTU5ZWI3NGYxMWY4NDQyZjllN2VhNzJjMmI2OWU1YTM=
|
35
|
+
!binary "WC1CbS1TcnY=":
|
36
|
+
- !binary |-
|
37
|
+
U0lOTTAwMDAwOSwgU0lOTVNOVk0wMDAxNDUsIFNJTklQRVZNMDAwMDEw
|
38
|
+
!binary "WC1Ncy1CbS1Xcy1JbmZv":
|
39
|
+
- !binary |-
|
40
|
+
MA==
|
41
|
+
!binary "WC1Bc3BuZXQtVmVyc2lvbg==":
|
42
|
+
- !binary |-
|
43
|
+
NC4wLjMwMzE5
|
44
|
+
!binary "WC1Qb3dlcmVkLUJ5":
|
45
|
+
- !binary |-
|
46
|
+
QVNQLk5FVA==
|
47
|
+
!binary "RGF0ZQ==":
|
48
|
+
- !binary |-
|
49
|
+
U2F0LCAxNCBEZWMgMjAxMyAwNTo0MDo1MyBHTVQ=
|
50
|
+
body:
|
51
|
+
encoding: ASCII-8BIT
|
52
|
+
string: !binary |-
|
53
|
+
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48UmVz
|
54
|
+
cG9uc2UgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
|
55
|
+
aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y
|
56
|
+
MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
|
57
|
+
dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w
|
58
|
+
eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB
|
59
|
+
bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz
|
60
|
+
ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl
|
61
|
+
IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l
|
62
|
+
ciB3aXRob3V0IGV4cHJlc3Mgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gTWlj
|
63
|
+
cm9zb2Z0IENvcnBvcmF0aW9uLjwvQ29weXJpZ2h0PjxCcmFuZExvZ29Vcmk+
|
64
|
+
aHR0cDovL2Rldi52aXJ0dWFsZWFydGgubmV0L0JyYW5kaW5nL2xvZ29fcG93
|
65
|
+
ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0
|
66
|
+
YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw
|
67
|
+
dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh
|
68
|
+
bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD41NTllYjc0
|
69
|
+
ZjExZjg0NDJmOWU3ZWE3MmMyYjY5ZTVhM3xTSU5NMDAwMDA5fDAyLjAwLjE4
|
70
|
+
My4yMzAwfFNJTk1TTlZNMDAwMTQ1LCBTSU5JUEVWTTAwMDAxMDwvVHJhY2VJ
|
71
|
+
ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+
|
72
|
+
MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+
|
73
|
+
MTAwIFNwZWFyIFN0LCBTYW4gRnJhbmNpc2NvLCBDQSA5NDEwNTwvTmFtZT48
|
74
|
+
UG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjE1MjQwNDc4NTI8L0xhdGl0dWRlPjxM
|
75
|
+
b25naXR1ZGU+LTEyMi4zOTM5OTcxOTIzODM8L0xvbmdpdHVkZT48L1BvaW50
|
76
|
+
PjxCb3VuZGluZ0JveD48U291dGhMYXRpdHVkZT4zNy43ODgyODk2ODcyMTQ1
|
77
|
+
MjI8L1NvdXRoTGF0aXR1ZGU+PFdlc3RMb25naXR1ZGU+LTEyMi40MDA1MTQy
|
78
|
+
MzQ5MjYzMjwvV2VzdExvbmdpdHVkZT48Tm9ydGhMYXRpdHVkZT4zNy43OTYw
|
79
|
+
MTUxMjIzNTU4NzU8L05vcnRoTGF0aXR1ZGU+PEVhc3RMb25naXR1ZGU+LTEy
|
80
|
+
Mi4zODc0ODAxNDk4Mzk2ODwvRWFzdExvbmdpdHVkZT48L0JvdW5kaW5nQm94
|
81
|
+
PjxFbnRpdHlUeXBlPkFkZHJlc3M8L0VudGl0eVR5cGU+PEFkZHJlc3M+PEFk
|
82
|
+
ZHJlc3NMaW5lPjEwMCBTcGVhciBTdDwvQWRkcmVzc0xpbmU+PEFkbWluRGlz
|
83
|
+
dHJpY3Q+Q0E8L0FkbWluRGlzdHJpY3Q+PEFkbWluRGlzdHJpY3QyPlNhbiBG
|
84
|
+
cmFuY2lzY28gQ28uPC9BZG1pbkRpc3RyaWN0Mj48Q291bnRyeVJlZ2lvbj5V
|
85
|
+
bml0ZWQgU3RhdGVzPC9Db3VudHJ5UmVnaW9uPjxGb3JtYXR0ZWRBZGRyZXNz
|
86
|
+
PjEwMCBTcGVhciBTdCwgU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDU8L0Zvcm1h
|
87
|
+
dHRlZEFkZHJlc3M+PExvY2FsaXR5PlNhbiBGcmFuY2lzY288L0xvY2FsaXR5
|
88
|
+
PjxQb3N0YWxDb2RlPjk0MTA1PC9Qb3N0YWxDb2RlPjwvQWRkcmVzcz48Q29u
|
89
|
+
ZmlkZW5jZT5IaWdoPC9Db25maWRlbmNlPjxNYXRjaENvZGU+R29vZDwvTWF0
|
90
|
+
Y2hDb2RlPjxHZW9jb2RlUG9pbnQ+PExhdGl0dWRlPjM3Ljc5MjE1MjQwNDc4
|
91
|
+
NTI8L0xhdGl0dWRlPjxMb25naXR1ZGU+LTEyMi4zOTM5OTcxOTIzODM8L0xv
|
92
|
+
bmdpdHVkZT48Q2FsY3VsYXRpb25NZXRob2Q+UGFyY2VsPC9DYWxjdWxhdGlv
|
93
|
+
bk1ldGhvZD48VXNhZ2VUeXBlPkRpc3BsYXk8L1VzYWdlVHlwZT48L0dlb2Nv
|
94
|
+
ZGVQb2ludD48R2VvY29kZVBvaW50PjxMYXRpdHVkZT4zNy43OTIzNjIyMTMx
|
95
|
+
MzQ4PC9MYXRpdHVkZT48TG9uZ2l0dWRlPi0xMjIuMzkzODI5MzQ1NzAzPC9M
|
96
|
+
b25naXR1ZGU+PENhbGN1bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0Nh
|
97
|
+
bGN1bGF0aW9uTWV0aG9kPjxVc2FnZVR5cGU+Um91dGU8L1VzYWdlVHlwZT48
|
98
|
+
L0dlb2NvZGVQb2ludD48L0xvY2F0aW9uPjwvUmVzb3VyY2VzPjwvUmVzb3Vy
|
99
|
+
Y2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9SZXNwb25zZT4=
|
100
|
+
http_version:
|
101
|
+
recorded_at: Sat, 14 Dec 2013 05:40:44 GMT
|
102
|
+
recorded_with: VCR 2.8.0
|
@@ -0,0 +1,91 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://dev.virtualearth.net/REST/v1/Locations/440%20King%20William%20Street,%20Adelaide,%20Australia?key=AuWcmtBIoPeOubm9BtcN44hTmWw_wNoJ5NEO2L0RaKrGAUE_nlwciKAqwapdq7k7&o=xml
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- ! '*/*'
|
12
|
+
User-Agent:
|
13
|
+
- Ruby
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Cache-Control:
|
20
|
+
- no-cache
|
21
|
+
Transfer-Encoding:
|
22
|
+
- chunked
|
23
|
+
Content-Type:
|
24
|
+
- application/xml; charset=utf-8
|
25
|
+
Server:
|
26
|
+
- Microsoft-IIS/8.0
|
27
|
+
X-Bm-Traceid:
|
28
|
+
- 2f00297848b04bf78f73efdb6c7b8c2b
|
29
|
+
X-Bm-Srv:
|
30
|
+
- SINM001003, SINMSNVM000034, SINMSNVM000039
|
31
|
+
X-Ms-Bm-Ws-Info:
|
32
|
+
- '0'
|
33
|
+
X-Aspnet-Version:
|
34
|
+
- 4.0.30319
|
35
|
+
X-Powered-By:
|
36
|
+
- ASP.NET
|
37
|
+
Date:
|
38
|
+
- Thu, 26 Dec 2013 09:48:30 GMT
|
39
|
+
body:
|
40
|
+
encoding: ASCII-8BIT
|
41
|
+
string: !binary |-
|
42
|
+
77u/PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48UmVz
|
43
|
+
cG9uc2UgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNj
|
44
|
+
aGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8y
|
45
|
+
MDAxL1hNTFNjaGVtYSIgeG1sbnM9Imh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29m
|
46
|
+
dC5jb20vc2VhcmNoL2xvY2FsL3dzL3Jlc3QvdjEiPjxDb3B5cmlnaHQ+Q29w
|
47
|
+
eXJpZ2h0IMKpIDIwMTMgTWljcm9zb2Z0IGFuZCBpdHMgc3VwcGxpZXJzLiBB
|
48
|
+
bGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIEFQSSBjYW5ub3QgYmUgYWNjZXNz
|
49
|
+
ZWQgYW5kIHRoZSBjb250ZW50IGFuZCBhbnkgcmVzdWx0cyBtYXkgbm90IGJl
|
50
|
+
IHVzZWQsIHJlcHJvZHVjZWQgb3IgdHJhbnNtaXR0ZWQgaW4gYW55IG1hbm5l
|
51
|
+
ciB3aXRob3V0IGV4cHJlc3Mgd3JpdHRlbiBwZXJtaXNzaW9uIGZyb20gTWlj
|
52
|
+
cm9zb2Z0IENvcnBvcmF0aW9uLjwvQ29weXJpZ2h0PjxCcmFuZExvZ29Vcmk+
|
53
|
+
aHR0cDovL2Rldi52aXJ0dWFsZWFydGgubmV0L0JyYW5kaW5nL2xvZ29fcG93
|
54
|
+
ZXJlZF9ieS5wbmc8L0JyYW5kTG9nb1VyaT48U3RhdHVzQ29kZT4yMDA8L1N0
|
55
|
+
YXR1c0NvZGU+PFN0YXR1c0Rlc2NyaXB0aW9uPk9LPC9TdGF0dXNEZXNjcmlw
|
56
|
+
dGlvbj48QXV0aGVudGljYXRpb25SZXN1bHRDb2RlPlZhbGlkQ3JlZGVudGlh
|
57
|
+
bHM8L0F1dGhlbnRpY2F0aW9uUmVzdWx0Q29kZT48VHJhY2VJZD4yZjAwMjk3
|
58
|
+
ODQ4YjA0YmY3OGY3M2VmZGI2YzdiOGMyYnxTSU5NMDAxMDAzfDAyLjAwLjE4
|
59
|
+
My4yMzAwfFNJTk1TTlZNMDAwMDM0LCBTSU5NU05WTTAwMDAzOTwvVHJhY2VJ
|
60
|
+
ZD48UmVzb3VyY2VTZXRzPjxSZXNvdXJjZVNldD48RXN0aW1hdGVkVG90YWw+
|
61
|
+
MTwvRXN0aW1hdGVkVG90YWw+PFJlc291cmNlcz48TG9jYXRpb24+PE5hbWU+
|
62
|
+
NDAyLTQ0MCBLaW5nIFdpbGxpYW0gU3QsIEFkZWxhaWRlLCBTQSA1MDAwPC9O
|
63
|
+
YW1lPjxQb2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4MjwvTGF0aXR1ZGU+PExv
|
64
|
+
bmdpdHVkZT4xMzguNjAwNzg0PC9Mb25naXR1ZGU+PC9Qb2ludD48Qm91bmRp
|
65
|
+
bmdCb3g+PFNvdXRoTGF0aXR1ZGU+LTM0LjkzODQ0NDcxNzU3MDY3NTwvU291
|
66
|
+
dGhMYXRpdHVkZT48V2VzdExvbmdpdHVkZT4xMzguNTk0NTAxOTcwOTYwOTU8
|
67
|
+
L1dlc3RMb25naXR1ZGU+PE5vcnRoTGF0aXR1ZGU+LTM0LjkzMDcxOTI4MjQy
|
68
|
+
OTMyMjwvTm9ydGhMYXRpdHVkZT48RWFzdExvbmdpdHVkZT4xMzguNjA3MDY2
|
69
|
+
MDI5MDM5MDY8L0Vhc3RMb25naXR1ZGU+PC9Cb3VuZGluZ0JveD48RW50aXR5
|
70
|
+
VHlwZT5BZGRyZXNzPC9FbnRpdHlUeXBlPjxBZGRyZXNzPjxBZGRyZXNzTGlu
|
71
|
+
ZT40MDItNDQwIEtpbmcgV2lsbGlhbSBTdDwvQWRkcmVzc0xpbmU+PEFkbWlu
|
72
|
+
RGlzdHJpY3Q+U0E8L0FkbWluRGlzdHJpY3Q+PENvdW50cnlSZWdpb24+QXVz
|
73
|
+
dHJhbGlhPC9Db3VudHJ5UmVnaW9uPjxGb3JtYXR0ZWRBZGRyZXNzPjQwMi00
|
74
|
+
NDAgS2luZyBXaWxsaWFtIFN0LCBBZGVsYWlkZSwgU0EgNTAwMDwvRm9ybWF0
|
75
|
+
dGVkQWRkcmVzcz48TG9jYWxpdHk+QWRlbGFpZGU8L0xvY2FsaXR5PjxQb3N0
|
76
|
+
YWxDb2RlPjUwMDA8L1Bvc3RhbENvZGU+PC9BZGRyZXNzPjxDb25maWRlbmNl
|
77
|
+
PkhpZ2g8L0NvbmZpZGVuY2U+PE1hdGNoQ29kZT5Hb29kPC9NYXRjaENvZGU+
|
78
|
+
PEdlb2NvZGVQb2ludD48TGF0aXR1ZGU+LTM0LjkzNDU4MjwvTGF0aXR1ZGU+
|
79
|
+
PExvbmdpdHVkZT4xMzguNjAwNzg0PC9Mb25naXR1ZGU+PENhbGN1bGF0aW9u
|
80
|
+
TWV0aG9kPlJvb2Z0b3A8L0NhbGN1bGF0aW9uTWV0aG9kPjxVc2FnZVR5cGU+
|
81
|
+
RGlzcGxheTwvVXNhZ2VUeXBlPjwvR2VvY29kZVBvaW50PjxHZW9jb2RlUG9p
|
82
|
+
bnQ+PExhdGl0dWRlPi0zNC45MzQ1ODkzODU5ODYzMjg8L0xhdGl0dWRlPjxM
|
83
|
+
b25naXR1ZGU+MTM4LjYwMDUwOTY0MzU1NDY5PC9Mb25naXR1ZGU+PENhbGN1
|
84
|
+
bGF0aW9uTWV0aG9kPkludGVycG9sYXRpb248L0NhbGN1bGF0aW9uTWV0aG9k
|
85
|
+
PjxVc2FnZVR5cGU+RGlzcGxheTwvVXNhZ2VUeXBlPjxVc2FnZVR5cGU+Um91
|
86
|
+
dGU8L1VzYWdlVHlwZT48L0dlb2NvZGVQb2ludD48L0xvY2F0aW9uPjwvUmVz
|
87
|
+
b3VyY2VzPjwvUmVzb3VyY2VTZXQ+PC9SZXNvdXJjZVNldHM+PC9SZXNwb25z
|
88
|
+
ZT4=
|
89
|
+
http_version:
|
90
|
+
recorded_at: Thu, 26 Dec 2013 09:48:29 GMT
|
91
|
+
recorded_with: VCR 2.8.0
|