Nautical charts and publications

Canadian Hydrographic Service (CHS)'s nautical charts and publications help ensure the safe navigation of Canada's waterways. Browse our catalogue of over 2,000 nautical charts and publications using the links below.

Services and information

Nautical charts

Purchase charts for navigational use or submit an application to acquire charts for non-navigational purposes.

Nautical publications

Nautical publications for use with charts, including tides, currents, water levels, Sailing Directions and Chart 1.

Replaced and withdrawn charts

List of replaced and withdrawn charts and their replacements.

Canada-U.S. chart coordination agreement

Agreement to eliminate overlapping coverage of digital charts.

Arctic Voyage Planning Guide

Information for vessels travelling in the Canadian Arctic.

Commemorative charts

Charts produced by the Canadian Hydrographic Service to honour events from Canadian history.

Instructional charts and sample products

The CHS offers two charts for instructional purposes for sale, as well as a sample chart in a variety of formats.

Hydrography

Navigational products, services and information to ensure the safety of mariners.


<% '----------------------------------------------------------------------------------------------------------------------' '-----------------------------------Encoding the page to make the email send out as UTF-8------------------------------' '----------------------------------------------------------------------------------------------------------------------' Response.ContentType = "text/html" Response.AddHeader "Content-Type", "text/html;charset=UTF-8" Response.CodePage = 65001 Response.CharSet = "UTF-8" %>
<% if Session("nZqtiH88nd")="remove" then %>
Report a problem or mistake on this page

Thank you for your help!

You will not receive a reply. For enquiries, contact us.

<% else %>
Report a problem or mistake on this page
Please select all that apply:
<% end if %> <% '-------------------------------------------------------------------------------------------' '-----------------------only trigger the ASP code when the form POSTs-----------------------' '-------------------------------------------------------------------------------------------' If Request.ServerVariables("Request_Method") = "POST" Then '-------------------------------------------------------------------------------------------' '--------------------------------------recaptcha check--------------------------------------' '-------------------------------------------------------------------------------------------' Dim widgetRecaptchaSecret, widgetSendstring, widgetObjXML, widgetRecaptchaCheck, widgetResponseString widgetRecaptchaSecret = "6LdGyzEaAAAAAAfSTKpfhDex6IFD1HoAXyvlr8Tk" widgetSendstring = "https://www.google.com/recaptcha/api/siteverify?secret=" & widgetRecaptchaSecret & "&response=" & Request.form("g-recaptcha-response") Set widgetObjXML = Server.CreateObject("MSXML2.ServerXMLHTTP") widgetObjXML.Open "GET", widgetSendstring, False widgetObjXML.Send widgetResponseString = split(widgetObjXML.responseText, vblf) Set widgetObjXML = Nothing if Right(widgetResponseString(1),5) = "true," then widgetRecaptchaCheck = true else widgetRecaptchaCheck = widgetResponseString(1) end if Set widgetObjXML = Nothing '-------------------------------------------------------------------------------------------' '-------------redirect variable that is used even if recaptcha is not verified--------------' '-------------------------------------------------------------------------------------------' widgetRedirect = Server.HTMLEncode(trim(Request.QueryString("redirect"))) if widgetRecaptchaCheck = true Then '-------------------------------------------------------------------------------------------' '--------------ASP code to create variables for the values of each form field---------------' '------------------------------HTMLEncode sanitizes the values------------------------------' '-------------------------------------------------------------------------------------------' widgetLang = Server.HTMLEncode(trim(request.form("widgetLang"))) widgetSubject = Server.HTMLEncode(trim(request.form("widgetSubject"))) widgetPageTitle = Server.HTMLEncode(trim(request.form("widgetPageTitle"))) widgetProblem1 = Server.HTMLEncode(trim(request.form("widgetProblem1"))) widgetProblem2 = Server.HTMLEncode(trim(request.form("widgetProblem2"))) widgetProblem3 = Server.HTMLEncode(trim(request.form("widgetProblem3"))) widgetProblem4 = Server.HTMLEncode(trim(request.form("widgetProblem4"))) widgetProblem5 = Server.HTMLEncode(trim(request.form("widgetProblem5"))) widgetProblem6 = Server.HTMLEncode(trim(request.form("widgetProblem6"))) widgetProblem7 = Server.HTMLEncode(trim(request.form("widgetProblem7"))) widgetProblem8 = Server.HTMLEncode(trim(request.form("widgetProblem8"))) widgetProblem9 = Server.HTMLEncode(trim(request.form("widgetProblem9"))) widgetProblem10 = Server.HTMLEncode(trim(request.form("widgetProblem10"))) widgetProblem11 = Server.HTMLEncode(trim(request.form("widgetProblem11"))) widgetProblem12 = Server.HTMLEncode(trim(request.form("widgetProblem12"))) widgetEmailSubject = trim(request.form("widgetPageTitle")) '-------------------------------------------------------------------------------------------' '--------------------------------------build the email--------------------------------------' '-------------------------------------------------------------------------------------------' dim widgetMsg, widgetEmailForm set widgetEmailForm = server.CreateObject ("CDO.Message") widgetEmailForm.From = "CHS-ProdService.XNCR@dfo-mpo.gc.ca" widgetEmailForm.To = "Timothy.Wiens@dfo-mpo.gc.ca" widgetEmailForm.Subject = "Website problem: " & widgetEmailSubject widgetMsg = "" widgetMsg = widgetMsg & "" widgetMsg = widgetMsg & "" widgetMsg = widgetMsg & "" widgetMsg = widgetMsg & "" if widgetProblem1 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem2 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem3 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem4 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem5 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem6 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem7 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem8 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem9 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem10 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem11 <> "" then widgetMsg = widgetMsg & "" else end if if widgetProblem12 <> "" then widgetMsg = widgetMsg & "" else end if widgetMsg = widgetMsg & "

Report a problem

Language" & widgetLang & "
Subject" & widgetSubject & "
Page Title" & widgetPageTitle & "
widgetProblem1" & widgetProblem1 & "
widgetProblem2" & widgetProblem2 & "
widgetProblem3" & widgetProblem3 & "
widgetProblem4" & widgetProblem4 & "
widgetProblem5" & widgetProblem5 & "
widgetProblem6" & widgetProblem6 & "
widgetProblem7" & widgetProblem7 & "
widgetProblem8" & widgetProblem8 & "
widgetProblem9" & widgetProblem9 & "
widgetProblem10" & widgetProblem10 & "
widgetProblem11" & widgetProblem11 & "
widgetProblem12" & widgetProblem12 & "
" widgetEmailForm.HTMLBody = widgetMsg widgetEmailForm.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 widgetEmailForm.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "CDCSMTP.ent.dfo-mpo.ca" widgetEmailForm.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 widgetEmailForm.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 widgetEmailForm.Configuration.Fields.Update '-------------------------------------------------------------------------------------------' '----if the email is valid then send it and then empty it to prepare for new submissions----' '------use session variable to lock out submissions for 1 minute and change the widget------' '-------------redirect back to widget (anchor) on page widget was submitted on--------------' '-------------------------------------------------------------------------------------------' widgetEmailForm.Send set widgetEmailForm=nothing Session("nZqtiH88nd")="remove" Session.Timeout=1 Response.Redirect(widgetRedirect) Else '-------------------------------------------------------------------------------------------' '----------------------------fallback redirections for failures-----------------------------' '-------------------------------------------------------------------------------------------' if widgetRedirect = "" then Response.Redirect("/index-eng.html") Else Response.Redirect(widgetRedirect) End If End If Else End If %>
Date modified: