artimis 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|