artimis 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +8 -0
- data/Rakefile +10 -0
- data/artimis.gemspec +23 -0
- data/lib/artimis.rb +5 -0
- data/lib/artimis/camera.rb +70 -0
- data/test/camera_test.rb +70 -0
- data/test/fixtures/camera99.txt +417 -0
- data/test/fixtures/cameraselect.txt +396 -0
- data/test/helper.rb +26 -0
- metadata +73 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm use 1.9.2
|
data/Gemfile
ADDED
data/Rakefile
ADDED
data/artimis.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "artimis/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "artimis"
|
7
|
+
s.version = Artimis::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Chris Moore"]
|
10
|
+
s.email = ["chris@26webs.com"]
|
11
|
+
s.homepage = "http://github.com/cdmwebs/artimis"
|
12
|
+
s.summary = %q{A DSL for scraping the ARTIMIS website.}
|
13
|
+
s.description = %q{A DSL for scraping the ARTIMIS website.}
|
14
|
+
|
15
|
+
s.rubyforge_project = "artimis"
|
16
|
+
|
17
|
+
s.add_runtime_dependency "mechanize"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n").collect { |f| f unless f =~ /version/ }.compact
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
end
|
data/lib/artimis.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
module Artimis
|
2
|
+
class Camera
|
3
|
+
class << self
|
4
|
+
attr_writer :url
|
5
|
+
|
6
|
+
def url
|
7
|
+
@url ||= list_url
|
8
|
+
end
|
9
|
+
|
10
|
+
def all
|
11
|
+
page.links_with(:href => /\/camera\//)
|
12
|
+
end
|
13
|
+
|
14
|
+
def find(params = {})
|
15
|
+
if params[:description]
|
16
|
+
cameras = []
|
17
|
+
page.links_with(:text => params[:description]).each do |link|
|
18
|
+
camera_page = link.click
|
19
|
+
cameras << new(camera_page, :url => link.href, :description => link.text)
|
20
|
+
end
|
21
|
+
cameras
|
22
|
+
elsif params[:id]
|
23
|
+
link = page.link_with(:href => /camera#{params[:id]}/)
|
24
|
+
return nil unless link
|
25
|
+
camera_page = link.click
|
26
|
+
new(camera_page, :url => link.href, :description => link.text)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def list_url
|
33
|
+
url = 'http://www.artimis.org/cameraselect.php'
|
34
|
+
end
|
35
|
+
|
36
|
+
def agent
|
37
|
+
@agent ||= Mechanize.new
|
38
|
+
end
|
39
|
+
|
40
|
+
def page
|
41
|
+
@page ||= agent.get(url)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
attr_reader :url, :description, :image_url
|
46
|
+
|
47
|
+
def initialize(page, params = {})
|
48
|
+
self.description = params[:description] || page.to_s
|
49
|
+
self.url = params[:url] || page.href
|
50
|
+
|
51
|
+
page.images.each do |i|
|
52
|
+
self.image_url = i.url if i.node.attributes["name"]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def url=(url)
|
59
|
+
@url = url
|
60
|
+
end
|
61
|
+
|
62
|
+
def description=(description)
|
63
|
+
@description = description
|
64
|
+
end
|
65
|
+
|
66
|
+
def image_url=(image_url)
|
67
|
+
@image_url = image_url
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
data/test/camera_test.rb
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
describe Artimis::Camera do
|
4
|
+
describe ".all" do
|
5
|
+
before do
|
6
|
+
@cameras = Artimis::Camera.all
|
7
|
+
end
|
8
|
+
|
9
|
+
it "returns a list of cameras" do
|
10
|
+
@cameras.wont_be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it "must include links to camera only" do
|
14
|
+
@cameras.first.href.must_match /\/camera\//
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe ".find" do
|
19
|
+
describe "by description" do
|
20
|
+
before do
|
21
|
+
@cameras = Artimis::Camera.find(:description => /Hamilton/)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "returns an array of cameras" do
|
25
|
+
@cameras.must_be_instance_of Array
|
26
|
+
end
|
27
|
+
|
28
|
+
it "returns only cameras that match 'Hamilton'" do
|
29
|
+
@cameras.first.description.must_match /Hamilton/i
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "by number" do
|
34
|
+
before do
|
35
|
+
@camera = Artimis::Camera.find(:id => 23)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns a single camera" do
|
39
|
+
@camera.description.must_match /brent spence/i
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "creating a camera" do
|
45
|
+
before do
|
46
|
+
@agent = Mechanize.new
|
47
|
+
@page = @agent.get("http://www.artimis.org/camera/camera23.php")
|
48
|
+
@camera = Artimis::Camera.new(@page)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "assigns the image_url" do
|
52
|
+
@camera.image_url.wont_be_nil
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
describe "an instance" do
|
57
|
+
before do
|
58
|
+
@camera = Artimis::Camera.find(:id => 23)
|
59
|
+
end
|
60
|
+
|
61
|
+
it "has a URL" do
|
62
|
+
@camera.url.must_match /\/camera/
|
63
|
+
end
|
64
|
+
|
65
|
+
it "has an image_url" do
|
66
|
+
@camera.image_url.wont_be_nil
|
67
|
+
@camera.image_url.must_match /\.jpg$/
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,417 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Sat, 02 Jul 2011 03:03:37 GMT
|
3
|
+
Server: Apache/2.0.52 (Red Hat)
|
4
|
+
X-Powered-By: PHP/4.3.9
|
5
|
+
Connection: close
|
6
|
+
Transfer-Encoding: chunked
|
7
|
+
Content-Type: text/html; charset=UTF-8
|
8
|
+
|
9
|
+
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
10
|
+
<HTML lang="en-US">
|
11
|
+
<HEAD>
|
12
|
+
|
13
|
+
<TITLE>ARTIMIS Camera Page</TITLE>
|
14
|
+
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
|
15
|
+
<meta http-equiv="REFRESH" CONTENT="60">
|
16
|
+
<meta name="classification" content="Traffic Management Systems, Intelligent Transportation Systems" />
|
17
|
+
<meta name="keywords" content="ARTIMIS, Cincinnati, Northern Kentucky, CCTV, Camera" />
|
18
|
+
<meta name="generator" content="Greater Cincinnati-Northern Kentucky Traffic Information" />
|
19
|
+
<meta name="author" content="R. Scott Evans" />
|
20
|
+
<link rel="shortcut icon" type="image/ico" href="/favicon.ico" />
|
21
|
+
<script type="text/javascript" language="Javascript">
|
22
|
+
<!--
|
23
|
+
image_name = "http://cmhimg01.dot.state.oh.us/images/artimis/CCTV099.jpg";
|
24
|
+
// -->
|
25
|
+
</script>
|
26
|
+
<script type="text/javascript" src="/ReloadImage.js"></script>
|
27
|
+
<script language="javascript">
|
28
|
+
function nwpage(cpage) {
|
29
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
30
|
+
var thePageName = cpage;
|
31
|
+
var theWindowName = cpage;
|
32
|
+
myWindow = window.open(thePageName,"nwpage",someFeatures);
|
33
|
+
myWindow.location = thePageName;
|
34
|
+
}
|
35
|
+
function nwpage1(cpage) {
|
36
|
+
var win_left = (screen.width);
|
37
|
+
var win_top = (screen.height);
|
38
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
39
|
+
var thePageName = cpage;
|
40
|
+
var theWindowName = cpage;
|
41
|
+
myWindow = window.open(thePageName,"nwpage1",someFeatures);
|
42
|
+
myWindow.location = thePageName;
|
43
|
+
}
|
44
|
+
function nwpage2(cpage) {
|
45
|
+
var win_left = (screen.width);
|
46
|
+
var win_top = (screen.height);
|
47
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
48
|
+
var thePageName = cpage;
|
49
|
+
var theWindowName = cpage;
|
50
|
+
myWindow = window.open(thePageName,"nwpage2",someFeatures);
|
51
|
+
myWindow.location = thePageName;
|
52
|
+
}
|
53
|
+
function nwpage3(cpage) {
|
54
|
+
var win_left = (screen.width);
|
55
|
+
var win_top = (screen.height);
|
56
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
57
|
+
var thePageName = cpage;
|
58
|
+
var theWindowName = cpage;
|
59
|
+
myWindow = window.open(thePageName,"nwpage3",someFeatures);
|
60
|
+
myWindow.location = thePageName;
|
61
|
+
}
|
62
|
+
function nwpage4(cpage) {
|
63
|
+
var win_left = (screen.width);
|
64
|
+
var win_top = (screen.height);
|
65
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
66
|
+
var thePageName = cpage;
|
67
|
+
var theWindowName = cpage;
|
68
|
+
myWindow = window.open(thePageName,"nwpage4",someFeatures);
|
69
|
+
myWindow.location = thePageName;
|
70
|
+
}
|
71
|
+
function nwpage5(cpage) {
|
72
|
+
var win_left = (screen.width);
|
73
|
+
var win_top = (screen.height);
|
74
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
75
|
+
var thePageName = cpage;
|
76
|
+
var theWindowName = cpage;
|
77
|
+
myWindow = window.open(thePageName,"nwpage5",someFeatures);
|
78
|
+
myWindow.location = thePageName;
|
79
|
+
}
|
80
|
+
function poppage(cpage) {
|
81
|
+
var someFeatures = 'resizable=no,toolbar=no,location=0,screenX=100,screenY=100,directories=0,width=300,height=500,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
82
|
+
var thePageName = cpage;
|
83
|
+
var theWindowName = cpage;
|
84
|
+
myWindow = window.open(thePageName,"nwpage",someFeatures);
|
85
|
+
myWindow.location = thePageName;
|
86
|
+
}
|
87
|
+
function poppage1(cpage) {
|
88
|
+
var someFeatures = 'resizable=no,toolbar=no,location=0,screenX=300,screenY=300,directories=0,width=440,height=330,status=no,menubar=no,scrollbars=no,copyhistory=0';
|
89
|
+
var thePageName = cpage;
|
90
|
+
var theWindowName = cpage;
|
91
|
+
myWindow = window.open(thePageName,"nwpage",someFeatures);
|
92
|
+
myWindow.location = thePageName;
|
93
|
+
}
|
94
|
+
</script>
|
95
|
+
|
96
|
+
</HEAD>
|
97
|
+
<BODY BGCOLOR=WHITE TEXT=BLACK ALINK=GREEN VLINK=BLUE LINK=RED onLoad="reloadImage()">
|
98
|
+
|
99
|
+
<TABLE WIDTH=630 CELLSPACING=0 CELLPADDING=0 BORDER=0 ALIGN=CENTER>
|
100
|
+
<TR>
|
101
|
+
<TD WIDTH=75 ALIGN=LEFT VALIGN=TOP BGCOLOR=ccccff><IMG SRC=/images/tleft.gif></TD>
|
102
|
+
<TD WIDTH=75 ALIGN=RIGHT VALIGN=TOP BGCOLOR=ccccff><IMG SRC=/images/tright.gif></TD>
|
103
|
+
<TD WIDTH=480 ALIGN=CENTER ROWSPAN=2><IMG SRC=/images/small.gif></TD>
|
104
|
+
</TR>
|
105
|
+
<TR>
|
106
|
+
<TD COLSPAN=2 WIDTH=150 VALIGN=TOP BGCOLOR=ccccff ALIGN=CENTER VALIGN=CENTER>
|
107
|
+
July 01, 2011<BR>11:03 PM </TD>
|
108
|
+
</TR>
|
109
|
+
<TR>
|
110
|
+
<TD COLSPAN=2 WIDTH=150 VALIGN=TOP BGCOLOR=ccccff ALIGN=CENTER>
|
111
|
+
<TABLE WIDTH=100% CELLPADDING=2 BORDER=0 CELLSPACING=0>
|
112
|
+
<TR><TD ALIGN=LEFT><A HREF=/index.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Home</FONT></A></TD></TR>
|
113
|
+
<TR><TD HEIGHT=10></TD></TR>
|
114
|
+
<TR><TD ALIGN=LEFT><A HREF=/traffic.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Traffic Conditions</FONT></A></TD></TR>
|
115
|
+
<TR><TD ALIGN=LEFT><A HREF="javascript:nwpage1('/cgi/constructionnew.cgi')"><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Construction Zones</FONT></A></TD></TR>
|
116
|
+
<TR><TD ALIGN=LEFT><A HREF="javascript:nwpage2('/cgi/accidentnew.cgi')"><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Accidents/Other Activity</FONT></A></TD></TR>
|
117
|
+
<TR><TD ALIGN=LEFT><A HREF=/stadium.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Stadium Complex Info</FONT></A></TD></TR>
|
118
|
+
<TR><TD HEIGHT=10></TD></TR>
|
119
|
+
<TR>
|
120
|
+
<TD ALIGN=CENTER><A HREF="javascript:nwpage3('/camaccess1.html')" BORDER=0><IMG SRC=/images/snapshots.gif BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Camera Images (Map)!</FONT></A></TD>
|
121
|
+
<!-- <TD><A HREF="javascript:nwpage('/streamaccess.html')"><IMG SRC=/images/newstreams.gif></A></TD>-->
|
122
|
+
</TR>
|
123
|
+
<TR>
|
124
|
+
<TD ALIGN=CENTER><A HREF=/cameraselect.php BORDER=0><IMG SRC=/images/snapshots.gif BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Camera Images (List)!</FONT></A></TD>
|
125
|
+
</TR><TR><TD HEIGHT=10></TD></TR>
|
126
|
+
<TR>
|
127
|
+
<TD ALIGN=CENTER><A HREF="javascript:nwpage4('/segaccess1.html')" BORDER=0><IMG SRC=/images/sysmap.bmp BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Segment Map!</FONT></A></TD>
|
128
|
+
</TR>
|
129
|
+
</TR><TR><TD HEIGHT=10></TD></TR>
|
130
|
+
<TR>
|
131
|
+
<TD ALIGN=CENTER><A HREF="javascript:nwpage5('/dmsaccess.html')" BORDER=0><IMG SRC=/images/dmssign.jpg BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Sign Msgs!</FONT></A></TD>
|
132
|
+
</TR>
|
133
|
+
<TR><TD HEIGHT=10></TD></TR>
|
134
|
+
<TR><TD ALIGN=LEFT><A HREF=/about.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>About Us/Content</FONT></A></TD></TR>
|
135
|
+
<TR><TD ALIGN=LEFT><A HREF=/system.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>System Components/511 Codes</FONT></A></TD></TR>
|
136
|
+
<TR><TD ALIGN=LEFT><A HREF=/faq.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>ARTIMIS FAQ</FONT></A></TD></TR>
|
137
|
+
<TR><TD ALIGN=LEFT><A HREF=/award.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>ARTIMIS Awards</FONT></A></TD></TR>
|
138
|
+
<TR><TD ALIGN=LEFT><A HREF=/contact.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Contact Us</FONT></A></TD></TR>
|
139
|
+
<TR><TD HEIGHT=25></TD></TR>
|
140
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.dot.state.oh.us')" BORDER=0><IMG SRC=/images/odotseal.gif BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Ohio Department of Transportation</FONT></A></TD></TR>
|
141
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.kytc.state.ky.us')" BORDER=0><IMG SRC=/images/kytcnewlogo.jpg VSPACE=10 BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Kentucky Transportation Cabinet</FONT></A></TD></TR>
|
142
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.ci.cincinnati.oh.us')" BORDER=0><IMG SRC=/images/cseal.gif BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>City of Cincinnati</FONT></A></TD></TR>
|
143
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.fhwa.dot.gov')" BORDER=0><IMG SRC=/images/dotseal.gif BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Federal Highway Administration</FONT></A></TD></TR>
|
144
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.oki.org')" BORDER=0><IMG SRC=/images/okilogo.jpg BORDER=0 VSPACE=10><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Ohio, Kentucky, Indiana Regional Council of Governments</FONT></A></TD></TR>
|
145
|
+
<TR><TD HEIGHT=10></TD></TR>
|
146
|
+
<TR><TD ALIGN=CENTER><FONT SIZE=-2 FACE=ARIAL COLOR=000000><a href="mailto:Susan.Springer@dot.state.oh.us">ARTIMIS Operations Control Center</a></FONT><BR>
|
147
|
+
<TR><TD HEIGHT=10></TD></TR>
|
148
|
+
<TR><TD ALIGN=CENTER><FONT SIZE=-2 FACE=ARIAL COLOR=000000>508 W. Third Street<br>Cincinnati, Ohio 45202-3410<br>USA<br><br>(513) 564-6100<br>(513) 564-6127 (FAX)</FONT></TD></TR>
|
149
|
+
<TR><TD ALIGN=CENTER><A HREF=/copyright.php><FONT SIZE=-2 FACE=ARIAL>Copyright © 1997-2008 ARTIMIS</FONT></A></TD></TR>
|
150
|
+
<TR><TD HEIGHT=10></TD></TR>
|
151
|
+
</TABLE>
|
152
|
+
</TD>
|
153
|
+
<TD WIDTH=454 VALIGN=TOP ALIGN=CENTER>
|
154
|
+
<img name="refimage" src="http://cmhimg01.dot.state.oh.us/images/artimis/CCTV099.jpg" width=454 height=292 border=1 alt="Kentucky: I-275 at Airport Exit">
|
155
|
+
<TABLE WIDTH=454 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
156
|
+
<TR><TD ALIGN=CENTER WIDTH=100%><FONT FACE=ARIAL><B>Ohio: I-275 at Hamilton Ave.</B></FONT></TD></TR>
|
157
|
+
<TR><TD ALIGN=CENTER WIDTH=100%><FONT SIZE=-1 FACE=ARIAL><B>Mile 36.5, located on South side of I-275</B></FONT></TD></TR>
|
158
|
+
<TR><TD WIDTH=30><SPACER TYPE=horizontal SIZE=30></TD></TR>
|
159
|
+
</TABLE>
|
160
|
+
<TABLE WIDTH=455 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
161
|
+
<TR><TD ALIGN=CENTER WIDTH=100%><FONT COLOR=959595 SIZE=-2 FACE=ARIAL>New images are available approximately every 2-5 seconds.</FONT></TD></TR>
|
162
|
+
<TR><TD WIDTH=30><SPACER TYPE=horizontal SIZE=30></TD>
|
163
|
+
<TR><TD WIDTH=30></TD></TR>
|
164
|
+
</TABLE>
|
165
|
+
<BR>
|
166
|
+
<TABLE WIDTH=455 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
167
|
+
<TR<TD ALIGN=LEFT WIDTH=100%><FONT FACE=ARIAL><B>Select a camera from the list below.</B></FONT></TD></TR>
|
168
|
+
<TR><TD WIDTH=30><SPACER TYPE=horizontal SIZE=30></TD></TR>
|
169
|
+
</TABLE>
|
170
|
+
<BR>
|
171
|
+
<TABLE WIDTH=455 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
172
|
+
<TR><TD> </TD><TD ALIGN=LEFT><FONT FACE=ARIAL><B>Ohio:</B></FONT></TD></TR>
|
173
|
+
<TR><TD WIDTH=30></TD></TR>
|
174
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
175
|
+
<a href="/camera/camera112.php">I-275 at Colerain Ave.</a></TD></TR>
|
176
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
177
|
+
<a href="/camera/camera99.php">I-275 at Hamilton Ave.</a></TD></TR>
|
178
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
179
|
+
<a href="/camera/camera108.php">I-275 at Winton Rd.</a></TD></TR>
|
180
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
181
|
+
<a href="/camera/camera40.php">I-275 at S. R. 4</a></TD></TR>
|
182
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
183
|
+
<a href="/camera/camera3.php">I-275 at S. R. 747</a></TD></TR>
|
184
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
185
|
+
<a href="/camera/camera2.php">I-275 at I-75</a></TD></TR>
|
186
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
187
|
+
<a href="/camera/camera101.php">I-275 at Mosteller Rd.</a></TD></TR>
|
188
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
189
|
+
<a href="/camera/camera1.php">I-275 at U.S. 42</a></TD></TR>
|
190
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
191
|
+
<a href="/camera/camera39.php">I-275 at Reed Hartman Highway</a></TD></TR>
|
192
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
193
|
+
<a href="/camera/camera41.php">I-275 at I-71</a></TD></TR>
|
194
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
195
|
+
<a href="/camera/camera38.php">I-275 at Montgomery Rd.</a></TD></TR>
|
196
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
197
|
+
<a href="/camera/camera107.php">I-275 North of Wards Corner Rd.</a></TD></TR>
|
198
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
199
|
+
<a href="/camera/camera105.php">I-275 at S. R. 131</a></TD></TR>
|
200
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
201
|
+
<a href="/camera/camera109.php">I-275 at S. R. 32</a></TD></TR>
|
202
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
203
|
+
<a href="/camera/camera110.php">I-275 at Kellogg Ave.</a></TD></TR>
|
204
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
205
|
+
</TD></TR>
|
206
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
207
|
+
<a href="/camera/camera92.php">I-71 at Kings Mills Rd.</a></TD></TR>
|
208
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
209
|
+
<a href="/camera/camera96.php">I-71 at Mason-Montgomery Rd.</a></TD></TR>
|
210
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
211
|
+
<a href="/camera/camera41.php">I-71 at I-275</a></TD></TR>
|
212
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
213
|
+
<a href="/camera/camera71.php">I-71 at Deerfield Rd.</a></TD></TR>
|
214
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
215
|
+
<a href="/camera/camera72.php">I-71 at Pfeiffer Rd.</a></TD></TR>
|
216
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
217
|
+
<a href="/camera/camera73.php">I-71 at Ronald Reagan Hwy (SR 126)</a></TD></TR>
|
218
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
219
|
+
<a href="/camera/camera74.php">I-71 at Montgomery Rd. (Kenwood)</a></TD></TR>
|
220
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
221
|
+
<a href="/camera/camera75.php">I-71 at Euclid Ave.</a></TD></TR>
|
222
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
223
|
+
<a href="/camera/camera76.php">I-71 just North of Stewart</a></TD></TR>
|
224
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
225
|
+
<a href="/camera/camera77.php">I-71 at Red Bank Rd.</a></TD></TR>
|
226
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
227
|
+
<a href="/camera/camera78.php">I-71 at Kennedy</a></TD></TR>
|
228
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
229
|
+
<a href="/camera/camera79.php">I-71 at S.R. 562 (Norwood Lateral)</a></TD></TR>
|
230
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
231
|
+
<a href="/camera/camera80.php">I-71 at Robertson</a></TD></TR>
|
232
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
233
|
+
<a href="/camera/camera81.php">I-71 at Smith Rd.</a></TD></TR>
|
234
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
235
|
+
<a href="/camera/camera82.php">I-71 at Dana Ave.</a></TD></TR>
|
236
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
237
|
+
<a href="/camera/camera83.php">I-71 at Montgomery Rd. (Cinti)</a></TD></TR>
|
238
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
239
|
+
<a href="/camera/camera84.php">I-71 over Victory Parkway</a></TD></TR>
|
240
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
241
|
+
<a href="/camera/camera85.php">I-71 at Martin Luther King Jr. Dr.</a></TD></TR>
|
242
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
243
|
+
<a href="/camera/camera86.php">I-71 at William Howard Taft</a></TD></TR>
|
244
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
245
|
+
<a href="/camera/camera87.php">I-71 at McGregor</a></TD></TR>
|
246
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
247
|
+
<a href="/camera/camera36.php">I-71 at Elsinore</a></TD></TR>
|
248
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
249
|
+
<a href="/camera/camera37.php">I-71 at I-471</a></TD></TR>
|
250
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
251
|
+
<a href="/camera/camera43.php">I-71 East Tunnel, North End</a></TD></TR>
|
252
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
253
|
+
<a href="/camera/camera44.php">I-71 Center Tunnel, North End</a></TD></TR>
|
254
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
255
|
+
<a href="/camera/camera45.php">I-71 West Tunnel, North End</a></TD></TR>
|
256
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
257
|
+
<a href="/camera/camera46.php">I-71 West Tunnel, South End</a></TD></TR>
|
258
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
259
|
+
<a href="/camera/camera47.php">I-71 Center Tunnel, South End</a></TD></TR>
|
260
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
261
|
+
<a href="/camera/camera48.php">I-71 East Tunnel, South End</a></TD></TR>
|
262
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
263
|
+
<a href="/camera/camera42.php">I-71 at US 50</a></TD></TR>
|
264
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
265
|
+
<a href="/camera/camera100.php">I-71 in Downtown Cincinnati</a></TD></TR>
|
266
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
267
|
+
<a href="/camera/camera35.php">I-71 at I-75</a></TD></TR>
|
268
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
269
|
+
</TD></TR>
|
270
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
271
|
+
<a href="/camera/camera90.php">I-74 at Montana Ave.</a></TD></TR>
|
272
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
273
|
+
<a href="/camera/camera49.php">I-74 at I-75</a></TD></TR>
|
274
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
275
|
+
</TD></TR>
|
276
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
277
|
+
<a href="/camera/camera70.php">I-75 just South of SR 129</a></TD></TR>
|
278
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
279
|
+
<a href="/camera/camera69.php">I-75 at Tylersville Rd.</a></TD></TR>
|
280
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
281
|
+
<a href="/camera/camera68.php">I-75 at Cincinnati-Dayton Rd.</a></TD></TR>
|
282
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
283
|
+
<a href="/camera/camera67.php">I-75 just North of Union Centre Blvd.</a></TD></TR>
|
284
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
285
|
+
<a href="/camera/camera66.php">I-75 at Allen Rd.</a></TD></TR>
|
286
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
287
|
+
<a href="/camera/camera2.php">I-75 at I-275</a></TD></TR>
|
288
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
289
|
+
<a href="/camera/camera4.php">I-75 at Sharon Rd.</a></TD></TR>
|
290
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
291
|
+
<a href="/camera/camera104.php">I-75 at Glendale-Milford</a></TD></TR>
|
292
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
293
|
+
<a href="/camera/camera5.php">I-75 at Neumann Way</a></TD></TR>
|
294
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
295
|
+
<a href="/camera/camera6.php">I-75 at Lockland Split</a></TD></TR>
|
296
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
297
|
+
<a href="/camera/camera7.php">I-75 at Davis St. in Lockland.</a></TD></TR>
|
298
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
299
|
+
<a href="/camera/camera8.php">I-75 at Galbraith Rd. in Arlington Heights</a></TD></TR>
|
300
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
301
|
+
<a href="/camera/camera9.php">I-75 at Ronald Reagan Hwy (SR 126)</a></TD></TR>
|
302
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
303
|
+
<a href="/camera/camera10.php">I-75 at Paddock Rd.</a></TD></TR>
|
304
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
305
|
+
<a href="/camera/camera11.php">I-75 at Towne St.</a></TD></TR>
|
306
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
307
|
+
<a href="/camera/camera12.php">I-75 at S.R. 562 (Norwood Lateral)</a></TD></TR>
|
308
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
309
|
+
<a href="/camera/camera13.php">I-75 at Vine St. in St. Bernard</a></TD></TR>
|
310
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
311
|
+
<a href="/camera/camera14.php">I-75 just North of Mitchell Ave.</a></TD></TR>
|
312
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
313
|
+
<a href="/camera/camera15.php">I-75 at Mitchell Ave.</a></TD></TR>
|
314
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
315
|
+
<a href="/camera/camera16.php">I-75 at Ludlow Viaduct</a></TD></TR>
|
316
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
317
|
+
<a href="/camera/camera49.php">I-75 at I-74</a></TD></TR>
|
318
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
319
|
+
<a href="/camera/camera93.php">I-75 South of I-74</a></TD></TR>
|
320
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
321
|
+
<a href="/camera/camera18.php">I-75 at Hopple St.</a></TD></TR>
|
322
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
323
|
+
<a href="/camera/camera19.php">I-75 at Western Hills Viaduct</a></TD></TR>
|
324
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
325
|
+
<a href="/camera/camera20.php">I-75 at Ezzard Charles Dr.</a></TD></TR>
|
326
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
327
|
+
<a href="/camera/camera91.php">I-75 at Linn St.</a></TD></TR>
|
328
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
329
|
+
<a href="/camera/camera21.php">I-75 at Sixth St. in Cincinnati</a></TD></TR>
|
330
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
331
|
+
<a href="/camera/camera22.php">I-75 at the Ohio River</a></TD></TR>
|
332
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
333
|
+
<a href="/camera/camera35.php">I-75 at I-71</a></TD></TR>
|
334
|
+
<TR><TD WIDTH=30></TD></TR>
|
335
|
+
</TABLE>
|
336
|
+
<BR>
|
337
|
+
<TABLE WIDTH=405 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
338
|
+
<TR><TD> </TD><TD ALIGN=LEFT><FONT FACE=ARIAL><B>Kentucky:</B></FONT></TD></TR>
|
339
|
+
<TR><TD WIDTH=30></TD></TR>
|
340
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
341
|
+
<a href="/camera/camera132.php">I-275 on US 27 Bridge</a></TD></TR>
|
342
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
343
|
+
<a href="/camera/camera131.php">I-275 at I-471</a></TD></TR>
|
344
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
345
|
+
<a href="/camera/camera130.php">I-275 at KY 16 (Taylor Mill)</a></TD></TR>
|
346
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
347
|
+
<a href="/camera/camera129.php">I-275 South of Dixie Highway (Taylor Mill)</a></TD></TR>
|
348
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
349
|
+
<a href="/camera/camera30.php">I-275 at I-71/I-75</a></TD></TR>
|
350
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
351
|
+
<a href="/camera/camera51.php">I-275 at Mineola Pike.</a></TD></TR>
|
352
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
353
|
+
<a href="/camera/camera52.php">I-275 approaching KY 20/Airport</a></TD></TR>
|
354
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
355
|
+
<a href="/camera/camera53.php">I-275 West of Airport</a></TD></TR>
|
356
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
357
|
+
<a href="/camera/camera54.php">I-275 between KY 20 & KY 237</a></TD></TR>
|
358
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
359
|
+
<a href="/camera/camera55.php">I-275 at KY 237</a></TD></TR>
|
360
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
361
|
+
<a href="/camera/camera56.php">I-275 at between Hebron & Petersburg</a></TD></TR>
|
362
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
363
|
+
<a href="/camera/camera57.php">I-275 at Petersburg Exit</a></TD></TR>
|
364
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
365
|
+
<a href="/camera/camera58.php">I-275 at between Petersburg & Indiana Line</a></TD></TR>
|
366
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
367
|
+
</TD></TR>
|
368
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
369
|
+
<a href="/camera/camera37.php">I-471 at I-71</a></TD></TR>
|
370
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
371
|
+
<a href="/camera/camera103.php">I-471 at Grand Ave.</a></TD></TR>
|
372
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
373
|
+
</TD></TR>
|
374
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
375
|
+
<a href="/camera/camera23.php">I-71/I-75 on lower deck of Brent Spence Bridge</a></TD></TR>
|
376
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
377
|
+
<a href="/camera/camera24.php">I-71/I-75 at 12th St. in Covington</a></TD></TR>
|
378
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
379
|
+
<a href="/camera/camera25.php">I-71/I-75 at Cut-in-the-hill</a></TD></TR>
|
380
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
381
|
+
<a href="/camera/camera26.php">I-71/I-75 at Kyles Lane</a></TD></TR>
|
382
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
383
|
+
<a href="/camera/camera27.php">I-71/I-75 at Dixie Highway</a></TD></TR>
|
384
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
385
|
+
<a href="/camera/camera28.php">I-71/I-75 just North of Buttermilk Pike</a></TD></TR>
|
386
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
387
|
+
<a href="/camera/camera29.php">I-71/I-75 at Buttermilk Pike</a></TD></TR>
|
388
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
389
|
+
<a href="/camera/camera30.php">I-71/I-75 at I-275</a></TD></TR>
|
390
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
391
|
+
<a href="/camera/camera31.php">I-71/I-75 at Donaldson Rd.</a></TD></TR>
|
392
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
393
|
+
<a href="/camera/camera32.php">I-71/I-75 at Turfway Rd.</a></TD></TR>
|
394
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
395
|
+
<a href="/camera/camera33.php">I-71/I-75 at Burlington Pike</a></TD></TR>
|
396
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
397
|
+
<a href="/camera/camera34.php">I-71/I-75 at U.S. 42</a></TD></TR>
|
398
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
399
|
+
<a href="/camera/camera59.php">I-71/I-75 at Mt. Zion Rd.</a></TD></TR>
|
400
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
401
|
+
<a href="/camera/camera60.php">I-71/I-75 just North of the Richwood Exit</a></TD></TR>
|
402
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
403
|
+
<a href="/camera/camera61.php">I-71/I-75 Split</a></TD></TR>
|
404
|
+
<TR><TD WIDTH=30></TD></TR>
|
405
|
+
</TABLE>
|
406
|
+
</td>
|
407
|
+
</TR>
|
408
|
+
<TR>
|
409
|
+
<TD COLSPAN=2 WIDTH=150 VALIGN=TOP BGCOLOR=ccccff ALIGN=CENTER>
|
410
|
+
<TR><TD WIDTH=75 ALIGN=LEFT VALIGN=BOTTOM BGCOLOR=ccccff><IMG SRC=/images/bleft.gif></TD><TD WIDTH=75 ALIGN=RIGHT VALIGN=BOTTOM BGCOLOR=ccccff><IMG SRC=/images/bright.gif></TD><TD WIDTH=480 ALIGN=CENTER><BR><A HREF=/copyright.php><FONT COLOR=959595 SIZE=-2 FACE=ARIAL>Copyright © 1997-2008 ARTIMIS</FONT></A></TD></TR>
|
411
|
+
|
412
|
+
</TD>
|
413
|
+
</TR>
|
414
|
+
</TABLE>
|
415
|
+
|
416
|
+
</body>
|
417
|
+
</html>
|
@@ -0,0 +1,396 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Date: Sat, 02 Jul 2011 03:03:46 GMT
|
3
|
+
Server: Apache/2.0.52 (Red Hat)
|
4
|
+
X-Powered-By: PHP/4.3.9
|
5
|
+
Connection: close
|
6
|
+
Transfer-Encoding: chunked
|
7
|
+
Content-Type: text/html; charset=UTF-8
|
8
|
+
|
9
|
+
<HTML>
|
10
|
+
<!-- This is the camera page for the ARTIMIS site. -->
|
11
|
+
<!-- Rehosted on 20 Apr 2001 -->
|
12
|
+
<!-- R.S. Evans, TRW with excellent support from -->
|
13
|
+
<!-- Jerry Behrendt from Voyager. -->
|
14
|
+
<HEAD>
|
15
|
+
<script language="javascript">
|
16
|
+
function nwpage(cpage) {
|
17
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
18
|
+
var thePageName = cpage;
|
19
|
+
var theWindowName = cpage;
|
20
|
+
myWindow = window.open(thePageName,"nwpage",someFeatures);
|
21
|
+
myWindow.location = thePageName;
|
22
|
+
}
|
23
|
+
function nwpage1(cpage) {
|
24
|
+
var win_left = (screen.width);
|
25
|
+
var win_top = (screen.height);
|
26
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
27
|
+
var thePageName = cpage;
|
28
|
+
var theWindowName = cpage;
|
29
|
+
myWindow = window.open(thePageName,"nwpage1",someFeatures);
|
30
|
+
myWindow.location = thePageName;
|
31
|
+
}
|
32
|
+
function nwpage2(cpage) {
|
33
|
+
var win_left = (screen.width);
|
34
|
+
var win_top = (screen.height);
|
35
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
36
|
+
var thePageName = cpage;
|
37
|
+
var theWindowName = cpage;
|
38
|
+
myWindow = window.open(thePageName,"nwpage2",someFeatures);
|
39
|
+
myWindow.location = thePageName;
|
40
|
+
}
|
41
|
+
function nwpage3(cpage) {
|
42
|
+
var win_left = (screen.width);
|
43
|
+
var win_top = (screen.height);
|
44
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
45
|
+
var thePageName = cpage;
|
46
|
+
var theWindowName = cpage;
|
47
|
+
myWindow = window.open(thePageName,"nwpage3",someFeatures);
|
48
|
+
myWindow.location = thePageName;
|
49
|
+
}
|
50
|
+
function nwpage4(cpage) {
|
51
|
+
var win_left = (screen.width);
|
52
|
+
var win_top = (screen.height);
|
53
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
54
|
+
var thePageName = cpage;
|
55
|
+
var theWindowName = cpage;
|
56
|
+
myWindow = window.open(thePageName,"nwpage4",someFeatures);
|
57
|
+
myWindow.location = thePageName;
|
58
|
+
}
|
59
|
+
function nwpage5(cpage) {
|
60
|
+
var win_left = (screen.width);
|
61
|
+
var win_top = (screen.height);
|
62
|
+
var someFeatures = 'resizable=yes,toolbar=yes,location=0,directories=0,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
63
|
+
var thePageName = cpage;
|
64
|
+
var theWindowName = cpage;
|
65
|
+
myWindow = window.open(thePageName,"nwpage5",someFeatures);
|
66
|
+
myWindow.location = thePageName;
|
67
|
+
}
|
68
|
+
function poppage(cpage) {
|
69
|
+
var someFeatures = 'resizable=no,toolbar=no,location=0,screenX=100,screenY=100,directories=0,width=300,height=500,status=no,menubar=no,scrollbars=yes,copyhistory=0';
|
70
|
+
var thePageName = cpage;
|
71
|
+
var theWindowName = cpage;
|
72
|
+
myWindow = window.open(thePageName,"nwpage",someFeatures);
|
73
|
+
myWindow.location = thePageName;
|
74
|
+
}
|
75
|
+
function poppage1(cpage) {
|
76
|
+
var someFeatures = 'resizable=no,toolbar=no,location=0,screenX=300,screenY=300,directories=0,width=440,height=330,status=no,menubar=no,scrollbars=no,copyhistory=0';
|
77
|
+
var thePageName = cpage;
|
78
|
+
var theWindowName = cpage;
|
79
|
+
myWindow = window.open(thePageName,"nwpage",someFeatures);
|
80
|
+
myWindow.location = thePageName;
|
81
|
+
}
|
82
|
+
</script>
|
83
|
+
<TITLE>Current Cincinnati Cameras</TITLE>
|
84
|
+
<META NAME=REFRESH CONTENT=100>
|
85
|
+
</HEAD>
|
86
|
+
|
87
|
+
<BODY BGCOLOR=WHITE TEXT=BLACK ALINK=GREEN VLINK=BLUE LINK=RED>
|
88
|
+
|
89
|
+
|
90
|
+
<TABLE WIDTH=630 CELLSPACING=0 CELLPADDING=0 BORDER=0 ALIGN=CENTER>
|
91
|
+
<TR><TD WIDTH=75 ALIGN=LEFT VALIGN=TOP BGCOLOR=ccccff><IMG SRC=/images/tleft.gif></TD>
|
92
|
+
<TD WIDTH=75 ALIGN=RIGHT VALIGN=TOP BGCOLOR=ccccff><IMG SRC=/images/tright.gif></TD>
|
93
|
+
<TD WIDTH=480 ALIGN=CENTER ROWSPAN=2><IMG SRC=/images/small.gif></TD></TR>
|
94
|
+
<TR><TD COLSPAN=2 WIDTH=150 VALIGN=TOP BGCOLOR=ccccff ALIGN=CENTER VALIGN=CENTER>
|
95
|
+
July 01, 2011<BR>11:03 PM</TD></TR>
|
96
|
+
<TR><TD COLSPAN=2 WIDTH=150 VALIGN=TOP BGCOLOR=ccccff ALIGN=CENTER>
|
97
|
+
<TABLE WIDTH=100% CELLPADDING=2 BORDER=0 CELLSPACING=0>
|
98
|
+
<TR><TD ALIGN=LEFT><A HREF=/index.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Home</FONT></A></TD></TR>
|
99
|
+
<TR><TD HEIGHT=10></TD></TR>
|
100
|
+
<TR><TD ALIGN=LEFT><A HREF=/traffic.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Traffic Conditions</FONT></A></TD></TR>
|
101
|
+
<TR><TD ALIGN=LEFT><A HREF="javascript:nwpage1('/cgi/constructionnew.cgi')"><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Construction Zones</FONT></A></TD></TR>
|
102
|
+
<TR><TD ALIGN=LEFT><A HREF="javascript:nwpage2('/cgi/accidentnew.cgi')"><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Accidents/Other Activity</FONT></A></TD></TR>
|
103
|
+
<TR><TD ALIGN=LEFT><A HREF=/stadium.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Stadium Complex Info</FONT></A></TD></TR>
|
104
|
+
<TR><TD HEIGHT=10></TD></TR>
|
105
|
+
<TR>
|
106
|
+
<TD ALIGN=CENTER><A HREF="javascript:nwpage3('/camaccess1.html')" BORDER=0><IMG SRC=/images/snapshots.gif BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Camera Images (Map)!</FONT></A></TD>
|
107
|
+
<!-- <TD><A HREF="javascript:nwpage('/streamaccess.html')"><IMG SRC=/images/newstreams.gif></A></TD>-->
|
108
|
+
</TR>
|
109
|
+
<TR>
|
110
|
+
<TD ALIGN=CENTER><A HREF=/cameraselect.php BORDER=0><IMG SRC=/images/snapshots.gif BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Camera Images (List)!</FONT></A></TD>
|
111
|
+
</TR><TR><TD HEIGHT=10></TD></TR>
|
112
|
+
<TR>
|
113
|
+
<TD ALIGN=CENTER><A HREF="javascript:nwpage4('/segaccess1.html')" BORDER=0><IMG SRC=/images/sysmap.bmp BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Segment Map!</FONT></A></TD>
|
114
|
+
</TR>
|
115
|
+
</TR><TR><TD HEIGHT=10></TD></TR>
|
116
|
+
<TR>
|
117
|
+
<TD ALIGN=CENTER><A HREF="javascript:nwpage5('/dmsaccess.html')" BORDER=0><IMG SRC=/images/dmssign.jpg BORDER=0><FONT SIZE=2 FACE=ARIAL COLOR=RED><BR>Sign Msgs!</FONT></A></TD>
|
118
|
+
</TR>
|
119
|
+
<TR><TD HEIGHT=10></TD></TR>
|
120
|
+
<TR><TD ALIGN=LEFT><A HREF=/about.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>About Us/Content</FONT></A></TD></TR>
|
121
|
+
<TR><TD ALIGN=LEFT><A HREF=/system.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>System Components/511 Codes</FONT></A></TD></TR>
|
122
|
+
<TR><TD ALIGN=LEFT><A HREF=/faq.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>ARTIMIS FAQ</FONT></A></TD></TR>
|
123
|
+
<TR><TD ALIGN=LEFT><A HREF=/award.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>ARTIMIS Awards</FONT></A></TD></TR>
|
124
|
+
<TR><TD ALIGN=LEFT><A HREF=/contact.php><FONT SIZE=-1 FACE=ARIAL COLOR=000000>Contact Us</FONT></A></TD></TR>
|
125
|
+
<TR><TD HEIGHT=25></TD></TR>
|
126
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.dot.state.oh.us')" BORDER=0><IMG SRC=/images/odotseal.gif BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Ohio Department of Transportation</FONT></A></TD></TR>
|
127
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.kytc.state.ky.us')" BORDER=0><IMG SRC=/images/kytcnewlogo.jpg VSPACE=10 BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Kentucky Transportation Cabinet</FONT></A></TD></TR>
|
128
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.ci.cincinnati.oh.us')" BORDER=0><IMG SRC=/images/cseal.gif BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>City of Cincinnati</FONT></A></TD></TR>
|
129
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.fhwa.dot.gov')" BORDER=0><IMG SRC=/images/dotseal.gif BORDER=0><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Federal Highway Administration</FONT></A></TD></TR>
|
130
|
+
<TR><TD ALIGN=CENTER><A HREF="javascript:nwpage('http://www.oki.org')" BORDER=0><IMG SRC=/images/okilogo.jpg BORDER=0 VSPACE=10><BR><FONT SIZE=-2 FACE=ARIAL COLOR=000000>Ohio, Kentucky, Indiana Regional Council of Governments</FONT></A></TD></TR>
|
131
|
+
<TR><TD HEIGHT=10></TD></TR>
|
132
|
+
<TR><TD ALIGN=CENTER><FONT SIZE=-2 FACE=ARIAL COLOR=000000><a href="mailto:Susan.Springer@dot.state.oh.us">ARTIMIS Operations Control Center</a></FONT><BR>
|
133
|
+
<TR><TD HEIGHT=10></TD></TR>
|
134
|
+
<TR><TD ALIGN=CENTER><FONT SIZE=-2 FACE=ARIAL COLOR=000000>508 W. Third Street<br>Cincinnati, Ohio 45202-3410<br>USA<br><br>(513) 564-6100<br>(513) 564-6127 (FAX)</FONT></TD></TR>
|
135
|
+
<TR><TD ALIGN=CENTER><A HREF=/copyright.php><FONT SIZE=-2 FACE=ARIAL>Copyright © 1997-2008 ARTIMIS</FONT></A></TD></TR>
|
136
|
+
<TR><TD HEIGHT=10></TD></TR>
|
137
|
+
</TABLE>
|
138
|
+
</TD>
|
139
|
+
<TD WIDTH=480>
|
140
|
+
<HR WIDTH=75%>
|
141
|
+
<BR>
|
142
|
+
<TABLE WIDTH=455 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
143
|
+
<TR><TD ALIGN=CENTER WIDTH=100%><FONT COLOR=959595 SIZE=-2 FACE=ARIAL>New images are available approximately every 2-5 seconds.</FONT></TD></TR>
|
144
|
+
<TR><TD WIDTH=30><SPACER TYPE=horizontal SIZE=30></TD>
|
145
|
+
<TR><TD WIDTH=30></TD></TR>
|
146
|
+
</TABLE>
|
147
|
+
<BR>
|
148
|
+
<TABLE WIDTH=455 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
149
|
+
<TR<TD ALIGN=LEFT WIDTH=100%><FONT FACE=ARIAL><B>Select a camera from the list below.</B></FONT></TD></TR>
|
150
|
+
<TR><TD WIDTH=30><SPACER TYPE=horizontal SIZE=30></TD></TR>
|
151
|
+
</TABLE>
|
152
|
+
<BR>
|
153
|
+
<TABLE WIDTH=455 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
154
|
+
<TR><TD> </TD><TD ALIGN=LEFT><FONT FACE=ARIAL><B>Ohio:</B></FONT></TD></TR>
|
155
|
+
<TR><TD WIDTH=30></TD></TR>
|
156
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
157
|
+
<a href="/camera/camera112.php">I-275 at Colerain Ave.</a></TD></TR>
|
158
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
159
|
+
<a href="/camera/camera99.php">I-275 at Hamilton Ave.</a></TD></TR>
|
160
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
161
|
+
<a href="/camera/camera108.php">I-275 at Winton Rd.</a></TD></TR>
|
162
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
163
|
+
<a href="/camera/camera40.php">I-275 at S. R. 4</a></TD></TR>
|
164
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
165
|
+
<a href="/camera/camera3.php">I-275 at S. R. 747</a></TD></TR>
|
166
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
167
|
+
<a href="/camera/camera2.php">I-275 at I-75</a></TD></TR>
|
168
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
169
|
+
<a href="/camera/camera101.php">I-275 at Mosteller Rd.</a></TD></TR>
|
170
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
171
|
+
<a href="/camera/camera1.php">I-275 at U.S. 42</a></TD></TR>
|
172
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
173
|
+
<a href="/camera/camera39.php">I-275 at Reed Hartman Highway</a></TD></TR>
|
174
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
175
|
+
<a href="/camera/camera41.php">I-275 at I-71</a></TD></TR>
|
176
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
177
|
+
<a href="/camera/camera38.php">I-275 at Montgomery Rd.</a></TD></TR>
|
178
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
179
|
+
<a href="/camera/camera107.php">I-275 North of Wards Corner Rd.</a></TD></TR>
|
180
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
181
|
+
<a href="/camera/camera105.php">I-275 at S. R. 131</a></TD></TR>
|
182
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
183
|
+
<a href="/camera/camera109.php">I-275 at S. R. 32</a></TD></TR>
|
184
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
185
|
+
<a href="/camera/camera110.php">I-275 at Kellogg Ave.</a></TD></TR>
|
186
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
187
|
+
</TD></TR>
|
188
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
189
|
+
<a href="/camera/camera92.php">I-71 at Kings Mills Rd.</a></TD></TR>
|
190
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
191
|
+
<a href="/camera/camera96.php">I-71 at Mason-Montgomery Rd.</a></TD></TR>
|
192
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
193
|
+
<a href="/camera/camera41.php">I-71 at I-275</a></TD></TR>
|
194
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
195
|
+
<a href="/camera/camera71.php">I-71 at Deerfield Rd.</a></TD></TR>
|
196
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
197
|
+
<a href="/camera/camera72.php">I-71 at Pfeiffer Rd.</a></TD></TR>
|
198
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
199
|
+
<a href="/camera/camera73.php">I-71 at Ronald Reagan Hwy (SR 126)</a></TD></TR>
|
200
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
201
|
+
<a href="/camera/camera74.php">I-71 at Montgomery Rd. (Kenwood)</a></TD></TR>
|
202
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
203
|
+
<a href="/camera/camera75.php">I-71 at Euclid Ave.</a></TD></TR>
|
204
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
205
|
+
<a href="/camera/camera76.php">I-71 just North of Stewart</a></TD></TR>
|
206
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
207
|
+
<a href="/camera/camera77.php">I-71 at Red Bank Rd.</a></TD></TR>
|
208
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
209
|
+
<a href="/camera/camera78.php">I-71 at Kennedy</a></TD></TR>
|
210
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
211
|
+
<a href="/camera/camera79.php">I-71 at S.R. 562 (Norwood Lateral)</a></TD></TR>
|
212
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
213
|
+
<a href="/camera/camera80.php">I-71 at Robertson</a></TD></TR>
|
214
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
215
|
+
<a href="/camera/camera81.php">I-71 at Smith Rd.</a></TD></TR>
|
216
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
217
|
+
<a href="/camera/camera82.php">I-71 at Dana Ave.</a></TD></TR>
|
218
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
219
|
+
<a href="/camera/camera83.php">I-71 at Montgomery Rd. (Cinti)</a></TD></TR>
|
220
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
221
|
+
<a href="/camera/camera84.php">I-71 over Victory Parkway</a></TD></TR>
|
222
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
223
|
+
<a href="/camera/camera85.php">I-71 at Martin Luther King Jr. Dr.</a></TD></TR>
|
224
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
225
|
+
<a href="/camera/camera86.php">I-71 at William Howard Taft</a></TD></TR>
|
226
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
227
|
+
<a href="/camera/camera87.php">I-71 at McGregor</a></TD></TR>
|
228
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
229
|
+
<a href="/camera/camera36.php">I-71 at Elsinore</a></TD></TR>
|
230
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
231
|
+
<a href="/camera/camera37.php">I-71 at I-471</a></TD></TR>
|
232
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
233
|
+
<a href="/camera/camera43.php">I-71 East Tunnel, North End</a></TD></TR>
|
234
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
235
|
+
<a href="/camera/camera44.php">I-71 Center Tunnel, North End</a></TD></TR>
|
236
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
237
|
+
<a href="/camera/camera45.php">I-71 West Tunnel, North End</a></TD></TR>
|
238
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
239
|
+
<a href="/camera/camera46.php">I-71 West Tunnel, South End</a></TD></TR>
|
240
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
241
|
+
<a href="/camera/camera47.php">I-71 Center Tunnel, South End</a></TD></TR>
|
242
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
243
|
+
<a href="/camera/camera48.php">I-71 East Tunnel, South End</a></TD></TR>
|
244
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
245
|
+
<a href="/camera/camera42.php">I-71 at US 50</a></TD></TR>
|
246
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
247
|
+
<a href="/camera/camera100.php">I-71 in Downtown Cincinnati</a></TD></TR>
|
248
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
249
|
+
<a href="/camera/camera35.php">I-71 at I-75</a></TD></TR>
|
250
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
251
|
+
</TD></TR>
|
252
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
253
|
+
<a href="/camera/camera90.php">I-74 at Montana Ave.</a></TD></TR>
|
254
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
255
|
+
<a href="/camera/camera49.php">I-74 at I-75</a></TD></TR>
|
256
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
257
|
+
</TD></TR>
|
258
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
259
|
+
<a href="/camera/camera70.php">I-75 just South of SR 129</a></TD></TR>
|
260
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
261
|
+
<a href="/camera/camera69.php">I-75 at Tylersville Rd.</a></TD></TR>
|
262
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
263
|
+
<a href="/camera/camera68.php">I-75 at Cincinnati-Dayton Rd.</a></TD></TR>
|
264
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
265
|
+
<a href="/camera/camera67.php">I-75 just North of Union Centre Blvd.</a></TD></TR>
|
266
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
267
|
+
<a href="/camera/camera66.php">I-75 at Allen Rd.</a></TD></TR>
|
268
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
269
|
+
<a href="/camera/camera2.php">I-75 at I-275</a></TD></TR>
|
270
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
271
|
+
<a href="/camera/camera4.php">I-75 at Sharon Rd.</a></TD></TR>
|
272
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
273
|
+
<a href="/camera/camera104.php">I-75 at Glendale-Milford</a></TD></TR>
|
274
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
275
|
+
<a href="/camera/camera5.php">I-75 at Neumann Way</a></TD></TR>
|
276
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
277
|
+
<a href="/camera/camera6.php">I-75 at Lockland Split</a></TD></TR>
|
278
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
279
|
+
<a href="/camera/camera7.php">I-75 at Davis St. in Lockland.</a></TD></TR>
|
280
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
281
|
+
<a href="/camera/camera8.php">I-75 at Galbraith Rd. in Arlington Heights</a></TD></TR>
|
282
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
283
|
+
<a href="/camera/camera9.php">I-75 at Ronald Reagan Hwy (SR 126)</a></TD></TR>
|
284
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
285
|
+
<a href="/camera/camera10.php">I-75 at Paddock Rd.</a></TD></TR>
|
286
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
287
|
+
<a href="/camera/camera11.php">I-75 at Towne St.</a></TD></TR>
|
288
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
289
|
+
<a href="/camera/camera12.php">I-75 at S.R. 562 (Norwood Lateral)</a></TD></TR>
|
290
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
291
|
+
<a href="/camera/camera13.php">I-75 at Vine St. in St. Bernard</a></TD></TR>
|
292
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
293
|
+
<a href="/camera/camera14.php">I-75 just North of Mitchell Ave.</a></TD></TR>
|
294
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
295
|
+
<a href="/camera/camera15.php">I-75 at Mitchell Ave.</a></TD></TR>
|
296
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
297
|
+
<a href="/camera/camera16.php">I-75 at Ludlow Viaduct</a></TD></TR>
|
298
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
299
|
+
<a href="/camera/camera49.php">I-75 at I-74</a></TD></TR>
|
300
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
301
|
+
<a href="/camera/camera93.php">I-75 South of I-74</a></TD></TR>
|
302
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
303
|
+
<a href="/camera/camera18.php">I-75 at Hopple St.</a></TD></TR>
|
304
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
305
|
+
<a href="/camera/camera19.php">I-75 at Western Hills Viaduct</a></TD></TR>
|
306
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
307
|
+
<a href="/camera/camera20.php">I-75 at Ezzard Charles Dr.</a></TD></TR>
|
308
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
309
|
+
<a href="/camera/camera91.php">I-75 at Linn St.</a></TD></TR>
|
310
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
311
|
+
<a href="/camera/camera21.php">I-75 at Sixth St. in Cincinnati</a></TD></TR>
|
312
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
313
|
+
<a href="/camera/camera22.php">I-75 at the Ohio River</a></TD></TR>
|
314
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
315
|
+
<a href="/camera/camera35.php">I-75 at I-71</a></TD></TR>
|
316
|
+
<TR><TD WIDTH=30></TD></TR>
|
317
|
+
</TABLE>
|
318
|
+
<BR>
|
319
|
+
<TABLE WIDTH=405 CELLSPACING=0 CELLPADDING=0 BORDER=0>
|
320
|
+
<TR><TD> </TD><TD ALIGN=LEFT><FONT FACE=ARIAL><B>Kentucky:</B></FONT></TD></TR>
|
321
|
+
<TR><TD WIDTH=30></TD></TR>
|
322
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
323
|
+
<a href="/camera/camera132.php">I-275 on US 27 Bridge</a></TD></TR>
|
324
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
325
|
+
<a href="/camera/camera131.php">I-275 at I-471</a></TD></TR>
|
326
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
327
|
+
<a href="/camera/camera130.php">I-275 at KY 16 (Taylor Mill)</a></TD></TR>
|
328
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
329
|
+
<a href="/camera/camera129.php">I-275 South of Dixie Highway (Taylor Mill)</a></TD></TR>
|
330
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
331
|
+
<a href="/camera/camera30.php">I-275 at I-71/I-75</a></TD></TR>
|
332
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
333
|
+
<a href="/camera/camera51.php">I-275 at Mineola Pike.</a></TD></TR>
|
334
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
335
|
+
<a href="/camera/camera52.php">I-275 approaching KY 20/Airport</a></TD></TR>
|
336
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
337
|
+
<a href="/camera/camera53.php">I-275 West of Airport</a></TD></TR>
|
338
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
339
|
+
<a href="/camera/camera54.php">I-275 between KY 20 & KY 237</a></TD></TR>
|
340
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
341
|
+
<a href="/camera/camera55.php">I-275 at KY 237</a></TD></TR>
|
342
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
343
|
+
<a href="/camera/camera56.php">I-275 at between Hebron & Petersburg</a></TD></TR>
|
344
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
345
|
+
<a href="/camera/camera57.php">I-275 at Petersburg Exit</a></TD></TR>
|
346
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
347
|
+
<a href="/camera/camera58.php">I-275 at between Petersburg & Indiana Line</a></TD></TR>
|
348
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
349
|
+
</TD></TR>
|
350
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
351
|
+
<a href="/camera/camera37.php">I-471 at I-71</a></TD></TR>
|
352
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
353
|
+
<a href="/camera/camera103.php">I-471 at Grand Ave.</a></TD></TR>
|
354
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
355
|
+
</TD></TR>
|
356
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
357
|
+
<a href="/camera/camera23.php">I-71/I-75 on lower deck of Brent Spence Bridge</a></TD></TR>
|
358
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
359
|
+
<a href="/camera/camera24.php">I-71/I-75 at 12th St. in Covington</a></TD></TR>
|
360
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
361
|
+
<a href="/camera/camera25.php">I-71/I-75 at Cut-in-the-hill</a></TD></TR>
|
362
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
363
|
+
<a href="/camera/camera26.php">I-71/I-75 at Kyles Lane</a></TD></TR>
|
364
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
365
|
+
<a href="/camera/camera27.php">I-71/I-75 at Dixie Highway</a></TD></TR>
|
366
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
367
|
+
<a href="/camera/camera28.php">I-71/I-75 just North of Buttermilk Pike</a></TD></TR>
|
368
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
369
|
+
<a href="/camera/camera29.php">I-71/I-75 at Buttermilk Pike</a></TD></TR>
|
370
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
371
|
+
<a href="/camera/camera30.php">I-71/I-75 at I-275</a></TD></TR>
|
372
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
373
|
+
<a href="/camera/camera31.php">I-71/I-75 at Donaldson Rd.</a></TD></TR>
|
374
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
375
|
+
<a href="/camera/camera32.php">I-71/I-75 at Turfway Rd.</a></TD></TR>
|
376
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
377
|
+
<a href="/camera/camera33.php">I-71/I-75 at Burlington Pike</a></TD></TR>
|
378
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
379
|
+
<a href="/camera/camera34.php">I-71/I-75 at U.S. 42</a></TD></TR>
|
380
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
381
|
+
<a href="/camera/camera59.php">I-71/I-75 at Mt. Zion Rd.</a></TD></TR>
|
382
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
383
|
+
<a href="/camera/camera60.php">I-71/I-75 just North of the Richwood Exit</a></TD></TR>
|
384
|
+
<TR><TD WIDTH=30 HEIGHT=20><SPACER TYPE=horizontal SIZE=30></TD><TD ALIGN=LEFT WIDTH=375>
|
385
|
+
<a href="/camera/camera61.php">I-71/I-75 Split</a></TD></TR>
|
386
|
+
<TR><TD WIDTH=30></TD></TR>
|
387
|
+
</TABLE>
|
388
|
+
<BR><BR>
|
389
|
+
|
390
|
+
</TD></TR>
|
391
|
+
<TR><TD WIDTH=75 ALIGN=LEFT VALIGN=BOTTOM BGCOLOR=ccccff><IMG SRC=/images/bleft.gif></TD><TD WIDTH=75 ALIGN=RIGHT VALIGN=BOTTOM BGCOLOR=ccccff><IMG SRC=/images/bright.gif></TD><TD WIDTH=480 ALIGN=CENTER><BR><A HREF=/copyright.php><FONT COLOR=959595 SIZE=-2 FACE=ARIAL>Copyright © 1997-2008 ARTIMIS</FONT></A></TD></TR>
|
392
|
+
|
393
|
+
</TABLE>
|
394
|
+
|
395
|
+
</body>
|
396
|
+
</html>
|
data/test/helper.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'minitest/spec'
|
3
|
+
require 'turn'
|
4
|
+
require 'artimis'
|
5
|
+
require 'webmock'
|
6
|
+
include WebMock::API
|
7
|
+
|
8
|
+
# Fetch a page with:
|
9
|
+
# `curl -is www.example.com > /tmp/example_curl_-is_output.txt`
|
10
|
+
|
11
|
+
class MiniTest::Unit::TestCase
|
12
|
+
def setup
|
13
|
+
stub_camera_list
|
14
|
+
stub_camera
|
15
|
+
end
|
16
|
+
|
17
|
+
def stub_camera_list
|
18
|
+
all_cameras = File.new('test/fixtures/cameraselect.txt')
|
19
|
+
stub_request(:get, "http://www.artimis.org/cameraselect.php").to_return(all_cameras)
|
20
|
+
end
|
21
|
+
|
22
|
+
def stub_camera(id = 99)
|
23
|
+
single_camera = File.new("test/fixtures/camera#{id}.txt")
|
24
|
+
stub_request(:get, %r|http://www.artimis.org/camera/camera\d{1,3}.php|).to_return(single_camera)
|
25
|
+
end
|
26
|
+
end
|
metadata
ADDED
@@ -0,0 +1,73 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: artimis
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Chris Moore
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-07-01 00:00:00.000000000 -04:00
|
13
|
+
default_executable:
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: mechanize
|
17
|
+
requirement: &2152957740 !ruby/object:Gem::Requirement
|
18
|
+
none: false
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: *2152957740
|
26
|
+
description: A DSL for scraping the ARTIMIS website.
|
27
|
+
email:
|
28
|
+
- chris@26webs.com
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- .gitignore
|
34
|
+
- .rvmrc
|
35
|
+
- Gemfile
|
36
|
+
- Rakefile
|
37
|
+
- artimis.gemspec
|
38
|
+
- lib/artimis.rb
|
39
|
+
- lib/artimis/camera.rb
|
40
|
+
- test/camera_test.rb
|
41
|
+
- test/fixtures/camera99.txt
|
42
|
+
- test/fixtures/cameraselect.txt
|
43
|
+
- test/helper.rb
|
44
|
+
has_rdoc: true
|
45
|
+
homepage: http://github.com/cdmwebs/artimis
|
46
|
+
licenses: []
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
63
|
+
requirements: []
|
64
|
+
rubyforge_project: artimis
|
65
|
+
rubygems_version: 1.6.2
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: A DSL for scraping the ARTIMIS website.
|
69
|
+
test_files:
|
70
|
+
- test/camera_test.rb
|
71
|
+
- test/fixtures/camera99.txt
|
72
|
+
- test/fixtures/cameraselect.txt
|
73
|
+
- test/helper.rb
|