citibikenyc 0.0.1
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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +8 -0
- data/Gemfile +2 -0
- data/LICENSE +22 -0
- data/README.md +69 -0
- data/Rakefile +30 -0
- data/citibikenyc.gemspec +26 -0
- data/lib/citibikenyc.rb +26 -0
- data/lib/citibikenyc/api.rb +21 -0
- data/lib/citibikenyc/client.rb +10 -0
- data/lib/citibikenyc/client/branches.rb +24 -0
- data/lib/citibikenyc/client/helmets.rb +24 -0
- data/lib/citibikenyc/client/stations.rb +35 -0
- data/lib/citibikenyc/configuration.rb +78 -0
- data/lib/citibikenyc/connection.rb +27 -0
- data/lib/citibikenyc/error.rb +7 -0
- data/lib/citibikenyc/request.rb +45 -0
- data/lib/citibikenyc/version.rb +3 -0
- data/lib/faraday/raise_http_exception.rb +27 -0
- data/spec/citibikenyc/client/branches_spec.rb +29 -0
- data/spec/citibikenyc/client/helmets_spec.rb +29 -0
- data/spec/citibikenyc/client/stations_spec.rb +53 -0
- data/spec/citibikenyc_spec.rb +93 -0
- data/spec/fixtures/branches.json +253 -0
- data/spec/fixtures/helmets.json +185 -0
- data/spec/fixtures/stations.json +1 -0
- data/spec/fixtures/stations_update_only.json +1 -0
- data/spec/spec_helper.rb +51 -0
- metadata +208 -0
@@ -0,0 +1,45 @@
|
|
1
|
+
module Citibikenyc
|
2
|
+
# Defines HTTP request methods
|
3
|
+
module Request
|
4
|
+
# Perform an HTTP GET request
|
5
|
+
def get(path, options={}, raw=false, unformatted=true)
|
6
|
+
request(:get, path, options, raw, unformatted)
|
7
|
+
end
|
8
|
+
|
9
|
+
# Perform an HTTP POST request
|
10
|
+
def post(path, options={}, raw=false, unformatted=true)
|
11
|
+
request(:post, path, options, raw, unformatted)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Perform an HTTP PUT request
|
15
|
+
def put(path, options={}, raw=false, unformatted=true)
|
16
|
+
request(:put, path, options, raw, unformatted)
|
17
|
+
end
|
18
|
+
|
19
|
+
# Perform an HTTP DELETE request
|
20
|
+
def delete(path, options={}, raw=false, unformatted=true)
|
21
|
+
request(:delete, path, options, raw, unformatted)
|
22
|
+
end
|
23
|
+
|
24
|
+
private
|
25
|
+
|
26
|
+
# Perform an HTTP request
|
27
|
+
def request(method, path, options, raw=false, unformatted=true)
|
28
|
+
response = connection(raw).send(method) do |request|
|
29
|
+
path = formatted_path(path) unless unformatted
|
30
|
+
case method
|
31
|
+
when :get, :delete
|
32
|
+
request.url(path, options)
|
33
|
+
when :post, :put
|
34
|
+
request.path = path
|
35
|
+
request.body = options unless options.empty?
|
36
|
+
end
|
37
|
+
end
|
38
|
+
raw ? response : response.body
|
39
|
+
end
|
40
|
+
|
41
|
+
def formatted_path(path)
|
42
|
+
[path, format].compact.join('.')
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
|
3
|
+
# @private
|
4
|
+
module FaradayMiddleware
|
5
|
+
# @private
|
6
|
+
class RaiseHttpException < Faraday::Middleware
|
7
|
+
def call(env)
|
8
|
+
@app.call(env).on_complete do |response|
|
9
|
+
case response[:status].to_i
|
10
|
+
when 404
|
11
|
+
raise Citibikenyc::NotFound, error_message(response)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def initialize(app)
|
17
|
+
super app
|
18
|
+
@parser = nil
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def error_message(response, body=nil)
|
24
|
+
"#{response[:method].to_s.upcase} #{response[:url].to_s}: #{[response[:status].to_s, body ? body : response[:body]].compact.join(': ')}"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Citibikenyc::Client do
|
4
|
+
before do
|
5
|
+
@client = Citibikenyc::Client.new
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".branches" do
|
9
|
+
before do
|
10
|
+
stub_get('v1/branch/list').
|
11
|
+
to_return(:body => fixture("branches.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should get the correct resource" do
|
15
|
+
@client.branches
|
16
|
+
a_get('v1/branch/list').should have_been_made
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the branches info" do
|
20
|
+
data = @client.branches
|
21
|
+
data.keys.should be == ["ok", "meta", "results", "lastUpdate"]
|
22
|
+
data.results.should be_a Array
|
23
|
+
data.lastUpdate.should be_a Fixnum
|
24
|
+
data.results.each do |station|
|
25
|
+
station.keys.should be == ["id", "latitude", "longitude", "label"]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Citibikenyc::Client do
|
4
|
+
before do
|
5
|
+
@client = Citibikenyc::Client.new
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".helmets" do
|
9
|
+
before do
|
10
|
+
stub_get('v1/helmet/list').
|
11
|
+
to_return(:body => fixture("helmets.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should get the correct resource" do
|
15
|
+
@client.helmets
|
16
|
+
a_get('v1/helmet/list').should have_been_made
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the helmets info" do
|
20
|
+
data = @client.helmets
|
21
|
+
data.keys.should be == ["ok", "meta", "results", "lastUpdate"]
|
22
|
+
data.results.should be_a Array
|
23
|
+
data.lastUpdate.should be_a Fixnum
|
24
|
+
data.results.each do |station|
|
25
|
+
station.keys.should be == ["id", "address", "latitude", "longitude", "label"]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require File.expand_path('../../../spec_helper', __FILE__)
|
2
|
+
|
3
|
+
describe Citibikenyc::Client do
|
4
|
+
before do
|
5
|
+
@client = Citibikenyc::Client.new
|
6
|
+
end
|
7
|
+
|
8
|
+
describe ".stations" do
|
9
|
+
before do
|
10
|
+
stub_get('data2/stations.php').
|
11
|
+
to_return(:body => fixture("stations.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should get the correct resource" do
|
15
|
+
@client.stations
|
16
|
+
a_get('data2/stations.php').should have_been_made
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the stations info" do
|
20
|
+
data = @client.stations
|
21
|
+
data.keys.should be == ["ok", "meta", "results", "activeStations", "totalStations", "lastUpdate"]
|
22
|
+
data.results.should be_a Array
|
23
|
+
data.activeStations.should be_a Fixnum
|
24
|
+
data.totalStations.should be_a Fixnum
|
25
|
+
data.lastUpdate.should be_a Fixnum
|
26
|
+
data.results.each do |station|
|
27
|
+
station.keys.should be == ["id", "status", "latitude", "longitude", "label", "stationAddress", "availableBikes", "availableDocks", "nearbyStations"]
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
describe ".stations_status" do
|
33
|
+
before do
|
34
|
+
stub_get('data2/stations.php?updateOnly=true').
|
35
|
+
to_return(:body => fixture("stations_update_only.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should get the correct resource" do
|
39
|
+
@client.stations_status
|
40
|
+
a_get('data2/stations.php?updateOnly=true').should have_been_made
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should return the stations status" do
|
44
|
+
data = @client.stations_status
|
45
|
+
data.keys.should be == ["ok", "meta", "results", "lastUpdate"]
|
46
|
+
data.results.should be_a Array
|
47
|
+
data.lastUpdate.should be_a Fixnum
|
48
|
+
data.results.each do |station|
|
49
|
+
station.keys.should be == ["id", "status", "availableBikes", "availableDocks"]
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Citibikenyc do
|
4
|
+
after do
|
5
|
+
Citibikenyc.reset
|
6
|
+
end
|
7
|
+
|
8
|
+
context "when delegating to a client" do
|
9
|
+
before do
|
10
|
+
stub_get("data2/stations.php").
|
11
|
+
to_return(:body => fixture("stations.json"), :headers => {:content_type => "application/json; charset=utf-8"})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should get the correct resource" do
|
15
|
+
Citibikenyc.stations()
|
16
|
+
a_get("data2/stations.php").should have_been_made
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should return the same results as a client" do
|
20
|
+
Citibikenyc.stations().should == Citibikenyc::Client.new.stations()
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe ".client" do
|
25
|
+
it "should be a Citibikenyc::Client" do
|
26
|
+
Citibikenyc.client.should be_a Citibikenyc::Client
|
27
|
+
end
|
28
|
+
|
29
|
+
describe ".adapter" do
|
30
|
+
it "should return the default adapter" do
|
31
|
+
Citibikenyc.adapter.should == Citibikenyc::Configuration::DEFAULT_ADAPTER
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
describe ".adapter=" do
|
36
|
+
it "should set the adapter" do
|
37
|
+
Citibikenyc.adapter = :typhoeus
|
38
|
+
Citibikenyc.adapter.should == :typhoeus
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
describe ".endpoint" do
|
43
|
+
it "should return the default endpoint" do
|
44
|
+
Citibikenyc.endpoint.should == Citibikenyc::Configuration::DEFAULT_ENDPOINT
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe ".endpoint=" do
|
49
|
+
it "should set the endpoint" do
|
50
|
+
Citibikenyc.endpoint = 'http://edgar.com.ve'
|
51
|
+
Citibikenyc.endpoint.should == 'http://edgar.com.ve'
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
describe ".format" do
|
56
|
+
it "should return the default format" do
|
57
|
+
Citibikenyc.format.should == Citibikenyc::Configuration::DEFAULT_FORMAT
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
describe ".format=" do
|
62
|
+
it "should set the format" do
|
63
|
+
Citibikenyc.format = 'xml'
|
64
|
+
Citibikenyc.format.should == 'xml'
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
describe ".user_agent" do
|
69
|
+
it "should return the default user agent" do
|
70
|
+
Citibikenyc.user_agent.should == Citibikenyc::Configuration::DEFAULT_USER_AGENT
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe ".user_agent=" do
|
75
|
+
it "should set the user_agent" do
|
76
|
+
Citibikenyc.user_agent = 'Custom User Agent'
|
77
|
+
Citibikenyc.user_agent.should == 'Custom User Agent'
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
describe ".configure" do
|
82
|
+
Citibikenyc::Configuration::VALID_OPTIONS_KEYS.each do |key|
|
83
|
+
it "should set the #{key}" do
|
84
|
+
Citibikenyc.configure do |config|
|
85
|
+
config.send("#{key}=", key)
|
86
|
+
Citibikenyc.send(key).should == key
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,253 @@
|
|
1
|
+
{"ok": true, "meta": [], "results":[
|
2
|
+
{ "id":1, "latitude":40.7086647301912, "longitude":-74.0108752995729, "label":"120 Broadway" },
|
3
|
+
{ "id":2, "latitude":40.7533264160156, "longitude":-73.9794006347656, "label":"330 Madison Ave" },
|
4
|
+
{ "id":3, "latitude":40.7042541503906, "longitude":-74.0070037841797, "label":"111 Wall St" },
|
5
|
+
{ "id":6, "latitude":40.7781944274902, "longitude":-73.9814147949219, "label":"170 West 72nd St" },
|
6
|
+
{ "id":7, "latitude":40.7620277404785, "longitude":-73.9709930419922, "label":"460 Park Ave" },
|
7
|
+
{ "id":8, "latitude":40.7458648681641, "longitude":-73.9814529418945, "label":"One Park Ave" },
|
8
|
+
{ "id":11, "latitude":40.8499298095703, "longitude":-73.9363708496094, "label":"4249 Broadway" },
|
9
|
+
{ "id":12, "latitude":40.7606687396765, "longitude":-73.8306080549955, "label":"38-17 Main St" },
|
10
|
+
{ "id":15, "latitude":40.7591018676758, "longitude":-73.9716873168945, "label":"399 Park Ave" },
|
11
|
+
{ "id":16, "latitude":40.764370188117, "longitude":-73.9645924419165, "label":"1078 Third Ave" },
|
12
|
+
{ "id":17, "latitude":40.7369537353516, "longitude":-73.9923782348633, "label":"79 Fifth Ave" },
|
13
|
+
{ "id":18, "latitude":40.7510966062546, "longitude":-73.9907480031252, "label":"201 W. 34th St" },
|
14
|
+
{ "id":21, "latitude":40.7720336914063, "longitude":-73.9524993896484, "label":"1512 1st Ave" },
|
15
|
+
{ "id":22, "latitude":40.7431371510029, "longitude":-73.9927040040493, "label":"717 Ave of The Americas" },
|
16
|
+
{ "id":23, "latitude":40.8123200386763, "longitude":-73.9571050554514, "label":"1310 Amsterdam Ave" },
|
17
|
+
{ "id":24, "latitude":40.7531350851059, "longitude":-73.9727926254272, "label":"734 3rd Ave" },
|
18
|
+
{ "id":27, "latitude":40.704963684082, "longitude":-74.0144500732422, "label":"One Broadway" },
|
19
|
+
{ "id":28, "latitude":40.7202813774347, "longitude":-74.0085786581039, "label":"127 Hudson St" },
|
20
|
+
{ "id":29, "latitude":40.6277257204056, "longitude":-74.0761998295784, "label":"577 Bay St" },
|
21
|
+
{ "id":33, "latitude":40.6931059062481, "longitude":-73.9683984965086, "label":"430 Myrtle Ave" },
|
22
|
+
{ "id":34, "latitude":40.6431083679199, "longitude":-74.0127792358398, "label":"5324 5th Ave" },
|
23
|
+
{ "id":37, "latitude":40.6090660095215, "longitude":-73.9581451416016, "label":"1501 Kings Hwy" },
|
24
|
+
{ "id":39, "latitude":40.7062547653914, "longitude":-73.7964548170567, "label":"89-50 164th St" },
|
25
|
+
{ "id":38, "latitude":41.3265342712402, "longitude":-73.6860885620117, "label":"332 Route 100 N." },
|
26
|
+
{ "id":43, "latitude":40.7475118339062, "longitude":-73.8855108618736, "label":"80-19 Roosevelt Ave" },
|
27
|
+
{ "id":44, "latitude":40.7288131713867, "longitude":-73.9532775878906, "label":"836 Manhattan Ave" },
|
28
|
+
{ "id":45, "latitude":40.7522184401751, "longitude":-73.7019310891628, "label":"272-06 Union Tpke" },
|
29
|
+
{ "id":51, "latitude":40.6124420166016, "longitude":-74.1274795532227, "label":"1910 Victory Blvd" },
|
30
|
+
{ "id":49, "latitude":40.7169418334961, "longitude":-73.8270568847656, "label":"176-50 Union Tpke" },
|
31
|
+
{ "id":50, "latitude":40.7753799855709, "longitude":-73.8244503736496, "label":"25-47 Parsons Blvd" },
|
32
|
+
{ "id":55, "latitude":40.7566604614258, "longitude":-73.9833602905273, "label":"1155 Avenue of The Americas" },
|
33
|
+
{ "id":56, "latitude":40.7672309875488, "longitude":-73.9560623168945, "label":"1330 First Ave" },
|
34
|
+
{ "id":57, "latitude":40.7675553113222, "longitude":-73.9684447646141, "label":"757 Madison Ave" },
|
35
|
+
{ "id":60, "latitude":40.8817745000124, "longitude":-73.8823994994164, "label":"3475 Jerome Ave" },
|
36
|
+
{ "id":62, "latitude":40.8626289367676, "longitude":-73.8985137939453, "label":"2481 Creston Ave" },
|
37
|
+
{ "id":61, "latitude":40.8168678283691, "longitude":-73.919677734375, "label":"349 E. 149th St" },
|
38
|
+
{ "id":66, "latitude":40.8117713928223, "longitude":-73.8823699951172, "label":"550 Hunts Point Ave" },
|
39
|
+
{ "id":68, "latitude":40.8654049783945, "longitude":-73.8669238239527, "label":"704 Allerton Ave" },
|
40
|
+
{ "id":67, "latitude":40.9061128646135, "longitude":-73.9043661206961, "label":"5671 Riverdale Ave" },
|
41
|
+
{ "id":71, "latitude":40.8217697143555, "longitude":-73.8193283081055, "label":"3924 E. Tremont Ave" },
|
42
|
+
{ "id":73, "latitude":40.7158349454403, "longitude":-73.9864826202393, "label":"411 Grand St" },
|
43
|
+
{ "id":72, "latitude":40.7290253788233, "longitude":-73.9980590343475, "label":"555 Laguardia Pl" },
|
44
|
+
{ "id":76, "latitude":40.6248570978642, "longitude":-73.9638662338257, "label":"1220 Ave J" },
|
45
|
+
{ "id":78, "latitude":40.6559066772461, "longitude":-73.9311828613281, "label":"702 Utica Ave" },
|
46
|
+
{ "id":77, "latitude":40.7652298361063, "longitude":-73.7717865407467, "label":"39-01 Bell Blvd" },
|
47
|
+
{ "id":81, "latitude":40.7758091390133, "longitude":-73.9111708849669, "label":"22-16 31st St" },
|
48
|
+
{ "id":83, "latitude":40.7341772317886, "longitude":-73.7835835665464, "label":"69-80 188th St" },
|
49
|
+
{ "id":82, "latitude":40.6871239095926, "longitude":-73.8220202922821, "label":"121-11 Liberty Ave" },
|
50
|
+
{ "id":87, "latitude":40.9719581604004, "longitude":-73.805534362793, "label":"725 White Plains Rd" },
|
51
|
+
{ "id":89, "latitude":40.9396337717772, "longitude":-73.8329080492258, "label":"95 Pondfield Rd" },
|
52
|
+
{ "id":88, "latitude":40.9942398071289, "longitude":-73.8798141479492, "label":"65 Main St" },
|
53
|
+
{ "id":95, "latitude":41.0303611755371, "longitude":-73.7407684326172, "label":"220 Westchester Ave" },
|
54
|
+
{ "id":93, "latitude":41.2744820863009, "longitude":-73.7831758707762, "label":"360 Downing Dr" },
|
55
|
+
{ "id":94, "latitude":40.9523735046387, "longitude":-73.72607421875, "label":"711 E. Boston Post Rd" },
|
56
|
+
{ "id":99, "latitude":40.7766694575548, "longitude":-73.5292330384254, "label":"255 North Broadway" },
|
57
|
+
{ "id":100, "latitude":41.0331115722656, "longitude":-73.7645492553711, "label":"244 Main St" },
|
58
|
+
{ "id":101, "latitude":40.6810646057129, "longitude":-73.9954528808594, "label":"375 Court St" },
|
59
|
+
{ "id":104, "latitude":40.7852592468262, "longitude":-73.7296447753906, "label":"111 Great Neck Rd" },
|
60
|
+
{ "id":105, "latitude":40.6737861633301, "longitude":-73.9762496948242, "label":"114 7th Ave" },
|
61
|
+
{ "id":106, "latitude":40.5889472961426, "longitude":-73.6598663330078, "label":"135 E. Park Ave" },
|
62
|
+
{ "id":108, "latitude":40.6397842615843, "longitude":-73.7000642716885, "label":"1316 Broadway" },
|
63
|
+
{ "id":109, "latitude":40.6533317565918, "longitude":-73.5880126953125, "label":"180 W. Merrick Rd" },
|
64
|
+
{ "id":110, "latitude":40.7762993127108, "longitude":-73.4660596400499, "label":"1125 Old Country Rd" },
|
65
|
+
{ "id":114, "latitude":40.7080726623535, "longitude":-73.6794586181641, "label":"1060 Hempstead Tpke" },
|
66
|
+
{ "id":4, "latitude":40.76526068151, "longitude":-73.9819691330194, "label":"1748 Broadway" },
|
67
|
+
{ "id":115, "latitude":40.6562957763672, "longitude":-73.6442489624023, "label":"297 Merrick Rd" },
|
68
|
+
{ "id":5, "latitude":40.7947311401367, "longitude":-73.9712219238281, "label":"2560 Broadway" },
|
69
|
+
{ "id":116, "latitude":40.771354675293, "longitude":-73.6479034423828, "label":"1000 Willis Ave" },
|
70
|
+
{ "id":9, "latitude":40.7877807617188, "longitude":-73.9763946533203, "label":"2350 Broadway" },
|
71
|
+
{ "id":10, "latitude":40.7799644470215, "longitude":-73.9559631347656, "label":"123 E. 86th St" },
|
72
|
+
{ "id":13, "latitude":40.7701148092747, "longitude":-73.9613543450832, "label":"171 E. 72nd St" },
|
73
|
+
{ "id":14, "latitude":40.776741027832, "longitude":-73.9621124267578, "label":"1042 Madison Ave" },
|
74
|
+
{ "id":119, "latitude":40.7051773071289, "longitude":-73.5695571899414, "label":"670 Merrick Ave" },
|
75
|
+
{ "id":122, "latitude":40.5824828892946, "longitude":-73.8356211036444, "label":"113-01 Beach Channel Dr" },
|
76
|
+
{ "id":20, "latitude":40.805103302002, "longitude":-73.9664764404297, "label":"2861 Broadway" },
|
77
|
+
{ "id":120, "latitude":40.6725234985352, "longitude":-73.5079803466797, "label":"3295 Sunrise Hwy" },
|
78
|
+
{ "id":25, "latitude":40.7962875366211, "longitude":-73.9355697631836, "label":"2261 1st Ave" },
|
79
|
+
{ "id":26, "latitude":40.7129821777344, "longitude":-74.0078201293945, "label":"250 Broadway" },
|
80
|
+
{ "id":121, "latitude":40.7411516457796, "longitude":-73.6628794670105, "label":"2301 Jericho Turnpike" },
|
81
|
+
{ "id":126, "latitude":40.6787452697754, "longitude":-73.8647613525391, "label":"1200 Liberty Ave" },
|
82
|
+
{ "id":125, "latitude":40.6476907432079, "longitude":-73.8817819207907, "label":"1388 Pennsylvania Ave" },
|
83
|
+
{ "id":30, "latitude":40.7596168518066, "longitude":-73.9770278930664, "label":"640 5th Ave" },
|
84
|
+
{ "id":127, "latitude":40.7467393577099, "longitude":-73.9434874802828, "label":"One Court Square" },
|
85
|
+
{ "id":31, "latitude":40.6944847106934, "longitude":-73.9918975830078, "label":"181 Montague St" },
|
86
|
+
{ "id":32, "latitude":40.6800851225853, "longitude":-73.9448621124029, "label":"1398 Fulton St" },
|
87
|
+
{ "id":35, "latitude":40.6502075195313, "longitude":-73.9582672119141, "label":"885 Flatbush Ave" },
|
88
|
+
{ "id":128, "latitude":41.1274453997612, "longitude":-73.7791559100151, "label":"1022 Broadway" },
|
89
|
+
{ "id":131, "latitude":40.7455880194902, "longitude":-73.9993216842413, "label":"322 W. 23rd St" },
|
90
|
+
{ "id":36, "latitude":40.6988792419434, "longitude":-73.9176177978516, "label":"1455 Myrtle Ave" },
|
91
|
+
{ "id":132, "latitude":40.842227935791, "longitude":-73.3041915893555, "label":"6105 Jericho Turnpike" },
|
92
|
+
{ "id":40, "latitude":40.7177346199751, "longitude":-73.7376876175404, "label":"217-10 Jamaica Ave" },
|
93
|
+
{ "id":134, "latitude":41.1651306152344, "longitude":-73.8484268188477, "label":"22 Pleasantville Rd" },
|
94
|
+
{ "id":137, "latitude":40.7702255249023, "longitude":-73.0636596679688, "label":"5801 Sunrise Hwy" },
|
95
|
+
{ "id":133, "latitude":40.8551616221666, "longitude":-73.1936605274677, "label":"18 East Main St" },
|
96
|
+
{ "id":138, "latitude":41.1127624511719, "longitude":-74.1069412231445, "label":"250 Route 59" },
|
97
|
+
{ "id":139, "latitude":40.713614076376, "longitude":-73.9985720068216, "label":"Two Mott St" },
|
98
|
+
{ "id":41, "latitude":40.730324909091, "longitude":-73.8619845360518, "label":"95-12 63rd Rd" },
|
99
|
+
{ "id":140, "latitude":40.7369177788496, "longitude":-73.320547118783, "label":"1198 Deer Park Ave" },
|
100
|
+
{ "id":42, "latitude":40.7199125736952, "longitude":-73.8436536490917, "label":"107-01 71st Ave" },
|
101
|
+
{ "id":46, "latitude":40.7530143857002, "longitude":-73.9100550860167, "label":"51-31 Northern Blvd" },
|
102
|
+
{ "id":47, "latitude":40.7134283334017, "longitude":-73.9153256267309, "label":"51-10 Metropolitan Ave" },
|
103
|
+
{ "id":143, "latitude":40.7320334762335, "longitude":-73.9817672967911, "label":"262 First Ave" },
|
104
|
+
{ "id":48, "latitude":40.6317946314812, "longitude":-73.9955243468285, "label":"5420 13th Ave" },
|
105
|
+
{ "id":146, "latitude":40.6022420525551, "longitude":-73.9942543208599, "label":"2173 86th St" },
|
106
|
+
{ "id":144, "latitude":40.7534103393555, "longitude":-73.9771881103516, "label":"200 Park Ave." },
|
107
|
+
{ "id":149, "latitude":40.5773860216141, "longitude":-74.1695165634155, "label":"2825 Richmond Ave" },
|
108
|
+
{ "id":145, "latitude":40.6726191937923, "longitude":-73.7709054350853, "label":"169-21 137th Ave" },
|
109
|
+
{ "id":152, "latitude":40.828239440918, "longitude":-73.6841812133789, "label":"830 Port Washington Blvd" },
|
110
|
+
{ "id":150, "latitude":40.678092956543, "longitude":-73.896858215332, "label":"80 Jamaica Ave" },
|
111
|
+
{ "id":151, "latitude":40.674713999033, "longitude":-73.8050613552332, "label":"133-07 Rockaway Blvd" },
|
112
|
+
{ "id":155, "latitude":40.7251515984535, "longitude":-73.4861279278994, "label":"4060 Hempstead Tpke" },
|
113
|
+
{ "id":156, "latitude":40.7532386779785, "longitude":-73.4210891723633, "label":"2261 Broadhollow Rd" },
|
114
|
+
{ "id":158, "latitude":40.7553977966309, "longitude":-73.5559158325195, "label":"1150 Old Country Rd" },
|
115
|
+
{ "id":157, "latitude":40.7803077697754, "longitude":-73.248420715332, "label":"710 Suffolk Ave" },
|
116
|
+
{ "id":64, "latitude":40.7585357129574, "longitude":-73.9927589893341, "label":"401 W. 42nd St" },
|
117
|
+
{ "id":65, "latitude":40.8812561035156, "longitude":-73.9031219482422, "label":"5660 Broadway" },
|
118
|
+
{ "id":161, "latitude":40.7384184747934, "longitude":-73.4948779642582, "label":"500 Hicksville Rd" },
|
119
|
+
{ "id":162, "latitude":40.7944602966309, "longitude":-73.470832824707, "label":"100 Sunnyside Blvd" },
|
120
|
+
{ "id":163, "latitude":40.7103981077671, "longitude":-73.7936559319496, "label":"168-48 Hillside Ave" },
|
121
|
+
{ "id":167, "latitude":40.7881050109863, "longitude":-73.7285842895508, "label":"51 Middle Neck Rd" },
|
122
|
+
{ "id":168, "latitude":40.7989883422852, "longitude":-73.6610946655273, "label":"1075 Northern Blvd" },
|
123
|
+
{ "id":169, "latitude":40.7976150512695, "longitude":-73.7022323608398, "label":"66 Bayview Ave" },
|
124
|
+
{ "id":172, "latitude":40.6700706481934, "longitude":-73.5282135009766, "label":"2160 Bedford Ave" },
|
125
|
+
{ "id":173, "latitude":40.7876243591309, "longitude":-73.2007064819336, "label":"78 Carleton Ave" },
|
126
|
+
{ "id":174, "latitude":40.7608871459961, "longitude":-73.3138275146484, "label":"400 Commack Rd" },
|
127
|
+
{ "id":84, "latitude":40.9800071716309, "longitude":-73.6836471557617, "label":"1040 Boston Post Rd" },
|
128
|
+
{ "id":85, "latitude":41.127025604248, "longitude":-73.7142028808594, "label":"435 Main St" },
|
129
|
+
{ "id":175, "latitude":40.7027549743652, "longitude":-73.3772430419922, "label":"120 E. Sunrise Highway" },
|
130
|
+
{ "id":19, "latitude":40.7841856777668, "longitude":-73.9563211798668, "label":"1275 Madison Ave" },
|
131
|
+
{ "id":90, "latitude":41.3103294372559, "longitude":-73.8673400878906, "label":"3131 East Main St." },
|
132
|
+
{ "id":180, "latitude":40.8508186340332, "longitude":-73.8513641357422, "label":"1800 Williamsbridge Rd" },
|
133
|
+
{ "id":178, "latitude":40.6678733825684, "longitude":-73.4758071899414, "label":"10 Hicksville Rd" },
|
134
|
+
{ "id":179, "latitude":40.6901735812426, "longitude":-73.6852953583002, "label":"670 Franklin Ave" },
|
135
|
+
{ "id":183, "latitude":40.7476539611816, "longitude":-73.0503311157227, "label":"835 Montauk Highway" },
|
136
|
+
{ "id":96, "latitude":40.9322090148926, "longitude":-73.759033203125, "label":"1920 Palmer Ave" },
|
137
|
+
{ "id":185, "latitude":40.7424806803465, "longitude":-73.989225178957, "label":"1107 Broadway" },
|
138
|
+
{ "id":184, "latitude":40.8563613891601, "longitude":-73.3904418945313, "label":"260 E. Pulaski Rd" },
|
139
|
+
{ "id":97, "latitude":41.0431355237961, "longitude":-73.7978830933571, "label":"407 Tarrytown Rd" },
|
140
|
+
{ "id":191, "latitude":40.7645492553711, "longitude":-73.9723358154297, "label":"785 5th Ave" },
|
141
|
+
{ "id":189, "latitude":40.7507438659668, "longitude":-73.979362487793, "label":"90 Park Ave" },
|
142
|
+
{ "id":190, "latitude":40.7541596889496, "longitude":-73.6921074986458, "label":"1524 Union Turnpike" },
|
143
|
+
{ "id":197, "latitude":40.776782989502, "longitude":-73.4192199707031, "label":"425 Broad Hollow Rd Ste 105" },
|
144
|
+
{ "id":195, "latitude":40.7579174637794, "longitude":-73.9792989939451, "label":"1 Rockefeller Plaza" },
|
145
|
+
{ "id":196, "latitude":40.7525749206543, "longitude":-73.965934753418, "label":"866 United Nations Plaza - 1st Floor" },
|
146
|
+
{ "id":107, "latitude":40.8454284667969, "longitude":-73.6156997680664, "label":"Two-One Park Plaza" },
|
147
|
+
{ "id":111, "latitude":40.8101186156273, "longitude":-73.5103060305119, "label":"177 Jericho Tpke" },
|
148
|
+
{ "id":112, "latitude":40.6667175292969, "longitude":-73.4552612304688, "label":"4881 Merrick Rd" },
|
149
|
+
{ "id":113, "latitude":41.1577147990465, "longitude":-73.7730210274458, "label":"80 S. Greeley Ave" },
|
150
|
+
{ "id":117, "latitude":40.7323801517487, "longitude":-73.4490410238504, "label":"250 Conklin St" },
|
151
|
+
{ "id":118, "latitude":40.7898297160864, "longitude":-73.7040466815233, "label":"1110 Northern Blvd" },
|
152
|
+
{ "id":201, "latitude":40.7292137145996, "longitude":-73.7026672363281, "label":"215 Jericho Tpke" },
|
153
|
+
{ "id":203, "latitude":40.8075523376465, "longitude":-73.2593612670898, "label":"150 Vanderbilt Motor Pkwy" },
|
154
|
+
{ "id":202, "latitude":40.9177469462156, "longitude":-73.0540079623461, "label":"4800 Nesconset Highway" },
|
155
|
+
{ "id":209, "latitude":40.809116140008, "longitude":-73.9485394209623, "label":"201 W. 125th St" },
|
156
|
+
{ "id":123, "latitude":40.5872498452663, "longitude":-73.9538917690516, "label":"1528 Sheepshead Bay Rd" },
|
157
|
+
{ "id":206, "latitude":40.7238388061523, "longitude":-73.98486328125, "label":"50 Ave A" },
|
158
|
+
{ "id":207, "latitude":40.7397723197937, "longitude":-73.6349342018366, "label":"114 Old Country Rd" },
|
159
|
+
{ "id":208, "latitude":40.8054847717285, "longitude":-73.1802825927734, "label":"1727 Route 454" },
|
160
|
+
{ "id":212, "latitude":40.7657814025879, "longitude":-73.9134521484375, "label":"25-91 Steinway St" },
|
161
|
+
{ "id":213, "latitude":40.657752379775, "longitude":-73.5468222945929, "label":"2085 Merrick Rd" },
|
162
|
+
{ "id":214, "latitude":40.7614170759916, "longitude":-73.6896894872189, "label":"5 Dakota Dr" },
|
163
|
+
{ "id":217, "latitude":40.8804321289063, "longitude":-73.4268646240234, "label":"15 Southdown Rd" },
|
164
|
+
{ "id":218, "latitude":40.5749664306641, "longitude":-73.9968948364258, "label":"3002 Mermaid Ave" },
|
165
|
+
{ "id":219, "latitude":40.74752189219, "longitude":-73.8914962112904, "label":"37-57 74th St" },
|
166
|
+
{ "id":222, "latitude":40.7282447814941, "longitude":-74.0047836303711, "label":"200 Varick St." },
|
167
|
+
{ "id":129, "latitude":40.663828253746, "longitude":-73.8408648222685, "label":"156-19 Cross Bay Blvd" },
|
168
|
+
{ "id":52, "latitude":42.9037895202637, "longitude":-75.5704879760742, "label":"442 Old Post Rd" },
|
169
|
+
{ "id":53, "latitude":40.652172088623, "longitude":-73.7861938476563, "label":"Jfk International Airport" },
|
170
|
+
{ "id":223, "latitude":40.7403302192688, "longitude":-73.9760964363813, "label":"485 1st Ave" },
|
171
|
+
{ "id":54, "latitude":40.7439042627811, "longitude":-73.9268034696579, "label":"38-18 Queens Blvd" },
|
172
|
+
{ "id":224, "latitude":40.6588478088379, "longitude":-73.6455307006836, "label":"41 Front Street" },
|
173
|
+
{ "id":225, "latitude":40.7673645019531, "longitude":-73.98291015625, "label":"4 Columbus Circle" },
|
174
|
+
{ "id":228, "latitude":40.7475128173828, "longitude":-73.986946105957, "label":"22 W. 32nd St" },
|
175
|
+
{ "id":130, "latitude":40.6307411193848, "longitude":-74.1043090820313, "label":"445 Forest Ave" },
|
176
|
+
{ "id":231, "latitude":40.7611562311649, "longitude":-73.9669400453568, "label":"974 Third Ave" },
|
177
|
+
{ "id":229, "latitude":40.9348030090332, "longitude":-73.9020385742188, "label":"86 Main St - Station Plaza Bldg" },
|
178
|
+
{ "id":58, "latitude":40.7756052911282, "longitude":-73.9839030057192, "label":"162 Amsterdam Ave" },
|
179
|
+
{ "id":230, "latitude":40.7401237487793, "longitude":-73.9854354858398, "label":"115 E 23rd Street" },
|
180
|
+
{ "id":59, "latitude":40.7503547668457, "longitude":-73.9827041625977, "label":"411 5th Ave" },
|
181
|
+
{ "id":63, "latitude":40.8335296064615, "longitude":-73.8514769822359, "label":"1265 Castle Hill Ave" },
|
182
|
+
{ "id":234, "latitude":40.7307434082031, "longitude":-73.6364593505859, "label":"1050 Franklin Ave" },
|
183
|
+
{ "id":235, "latitude":40.7212753295898, "longitude":-74.0000228881836, "label":"476 Broadway" },
|
184
|
+
{ "id":135, "latitude":40.8656577765942, "longitude":-73.1347598880529, "label":"131 Alexander Ave" },
|
185
|
+
{ "id":136, "latitude":41.1545295715332, "longitude":-73.9879608154297, "label":"170 North Main St." },
|
186
|
+
{ "id":237, "latitude":40.8758964538574, "longitude":-72.5367279052734, "label":"180 West Montauk Hwy" },
|
187
|
+
{ "id":141, "latitude":40.631315857172, "longitude":-74.0277859568596, "label":"7501 3rd Ave" },
|
188
|
+
{ "id":236, "latitude":40.9108516573906, "longitude":-73.781708702445, "label":"238 North Avenue" },
|
189
|
+
{ "id":69, "latitude":40.8691558837891, "longitude":-73.8898010253906, "label":"234 E. 198th St" },
|
190
|
+
{ "id":142, "latitude":40.6195335388184, "longitude":-73.9901351928711, "label":"6414 18th Ave" },
|
191
|
+
{ "id":70, "latitude":40.846398845315, "longitude":-73.8318693637848, "label":"1766 Crosby Ave" },
|
192
|
+
{ "id":241, "latitude":40.7563743591309, "longitude":-73.9769287109375, "label":"400 Madison" },
|
193
|
+
{ "id":240, "latitude":40.7347116619349, "longitude":-73.990620598197, "label":"52 East 14th St" },
|
194
|
+
{ "id":74, "latitude":40.5918426513672, "longitude":-74.0871353149414, "label":"1492 Hylan Blvd" },
|
195
|
+
{ "id":75, "latitude":40.5265092104673, "longitude":-74.2012424021959, "label":"5810 Amboy Rd" },
|
196
|
+
{ "id":147, "latitude":40.7083358764648, "longitude":-74.007194519043, "label":"100 William St" },
|
197
|
+
{ "id":243, "latitude":40.6699101626873, "longitude":-73.9857544004917, "label":"424 5th Avenue" },
|
198
|
+
{ "id":246, "latitude":40.7714780420065, "longitude":-73.9819858968258, "label":"1900 Broadway" },
|
199
|
+
{ "id":247, "latitude":40.7335898280144, "longitude":-74.0032631903887, "label":"75 Christopher St." },
|
200
|
+
{ "id":79, "latitude":40.6289843469858, "longitude":-73.9183685928583, "label":"1992 Ralph Ave" },
|
201
|
+
{ "id":242, "latitude":41.0760650634766, "longitude":-73.8580856323242, "label":"2 South Broadway" },
|
202
|
+
{ "id":249, "latitude":40.5775871276855, "longitude":-73.9600524902344, "label":"702 Brighton Beach Avenue" },
|
203
|
+
{ "id":80, "latitude":40.7356712222099, "longitude":-73.8756497204304, "label":"87-11 Queens Blvd" },
|
204
|
+
{ "id":248, "latitude":40.7324860990047, "longitude":-73.8494431972504, "label":"64-20 108th Street" },
|
205
|
+
{ "id":153, "latitude":40.7232093811035, "longitude":-73.2460784912109, "label":"77 E. Main St" },
|
206
|
+
{ "id":86, "latitude":41.2064337730408, "longitude":-73.7298367917538, "label":"66 S. Moger Ave" },
|
207
|
+
{ "id":91, "latitude":41.0230699181557, "longitude":-73.7608310580254, "label":"444 Mamaroneck Ave" },
|
208
|
+
{ "id":92, "latitude":40.9944111853838, "longitude":-73.8196264207363, "label":"845 Central Park Ave" },
|
209
|
+
{ "id":98, "latitude":40.8925247937441, "longitude":-73.8194252550602, "label":"895 Pelham Pkwy" },
|
210
|
+
{ "id":102, "latitude":40.793356820941, "longitude":-73.8083732128143, "label":"153-16 Tenth Ave" },
|
211
|
+
{ "id":103, "latitude":40.8707734197378, "longitude":-73.4305988252163, "label":"349 Main St" },
|
212
|
+
{ "id":164, "latitude":40.6153411865234, "longitude":-73.7462615966797, "label":"140 Doughty Blvd" },
|
213
|
+
{ "id":124, "latitude":40.7163429260254, "longitude":-73.9973602294922, "label":"164 Canal St" },
|
214
|
+
{ "id":148, "latitude":40.7206300646067, "longitude":-74.0101524442434, "label":"388 Greenwich St" },
|
215
|
+
{ "id":165, "latitude":40.7415378838778, "longitude":-73.6399599909782, "label":"199 2nd St" },
|
216
|
+
{ "id":154, "latitude":40.7789205014706, "longitude":-73.558821156621, "label":"8001 Brush Hollow Rd" },
|
217
|
+
{ "id":166, "latitude":40.7057228088379, "longitude":-73.5930328369141, "label":"410 Uniondale Ave" },
|
218
|
+
{ "id":159, "latitude":40.9168319702148, "longitude":-72.6653442382813, "label":"209 W. Main St" },
|
219
|
+
{ "id":160, "latitude":40.7069244384766, "longitude":-73.5437545776367, "label":"651 Newbridge Rd" },
|
220
|
+
{ "id":170, "latitude":40.8027647743507, "longitude":-73.5282595484525, "label":"Robbins Lane & Jericho Turnpike" },
|
221
|
+
{ "id":171, "latitude":40.8624076843262, "longitude":-73.6327209472656, "label":"23 Glen Cove Ave" },
|
222
|
+
{ "id":181, "latitude":40.8490447998047, "longitude":-73.6461791992188, "label":"263 Sea Cliff Ave" },
|
223
|
+
{ "id":182, "latitude":40.8439979553223, "longitude":-73.3145751953125, "label":"710 Larkfield Rd" },
|
224
|
+
{ "id":186, "latitude":40.7543907165527, "longitude":-73.9862289428711, "label":"1440 Broadway" },
|
225
|
+
{ "id":176, "latitude":40.6571311950684, "longitude":-73.6726837158203, "label":"320 Merrick Rd" },
|
226
|
+
{ "id":177, "latitude":40.8898582458496, "longitude":-73.8429183959961, "label":"3955 Baychester Ave" },
|
227
|
+
{ "id":188, "latitude":40.7429949939251, "longitude":-73.616102412343, "label":"600 Old Country Rd" },
|
228
|
+
{ "id":192, "latitude":40.8251094818115, "longitude":-73.2348787039518, "label":"730 Veterans Memorial Highway" },
|
229
|
+
{ "id":193, "latitude":40.7556343078613, "longitude":-73.9713439941406, "label":"800 3rd Ave" },
|
230
|
+
{ "id":194, "latitude":40.6402397155762, "longitude":-73.948127746582, "label":"1871 Nostrand Ave" },
|
231
|
+
{ "id":200, "latitude":40.7832450866699, "longitude":-73.0987319946289, "label":"4175 Veterans Memorial Highway" },
|
232
|
+
{ "id":220, "latitude":40.7581682503223, "longitude":-73.9629556238651, "label":"1044 1st Ave" },
|
233
|
+
{ "id":221, "latitude":40.8209228515625, "longitude":-73.939079284668, "label":"2481 Adam Clayton Powell Blvd" },
|
234
|
+
{ "id":226, "latitude":40.7513427734375, "longitude":-73.9751586914063, "label":"145 East 42nd Street" },
|
235
|
+
{ "id":187, "latitude":40.7626415044069, "longitude":-73.9784923195839, "label":"1345 Avenue of The Americas" },
|
236
|
+
{ "id":227, "latitude":40.7759486138821, "longitude":-73.9560160785913, "label":"1445 Third Ave" },
|
237
|
+
{ "id":232, "latitude":40.7833290100098, "longitude":-73.9740600585938, "label":"441 Columbus Ave" },
|
238
|
+
{ "id":198, "latitude":40.8191301673651, "longitude":-73.4115444123745, "label":"300 Walt Whitman Rd" },
|
239
|
+
{ "id":239, "latitude":40.7616806030273, "longitude":-73.9817962646484, "label":"787 7th Avenue" },
|
240
|
+
{ "id":244, "latitude":40.6451950073242, "longitude":-73.9494018554688, "label":"139 Flatbush Avenue, Atlantic Terminal" },
|
241
|
+
{ "id":199, "latitude":40.6223983764648, "longitude":-73.7234497070313, "label":"530 Central Ave" },
|
242
|
+
{ "id":245, "latitude":40.7303591072559, "longitude":-73.9926651120186, "label":"749 Broadway" },
|
243
|
+
{ "id":250, "latitude":40.7131990045309, "longitude":-73.8750375062227, "label":"78-09 Metropolitan Ave" },
|
244
|
+
{ "id":204, "latitude":40.8327674865723, "longitude":-73.8908843994141, "label":"1463 Southern Blvd" },
|
245
|
+
{ "id":205, "latitude":40.6795272827148, "longitude":-73.4168472290039, "label":"241 Broadway" },
|
246
|
+
{ "id":210, "latitude":40.7257410138845, "longitude":-73.5081421583891, "label":"3375 Hempstead Turnpike" },
|
247
|
+
{ "id":211, "latitude":40.866304859519, "longitude":-73.0366621166468, "label":"684 Middle Country Rd" },
|
248
|
+
{ "id":215, "latitude":40.6230316162109, "longitude":-74.0291366577148, "label":"502-512 86th St" },
|
249
|
+
{ "id":216, "latitude":40.6989860534668, "longitude":-73.4092712402344, "label":"455 Albany Ave" },
|
250
|
+
{ "id":233, "latitude":40.7200622558594, "longitude":-74.0022430419922, "label":"309 Canal St" },
|
251
|
+
{ "id":238, "latitude":40.6338357925415, "longitude":-73.6406131088734, "label":"3195 Long Beach Rd" }
|
252
|
+
]
|
253
|
+
,"lastUpdate": 1367853735}
|