CINXE.COM
Historical Vessel Points / Tracks (HVP/HVT) | Spire Maritime Documentation
<!doctype html><html class="no-js " lang="en"><head><meta charset="utf-8"><title>Historical Vessel Points / Tracks (HVP/HVT) | Spire Maritime Documentation</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="preconnect" href="https://fonts.gstatic.com"><link rel="preconnect" href="https://cdn.jsdelivr.net"><meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /><link rel="canonical" href="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/" /><meta property="og:locale" content="en_US" /><meta property="og:type" content="article" /><meta property="og:title" content="Historical Vessel Points / Tracks (HVP/HVT) | Spire Maritime Documentation" /><meta property="og:description" content="The Historical Vessel web services (GWS) are part of Spire Maritime’s Geospatial Web Services™ (GWS). These web services provide historical track and position information for vessels using Spire AIS data, and delivers the data in two formats that are Open Geospatial Consortium (OGC) compliant: The WFS services allow users to get features (data) in a […]" /><meta property="og:url" content="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/" /><meta property="og:site_name" content="Spire Maritime Documentation" /><meta property="article:publisher" content="https://www.facebook.com/satelliteaisdata/" /><meta property="article:modified_time" content="2022-10-26T12:07:19+00:00" /><meta property="og:image" content="https://documentation.spire.com/wp-content/uploads/2022/10/spire-maritime-docs.jpg" /><meta property="og:image:width" content="1500" /><meta property="og:image:height" content="500" /><meta property="og:image:type" content="image/jpeg" /><meta name="twitter:card" content="summary_large_image" /><meta name="twitter:site" content="@aisdata" /><meta name="twitter:label1" content="Est. reading time" /><meta name="twitter:data1" content="1 minute" /><style media="all">img:is([sizes="auto" i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}:root{--wp--preset--aspect-ratio--square:1;--wp--preset--aspect-ratio--4-3:4/3;--wp--preset--aspect-ratio--3-4:3/4;--wp--preset--aspect-ratio--3-2:3/2;--wp--preset--aspect-ratio--2-3:2/3;--wp--preset--aspect-ratio--16-9:16/9;--wp--preset--aspect-ratio--9-16:9/16;--wp--preset--color--black:#000;--wp--preset--color--cyan-bluish-gray:#abb8c3;--wp--preset--color--white:#fff;--wp--preset--color--pale-pink:#f78da7;--wp--preset--color--vivid-red:#cf2e2e;--wp--preset--color--luminous-vivid-orange:#ff6900;--wp--preset--color--luminous-vivid-amber:#fcb900;--wp--preset--color--light-green-cyan:#7bdcb5;--wp--preset--color--vivid-green-cyan:#00d084;--wp--preset--color--pale-cyan-blue:#8ed1fc;--wp--preset--color--vivid-cyan-blue:#0693e3;--wp--preset--color--vivid-purple:#9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple:linear-gradient(135deg,rgba(6,147,227,1) 0%,#9b51e0 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan:linear-gradient(135deg,#7adcb4 0%,#00d082 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange:linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red:linear-gradient(135deg,rgba(255,105,0,1) 0%,#cf2e2e 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray:linear-gradient(135deg,#eee 0%,#a9b8c3 100%);--wp--preset--gradient--cool-to-warm-spectrum:linear-gradient(135deg,#4aeadc 0%,#9778d1 20%,#cf2aba 40%,#ee2c82 60%,#fb6962 80%,#fef84c 100%);--wp--preset--gradient--blush-light-purple:linear-gradient(135deg,#ffceec 0%,#9896f0 100%);--wp--preset--gradient--blush-bordeaux:linear-gradient(135deg,#fecda5 0%,#fe2d2d 50%,#6b003e 100%);--wp--preset--gradient--luminous-dusk:linear-gradient(135deg,#ffcb70 0%,#c751c0 50%,#4158d0 100%);--wp--preset--gradient--pale-ocean:linear-gradient(135deg,#fff5cb 0%,#b6e3d4 50%,#33a7b5 100%);--wp--preset--gradient--electric-grass:linear-gradient(135deg,#caf880 0%,#71ce7e 100%);--wp--preset--gradient--midnight:linear-gradient(135deg,#020381 0%,#2874fc 100%);--wp--preset--font-size--small:13px;--wp--preset--font-size--medium:20px;--wp--preset--font-size--large:36px;--wp--preset--font-size--x-large:42px;--wp--preset--spacing--20:.44rem;--wp--preset--spacing--30:.67rem;--wp--preset--spacing--40:1rem;--wp--preset--spacing--50:1.5rem;--wp--preset--spacing--60:2.25rem;--wp--preset--spacing--70:3.38rem;--wp--preset--spacing--80:5.06rem;--wp--preset--shadow--natural:6px 6px 9px rgba(0,0,0,.2);--wp--preset--shadow--deep:12px 12px 50px rgba(0,0,0,.4);--wp--preset--shadow--sharp:6px 6px 0px rgba(0,0,0,.2);--wp--preset--shadow--outlined:6px 6px 0px -3px rgba(255,255,255,1),6px 6px rgba(0,0,0,1);--wp--preset--shadow--crisp:6px 6px 0px rgba(0,0,0,1)}:where(.is-layout-flex){gap:.5em}:where(.is-layout-grid){gap:.5em}body .is-layout-flex{display:flex}.is-layout-flex{flex-wrap:wrap;align-items:center}.is-layout-flex>:is(*,div){margin:0}body .is-layout-grid{display:grid}.is-layout-grid>:is(*,div){margin:0}:where(.wp-block-columns.is-layout-flex){gap:2em}:where(.wp-block-columns.is-layout-grid){gap:2em}:where(.wp-block-post-template.is-layout-flex){gap:1.25em}:where(.wp-block-post-template.is-layout-grid){gap:1.25em}.has-black-color{color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-color{color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-color{color:var(--wp--preset--color--white) !important}.has-pale-pink-color{color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-color{color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-color{color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-color{color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-color{color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-color{color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-color{color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-color{color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-color{color:var(--wp--preset--color--vivid-purple) !important}.has-black-background-color{background-color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-background-color{background-color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-background-color{background-color:var(--wp--preset--color--white) !important}.has-pale-pink-background-color{background-color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-background-color{background-color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-background-color{background-color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-background-color{background-color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-background-color{background-color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-background-color{background-color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-background-color{background-color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-background-color{background-color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-background-color{background-color:var(--wp--preset--color--vivid-purple) !important}.has-black-border-color{border-color:var(--wp--preset--color--black) !important}.has-cyan-bluish-gray-border-color{border-color:var(--wp--preset--color--cyan-bluish-gray) !important}.has-white-border-color{border-color:var(--wp--preset--color--white) !important}.has-pale-pink-border-color{border-color:var(--wp--preset--color--pale-pink) !important}.has-vivid-red-border-color{border-color:var(--wp--preset--color--vivid-red) !important}.has-luminous-vivid-orange-border-color{border-color:var(--wp--preset--color--luminous-vivid-orange) !important}.has-luminous-vivid-amber-border-color{border-color:var(--wp--preset--color--luminous-vivid-amber) !important}.has-light-green-cyan-border-color{border-color:var(--wp--preset--color--light-green-cyan) !important}.has-vivid-green-cyan-border-color{border-color:var(--wp--preset--color--vivid-green-cyan) !important}.has-pale-cyan-blue-border-color{border-color:var(--wp--preset--color--pale-cyan-blue) !important}.has-vivid-cyan-blue-border-color{border-color:var(--wp--preset--color--vivid-cyan-blue) !important}.has-vivid-purple-border-color{border-color:var(--wp--preset--color--vivid-purple) !important}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background:var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background:var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background:var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background:var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important}.has-cool-to-warm-spectrum-gradient-background{background:var(--wp--preset--gradient--cool-to-warm-spectrum) !important}.has-blush-light-purple-gradient-background{background:var(--wp--preset--gradient--blush-light-purple) !important}.has-blush-bordeaux-gradient-background{background:var(--wp--preset--gradient--blush-bordeaux) !important}.has-luminous-dusk-gradient-background{background:var(--wp--preset--gradient--luminous-dusk) !important}.has-pale-ocean-gradient-background{background:var(--wp--preset--gradient--pale-ocean) !important}.has-electric-grass-gradient-background{background:var(--wp--preset--gradient--electric-grass) !important}.has-midnight-gradient-background{background:var(--wp--preset--gradient--midnight) !important}.has-small-font-size{font-size:var(--wp--preset--font-size--small) !important}.has-medium-font-size{font-size:var(--wp--preset--font-size--medium) !important}.has-large-font-size{font-size:var(--wp--preset--font-size--large) !important}.has-x-large-font-size{font-size:var(--wp--preset--font-size--x-large) !important}:where(.wp-block-post-template.is-layout-flex){gap:1.25em}:where(.wp-block-post-template.is-layout-grid){gap:1.25em}:where(.wp-block-columns.is-layout-flex){gap:2em}:where(.wp-block-columns.is-layout-grid){gap:2em}:root :where(.wp-block-pullquote){font-size:1.5em;line-height:1.6} /*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none;max-width:100%;height:auto}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}.spiregradient{background-image:-webkit-linear-gradient(0deg,#04060f,#be0000);background-image:-moz-linear-gradient(0deg,#04060f,#be0000);background-image:-ms-linear-gradient(0deg,#04060f,#be0000);background-image:-o-linear-gradient(0deg,#04060f,#be0000);background-image:linear-gradient(90deg,#04060f,#be0000)}.maritimegradient{background-image:-webkit-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:-moz-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:-ms-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:-o-linear-gradient(0deg,#0f447a,#008081,#00806c) !important;background-image:linear-gradient(90deg,#0f447a,#008081,#00806c) !important}.aviationgradient{background-image:-webkit-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:-moz-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:-ms-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:-o-linear-gradient(0deg,#80146e,#3c2680,#0f447a) !important;background-image:linear-gradient(90deg,#80146e,#3c2680,#0f447a) !important}.weathergradient{background-image:-webkit-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:-moz-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:-ms-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:-o-linear-gradient(0deg,#00806c,#c7904b,#c85a3d) !important;background-image:linear-gradient(90deg,#00806c,#c7904b,#c85a3d) !important}.spaceservicesgradient,.space-servicesgradient,.spacegradient,.orbitalgradient{background-image:-webkit-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:-moz-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:-ms-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:-o-linear-gradient(0deg,#04060f,#485463,#2280c5) !important;background-image:linear-gradient(90deg,#04060f,#485463,#2280c5) !important}.federalgradient{background-image:-webkit-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:-moz-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:-ms-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:-o-linear-gradient(0deg,#00806c,#04060f,#be0000) !important;background-image:linear-gradient(90deg,#00806c,#04060f,#be0000) !important}.earthintelligencegradient,.earth-intelligencegradient,.earthintelgradient,.earthinformationgradient,.earthinfogradient{background-image:-webkit-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:-moz-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:-ms-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:-o-linear-gradient(0deg,#008081,#00806c,#2280c5) !important;background-image:linear-gradient(90deg,#008081,#00806c,#2280c5) !important}@font-face{font-family:"Apercu";src:url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-regular.woff2) format("woff2"),url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-regular.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:"Apercu";src:url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-bold.woff2) format("woff2"),url(//documentation.spire.com/wp-content/themes/docs/css/../font/apercu-mono-bold.woff) format("woff");font-weight:700;font-display:swap} /*! HTML5 Boilerplate v8.0.0 | MIT License | https://html5boilerplate.com/ */ html{color:#04060f;font-size:1em;line-height:1.4;overflow-x:hidden;background-color:#fff;overscroll-behavior-y:none}::-moz-selection{background:#b3d4fc;text-shadow:none}::selection{background:#b3d4fc;text-shadow:none}hr{display:block;height:1px;border:0;border-top:1px solid #c6c7c8;margin:1em 0;padding:0}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}a{color:inherit;text-decoration:none}nav ul{list-style:none;padding:0;margin:0}nav ul li+li{margin-top:0}dl,dt,dd{margin:0;padding:0}blockquote{padding:0;margin-left:0}.mobileonly{display:none}@media only screen and (max-width:750px){.desktoponly{display:none}.mobileonly{display:block}}.mobilehide{display:block}.desktophide{display:none}@media only screen and (max-width:750px){.desktophide{display:block}.mobilehide{display:none}}.clearfix .col{font-style:normal;float:left;margin:0 1.3%}.clearfix .col.col1{width:5.7%}.clearfix .col.col2{width:14%}.clearfix .col.col2five{width:17.363%}.clearfix .col.col3{width:22.3%}.clearfix .col.col4{width:30.6%}.clearfix .col.col5{width:38.9%}.clearfix .col.col6{width:47.2%}.clearfix .col.col7{width:55.5%}.clearfix .col.col8{width:63.8%}.clearfix .col.col9{width:72.1%}.clearfix .col.col10{width:80.4%}.clearfix .col.col11{width:88.7%}.clearfix .col.col12{width:97%}body{padding-top:50px}.wrapper{position:relative;max-width:1440px;width:100%;margin:0 auto}@media only screen and (max-width:1000px){.wrapper{width:97%}.clearfix .col.col5,.clearfix .col.col6,.clearfix .col.col7,.clearfix .col.col8,.clearfix .col.col9,.clearfix .col.col10,.clearfix .col.col11,.clearfix .col.col12{width:97.4%;float:none;clear:left}}@media only screen and (max-width:750px){.clearfix .col.col1,.clearfix .col.col2,.clearfix .col.col2five,.clearfix .col.col3,.clearfix .col.col4{width:97.4%;float:none}.clearfix .col.empty{display:none}}body{font-family:'Exo',sans-serif,sans-serif;letter-spacing:.02em;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:800;font-family:'Exo',sans-serif;letter-spacing:.02em;margin:0}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{color:#be0000;text-decoration:underline}h1 .beta_label,h2 .beta_label,h3 .beta_label,h4 .beta_label,h5 .beta_label,h6 .beta_label{background:#be0000;color:#fff;border-radius:.2em;display:inline-block;font-size:.6em;padding:.3em .3em .25em;text-transform:uppercase;margin-right:.7em;vertical-align:middle;line-height:1em;float:left;position:relative;top:.5em}*+h5,*+h6{margin-top:2em}h1{font-size:40px;line-height:1.1em}h1+p{margin-top:24px}h1+img,h1+figure{margin-top:32px}h2{font-size:34px;line-height:1.1em}h3{font-size:28px;line-height:1.2em}h2+p,h3+p{margin-top:16px}h2+figure,h3+figure,h2+img,h3+img{margin-top:32px}h4{font-size:24px;line-height:1.33em}h5,h6{font-size:18px;line-height:1.5em;font-weight:700}.lead p{font-size:18px;line-height:1.5em}p{font-size:15px;line-height:26px;letter-spacing:.02em;word-wrap:break-word}p.smaller{font-size:14px;line-height:22px}p.lead{font-size:18px;line-height:1.5em}p.lead+img,p.lead+figure{margin-top:24px}p.lead+.button,p.lead+button,p.lead+input[type=submit]{margin-top:32px}p:first-child{margin-top:0}p a{text-decoration:underline;font-weight:700;color:#be0000}p a.calltoaction,p a.arrowlink{text-decoration:none}caption,figcaption{font-family:'Apercu',monospace;font-size:13px;line-height:1.5em;font-weight:700;letter-spacing:0}.pagecontent li a{text-decoration:underline}ul{padding-left:1.1em;font-size:15px}ul li+li{margin-top:.75em}ul.advantages{list-style:none;padding-left:25px;font-size:14px;margin-bottom:2.5em}ul.advantages li{position:relative}ul.advantages li:before{content:'';left:-25px;top:3px;position:absolute;border-radius:100%;width:14px;height:14px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/check.svg) #be0000 no-repeat center 3px;background-size:8px 8px}ul.advantages li+li{margin-top:1.5em}ol{padding-left:1.9em}ol li a{text-decoration:underline;font-weight:700;color:#be0000}ol li+li{margin-top:.75em}ol li+li ol,ol li+li ul{margin:1em 0}.postdate{font-size:13px;font-family:'Apercu',monospace;font-weight:700;display:block;margin-bottom:1em;text-align:center;color:#c6c7c8}.thepostauthor{text-align:center;color:#c6c7c8;font-weight:700}.thepostauthor img{width:50px;height:50px;border-radius:100%}pre,code{background:#f5f2f0;font-size:1em}@media only screen and (max-width:750px){h1{font-size:40px !important;line-height:1.1em}h2{font-size:32px;line-height:1.2em}h3,h4{font-size:20px;line-height:24px}}i[class^=icon]{display:inline-block;width:1em;height:1em;background-repeat:no-repeat;background-position:center center;background-size:100% 100%;text-indent:9999px;overflow:hidden;vertical-align:middle}i.icon-government{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_government.svg?v2)}i.icon-port{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_port.svg?v2)}i.icon-environment{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_environment.svg?v2)}i.icon-insurance{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_insurance.svg?v2)}i.icon-rig{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_rig.svg?v2)}i.icon-container{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_container.svg?v2)}i.icon-weather_white{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_weather_white.svg?v2)}i.icon-aviation_white{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_aviation_white.svg?v2)}i.icon-maritime_white{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_maritime_white.svg?v2)}i.icon-wind{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_wind.svg?v2)}i.icon-orbit{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_orbit.svg?v2)}i.icon-atmosphere{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_atmosphere.svg?v2)}i.icon-maritime{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_maritime.svg?v2)}i.icon-database{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_database.svg?v2)}i.icon-faq{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_faq.svg?v2)}i.icon-api_cloud{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_api_cloud.svg?v2)}i.icon-api{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_api.svg?v2)}i.icon-weather{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_weather.svg?v2)}i.icon-chat{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_chat.svg?v2)}i.icon-coverage{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_coverage.svg?v2)}i.icon-orbit{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_orbit.svg?v2)}i.icon-satellite_red{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_satellite_red.svg?v2)}i.icon-family_leave{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_family_leave.svg?v2)}i.icon-screen{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_screen.svg?v2)}i.icon-travel{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_travel.svg?v2)}i.icon-benefits{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_benefits.svg?v2)}i.icon-instagram{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_instagram.svg?v2)}i.icon-linkedin{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_linkedin.svg?v2)}i.icon-twitter{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_twitter.svg?v2)}i.icon-facebook{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_facebook.svg?v2)}i.icon-facebook{background-size:75% 75%}.calltoaction{background:#be0000;color:#fff;font-weight:700;font-size:14px;line-height:1.1em;position:relative;z-index:1;letter-spacing:.05em;padding:13px 20px;min-width:142px;display:inline-block;text-align:center;outline:none}.calltoaction:before,.calltoaction:after{z-index:-1;background:#be0000;position:absolute;left:0;top:0;width:100%;height:100%;content:''}.calltoaction:after{background:#04060f;width:0;transition:width .3s ease-in-out}.calltoaction:hover:after{width:100%}.calltoaction.inverted{background:0 0;color:#be0000;border:1px solid #be0000;padding-top:12px;padding-bottom:12px;transition:color .3s}.calltoaction.inverted:hover{color:#fff}.calltoaction.inverted:after{background:#be0000}.calltoaction.inverted:before{background:0 0}.calltoaction+.calltoaction{margin-left:1.5em}.arrowlink{color:#be0000;font-weight:700;font-size:14px;padding-right:1.6em;position:relative;display:inline-block;margin:0 2em 1em 0}.arrowlink:after,.arrowlink:before{content:'';position:absolute}.arrowlink:before{width:1em;height:1em;border-radius:100%;right:0;background:#be0000;top:50%;margin-top:-.55em}.arrowlink:after{right:.32em;width:.37em;height:.37em;top:50%;margin-top:-.22em;border-top:2px solid #fff;border-right:2px solid #fff;box-sizing:border-box;transform:rotateZ(45deg)}.arrowlink:last-child{margin-bottom:0}@media only screen and (max-width:750px){.calltoaction+.calltoaction{margin-top:1em;margin-left:0}}dl{margin:2em 0 2em;background:#f5f2f0;border-radius:10px;overflow:hidden;padding:1em}dl dt{font-weight:700;padding-left:10px}dl dt code{font-size:1em}dl dt em{font-weight:300;font-size:.85em;font-style:normal}dl dd{padding-left:10px;font-size:12px}dl dd+dt{margin-top:1em;border-top:1px solid #e2e2e2;padding-top:1em}dl dd+dd{padding-top:.5em}dl dd ul{margin-top:1em;font-size:12px}table{font-size:14px;border:1px solid #c6c7c8;border-collapse:collapse;width:100%;margin:2em auto}table th,table td{padding:.6em;border:1px solid #c6c7c8}.boxed{background:#fafafa;padding:1em;border-radius:5px;position:relative}#mobiletrigger{display:none}#relevanssi-live-search-status{display:none}#chooser{display:none}#searchpane{display:none;position:fixed;background:rgba(0,0,0,.8);left:0;top:0;width:100%;height:100%;z-index:9999999}#searchpane.active{display:block}#searchpane>div{left:50%;top:50%;position:absolute;transform:translate(-50%,-100%);max-width:500px;min-width:350px}#docmap{position:fixed;left:0;top:50px;width:300px;border-right:1px solid #e2e2e2;bottom:0;font-size:14px;color:#485463;background:#fafafa;font-weight:300}#docmap>div>ul>li:first-child a{font-size:1.25em;padding-left:0;padding-bottom:.5em;border-bottom:1px solid #e2e2e2;margin-bottom:.5em}#docmap li .beta_label{background:#485463;color:#fff;border-radius:.2em;text-transform:uppercase;font-size:13px;margin-left:.2em}#docmap li>a{padding-left:1em;position:relative;display:block;line-height:1em;padding-top:.2em;padding-bottom:.2em}#docmap li.active>ul{height:auto}#docmap li.has-sub-menu>a:before{content:'';position:absolute;left:0;top:.35em;height:.5em;width:.5em;transform:rotate(-45deg);border-bottom:1px solid #ccc;border-right:1px solid #ccc}#docmap li.has-sub-menu.current>a:before,#docmap li.has-sub-menu.active>a:before,#docmap li.has-sub-menu.forceopen>a:before{top:.15em;transform:rotate(45deg)}#docmap>div{padding:1em;position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;overflow:scroll}#docmap>div>ul li.active>a{font-weight:700;color:#485463}#docmap>div>ul li.active>a.current{font-weight:800}#docmap>div>ul li.forceopen>ul{height:auto}#docmap>div>ul>li ul{padding-left:.5em;height:0;overflow:hidden}#docmap>div>ul>li ul.active{height:auto}.search section:first-child{padding:5vw 0 0}#content section{padding:5vw 0;border-bottom:1px solid #e2e2e2}#content section.titleonly{border-bottom:0;padding-bottom:0}#content section.titleonly+section{padding-top:1em}#content section ul li a{text-decoration:underline;font-weight:700;color:#be0000}.ctabox{background:#fafafa;border-radius:10px;margin:2em 0;padding:1em}.ctabox h1,.ctabox h2,.ctabox h3,.ctabox h4,.ctabox h5,.ctabox h6{font-weight:800;font-size:25px}.ctabox ul li a{text-decoration:underline;color:#be0000;font-weight:700}.codebox{border-radius:5px;overflow:hidden;font-size:13px;font-family:'Apercu',monospace;background:#f5f2f0;margin:1em 0}.codebox .title,.codebox .code{padding:.5em 1.5em}.codebox .title{background:#00806c;color:#fff;font-weight:700}.codebox .code{font-size:15px}main{min-height:calc(100vh - 176px)}main pre{padding:1em;margin:.5em 0;white-space:break-spaces;overflow:auto}main pre code{padding:0}main code[class*=language-],main pre[class*=language-]{white-space:break-spaces;border-radius:5px}.page-template-template-blog h1,.single h1{margin-bottom:.35em}.page-template-default .col4,.single #content .col4,.blog #content .col4{padding-top:2.2em;position:sticky;top:60px}.page-template-default .col4 pre[class],.single #content .col4 pre[class],.blog #content .col4 pre[class]{font-size:12px}.page-template-default .col7 ul li a,.single #content .col7 ul li a,.blog #content .col7 ul li a{text-decoration:underline;color:#be0000;font-weight:700}main{padding-left:330px}.home main{padding-left:0}.home main h1{font-size:30px}.home main h2{font-size:22px}.home main p+h2{margin-top:1.5em}.home main h3{font-size:19px}.home main .spirebadge{width:80px;height:80px;position:relative;display:block;margin:0 auto -40px auto;top:-40px}.embed-container{padding-bottom:56.25%;height:0;overflow:hidden;width:100%;position:relative}.embed-container iframe,.embed-container object,.embed-container embed,.embed-container img,.embed-container video{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.bloglist{list-style:none;padding:0;margin:1em 0 0}.bloglist li{padding:0;margin:0}.bloglist li+li{margin-top:1em;padding-top:1em;border-top:1px solid #e2e2e2}.bloglist p{margin-top:0;font-weight:700}.bloglist .post_meta{font-size:.8em}.bloglist .product_tag{margin-right:1em;float:right}.post_meta{display:block;margin-bottom:.5em;font-family:Apercu,monospace;color:#04060f}.author_meta{margin-top:1em;margin-bottom:1em}.author_meta>div{display:inline-block;background:#f2f2f2;padding:10px;border-radius:40px}.author_meta img{float:left;width:2.9em;height:2.9em;border-radius:100%;border:2px solid #e2e2e2;margin-right:1em}.author_meta .cont{float:left}.author_meta span.name{font-weight:800}.author_meta span.job_title{font-size:.8em;display:block;line-height:1em;white-space:nowrap}.product_tag{background:#be0000;font-family:Apercu,monospace;color:#fff;padding:.2em .5em .1em;display:inline-block;border-radius:3px;font-size:.8em}.product_tag+.product_tag{margin-left:.25em}.product_tag.maritime-2-0{background:#185a8b}.product_tag.vessels-api,.product_tag.messages-api,.product_tag.historical-positions-api,.product_tag.routing-api{background:#00806c}.product_tag.tcp-stream-v2,.product_tag.uniproxy{background:#0f447a}.productlist{list-style:none;padding:0;margin:0}.productlist li{padding:0;margin:0;font-size:16px;clear:left}.productlist li+li{margin-top:.5em}.productlist li img{margin-right:.5em;margin-bottom:1em;float:left;width:auto;height:3em;transform:translateY(-.75em)}.productlist.legacy li{float:left;clear:none}.productlist.legacy li+li{margin-top:0;margin-left:2em}.productlist.legacy li img{height:1.5em;transform:none}.relevanssi-live-search-results-showing{left:0 !important;top:100% !important}.relevanssi-live-search-result{border-bottom:1px solid rgba(30,30,30,.1)}.relevanssi-live-search-result ul{padding:0 .9em .9em;margin:0;display:block}.relevanssi-live-search-result ul li{font-size:.7em;display:inline-block}.relevanssi-live-search-result ul li a span{text-decoration:underline}.relevanssi-live-search-result ul li+li{margin-top:0}.relevanssi-live-search-result ul li+li a:before{content:'»';display:inline-block;margin:0 .3em}.relevanssi-live-search-result p{padding-bottom:0 !important;border-bottom:0 !important}.searchresults{list-style:none;padding:0;margin:1em 0 5vw}.searchresults p,.searchresults p:first-child{padding:0;margin:0}.searchresults>li{padding:1em 0;border-bottom:1px solid #e2e2e2}.searchresults>li+li{margin-top:0}.result_breadcrumb{margin:0;padding:0;display:block;list-style:none}.result_breadcrumb li{font-size:.7em;display:inline-block}.result_breadcrumb li a span{text-decoration:underline}.result_breadcrumb li+li{margin-top:0}.result_breadcrumb li+li a:before{content:'»';display:inline-block;margin:0 .3em}body div.code-toolbar>.toolbar{top:-.7em;right:-.7em}html .rlv-has-spinner{border-color:#be0000}html .rlv-has-spinner:after{background:#be0000}@media only screen and (max-width:1000px){.tablewrapper{overflow-x:auto}main{padding-left:0}#docmap{position:static;top:auto;left:auto;width:100%;border-right:0;border-bottom:1px solid #f2f2f2}#docmap>div{position:static;display:none}#chooser{display:block;position:fixed;bottom:0;left:0;width:100%;z-index:10;background:#fff;padding:1em;box-sizing:border-box}#chooser select{width:100%}.home .col.col4,.home .col.col3{width:97.4%;clear:left;float:none}.home main .spirebadge{margin-top:40px}.productlist.legacy li+li{float:none;clear:left;margin-top:1em;margin-left:0}header.active #mobiletrigger{filter:invert(1)}header.active #mobilemenuwrapper{height:calc(100vh - 50px)}header #mobilemenuwrapper{position:fixed;top:50px;left:0;background:#fff;width:100%;height:0;overflow:scroll}header #mobiletrigger{display:block;position:absolute;right:50px;width:50px;height:50px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon-menu.svg) #fff no-repeat center center/70% 70%;border-left:1px solid #f2f2f2;top:0;z-index:100;overflow:hidden;text-indent:-9999px;transition:filter .3s}header #darkmodetoggle{display:none}header #mainmenu{position:static;left:auto;top:auto;height:auto;border-top:1px solid #f2f2f2}header #mainmenu>ul{height:auto;padding-left:0}header #mainmenu>ul>li{display:block;white-space:initial;height:auto}header #mainmenu>ul>li.apis>ul>li{min-width:0;padding:0;border-top:1px solid #f2f2f2}header #mainmenu>ul>li.apis>ul>li ul li{border-top:1px solid #f2f2f2}header #mainmenu>ul>li.apis>ul>li ul li:before{left:-.3em;top:1em}header #mainmenu>ul>li.apis>ul>li:after{top:50%;right:1em;transform:translateY(-50%)}header #mainmenu>ul>li.apis>ul>li a:hover{font-weight:400}header #mainmenu>ul>li.apis>ul a{padding-left:1em;padding-bottom:1em;padding-top:1em;display:block}header #mainmenu>ul>li+li{border-top:1px solid #f2f2f2}header #mainmenu>ul>li>ul{display:block;position:relative;padding:0;box-shadow:none;top:auto;left:auto}header #mainmenu>ul>li:hover>ul{display:block}header #mainmenu>ul>li>a{display:block;height:auto;padding:1em;line-height:1.1em}header #mainmenu+nav{float:none;margin-right:0}header #mainmenu+nav ul{border-bottom:1px solid #f2f2f2}header #mainmenu+nav ul li{border-top:1px solid #f2f2f2;display:block;opacity:1;width:100%;height:auto;line-height:1.1em;padding:0}header #mainmenu+nav ul li>a{padding:1em;display:block;background:#fafafa}header #mainmenu+nav ul li.hasdm{display:none}header #mainmenu+nav ul li+li{margin-left:0;border-top:1px solid #f2f2f2}}@media only screen and (max-width:550px){header #logo{height:20px;margin-top:16px}}.hubspot_form_lazyloader.not_loaded{min-height:50px;background:url(https://insights.spire.com/hubfs/raw_assets/public/maritime_weather_tool_v2/img/loader.svg) no-repeat center center/50px 50px}form{display:block;font-size:14px}form>.field,form>.legal-consent-container{clear:both;margin-bottom:2em}form .inputs-list li{clear:left}form p{font-size:14px}form fieldset.form-columns-1,form fieldset.form-columns-2,form fieldset.form-columns-3{max-width:none}form fieldset.form-columns-1>.field,form fieldset.form-columns-2>.field,form fieldset.form-columns-3>.field,form fieldset.form-columns-1>.hs-dependent-field,form fieldset.form-columns-2>.hs-dependent-field,form fieldset.form-columns-3>.hs-dependent-field{margin-bottom:1em}form fieldset.form-columns-1 .input .hs-fieldtype-intl-phone.hs-input,form fieldset.form-columns-2 .input .hs-fieldtype-intl-phone.hs-input,form fieldset.form-columns-3 .input .hs-fieldtype-intl-phone.hs-input{width:100%}form fieldset.form-columns-3{display:table;margin-bottom:2em}form fieldset.form-columns-3 .field.hs-form-field{display:table-cell;border-right:1px solid #c6c7c8;padding:0 1em;float:none}form fieldset.form-columns-3 .field.hs-form-field:first-child{padding-left:0}form fieldset.form-columns-3 .field.hs-form-field:last-child{border-right:0;padding-right:0}form .multi-container{margin-top:1em}form label{font-weight:700}form label.hs-error-msg{color:#be0000;font-weight:400;margin-top:.5em;display:inline-block}form label .hs-form-required{color:#be0000}form select,form input[type=text],form input[type=email],form input[type=tel],form input[type=search]{box-sizing:border-box;height:40px;border-radius:0 !important;border:1px solid #c6c7c8;display:block;width:100%;margin-top:.5em}form input[type=search]{outline-color:#be0000;outline-offset:0;padding:1em}form select{background:#fafafa}form textarea{width:100%;margin-top:.5em;border:1px solid #c6c7c8;height:90px}form input[type=file]{margin-top:.5em}form fieldset.form-columns-1 .input select.hs-input,form fieldset.form-columns-1 .input input[type=text].hs-input,form fieldset.form-columns-1 .input input[type=email].hs-input,form fieldset.form-columns-1 .input input[type=tel].hs-input,form fieldset.form-columns-1 .input input[type=tel].hs-input,form fieldset.form-columns-1 .input textarea.hs-input{width:100%}form .hs-form-booleancheckbox{margin-bottom:1em}form .hs-form-booleancheckbox label,form .hs-form-radio label,form .hs-form-checkbox label{font-weight:400;cursor:pointer}form .hs-form-booleancheckbox p,form .hs-form-radio p,form .hs-form-checkbox p{display:inline;line-height:1em}form .hs-form-booleancheckbox input[type=radio],form .hs-form-radio input[type=radio],form .hs-form-checkbox input[type=radio],form .hs-form-booleancheckbox input[type=checkbox],form .hs-form-radio input[type=checkbox],form .hs-form-checkbox input[type=checkbox]{margin-right:.5em;position:relative;top:.15em}form .hs-form-booleancheckbox-display,form .hs-form-radio-display,form .hs-form-checkbox-display{display:flex;align-items:flex-start}form .legal-consent-container .hs-form-booleancheckbox-display p{line-height:1em}form .legal-consent-container .hs-form-booleancheckbox-display>span{margin-left:0;display:inline}form ul{list-style:none;margin:0;padding:0}form ul li{margin-left:0;padding-left:0}form input[type=submit],form button{border-radius:0 !important;appearance:none;background:#be0000;color:#fff;font-weight:700;font-size:14px;line-height:1.1em;position:relative;z-index:1;letter-spacing:.05em;padding:13px 20px;min-width:142px;display:inline-block;text-align:center;outline:none;margin-top:1em;border:0;cursor:pointer}form input[type=submit]:before,form button:before,form input[type=submit]:after,form button:after{z-index:-1;background:#be0000;position:absolute;left:0;top:0;width:100%;height:100%;content:''}form input[type=submit]:after,form button:after{background:#04060f;width:0;transition:width .3s ease-in-out}form input[type=submit]:hover:after,form button:hover:after{width:100%}form input[type=submit].inverted,form button.inverted{background:0 0;color:#be0000;border:1px solid #be0000;padding-top:12px;padding-bottom:12px;transition:color .3s}form input[type=submit].inverted:hover,form button.inverted:hover{color:#fff}form input[type=submit].inverted:after,form button.inverted:after{background:#be0000}form input[type=submit].inverted:before,form button.inverted:before{background:0 0}form input[type=submit],form input[type=submit].calltoaction{background:#be0000;background-size:0 100%;background-position:0 0;background-repeat:no-repeat;transition:all .3s;background-image:-webkit-linear-gradient(#56544b,#04060f) !important;background-image:-moz-linear-gradient(#56544b,#04060f) !important;background-image:-ms-linear-gradient(#56544b,#04060f) !important;background-image:-o-linear-gradient(#56544b,#04060f) !important;background-image:linear-gradient(#04060f,#04060f) !important}form input[type=submit]:hover,form input[type=submit].calltoaction:hover{background-size:100% 100%}form input[type=submit]:before,form input[type=submit].calltoaction:before,form input[type=submit]:after,form input[type=submit].calltoaction:after{display:none}form .hs_error_rollup .hs-error-msgs{margin:1em auto;color:#be0000}form .hs_recaptcha{margin:0 auto 1em}@media only screen and (max-width:750px){form fieldset.form-columns-3{display:block}form fieldset.form-columns-3>.field,form fieldset.form-columns-3>.hs-dependent-field{display:block}form fieldset.form-columns-3>.field.field.hs-form-field,form fieldset.form-columns-3>.hs-dependent-field.field.hs-form-field{display:block;padding:0;border:0}form fieldset.form-columns-3>.field.field.hs-form-field:first-child,form fieldset.form-columns-3>.hs-dependent-field.field.hs-form-field:first-child{display:block}form fieldset.form-columns-2 .field input[type=text],form fieldset.form-columns-3 .field input[type=text],form fieldset.form-columns-2 .field input[type=email],form fieldset.form-columns-3 .field input[type=email],form fieldset.form-columns-2 .field input[type=tel],form fieldset.form-columns-3 .field input[type=tel],form fieldset.form-columns-2 .field input[type=tel],form fieldset.form-columns-3 .field input[type=tel]{width:100% !important}}#darkmodetoggle{display:inline-block;border:1px solid #aeb1b4;height:20px;width:40px;border-radius:20px;margin-top:15px;overflow:hidden;position:relative}#darkmodetoggle:before{position:absolute;content:'';background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/sun.svg) #be0000 no-repeat center center/78% 78%;height:16px;width:16px;left:2px;top:2px;border-radius:18px;box-sizing:border-box;box-shadow:0 0 5px -1px #000;transition:left .3s,background-color .3s}html.darkmode{background:#04060f;color:#fff}html.darkmode #darkmodetoggle:before{left:22px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/moon.svg) #fff no-repeat center center/60% 60%}html.darkmode header{background:#04060f}html.darkmode #logo img{filter:invert(1) brightness(255)}html.darkmode #homepage_intro img.aligncenter{filter:invert(1)}html.darkmode #mainmenu+nav ul li img{filter:invert(1)}html.darkmode .boxed,html.darkmode dl,html.darkmode .ctabox,html.darkmode .codebox{background:rgba(255,255,255,.2)}html.darkmode .codebox pre[class*=language-]{background:0 0}html.darkmode .codebox .title{background:#fff;color:#04060f}html.darkmode footer{border-top:1px solid #fff}html.darkmode #docmap{background:rgba(255,255,255,.1);color:#fff}html.darkmode #docmap>div>ul li.active>a{color:#fff}html.darkmode pre,html.darkmode code{color:#04060f}html.darkmode #mainmenu>ul>li>ul{background:#04060f;border:1px solid #fff}html.darkmode #mainmenu li.apis>ul>li+li{border-top-color:#fff}html.darkmode #mainmenu>ul>li.current-menu-item>a:hover,html.darkmode #mainmenu>ul>li.current-menu-ancestor>a:hover,html.darkmode #mainmenu>ul>li.current-menu-parent>a:hover,html.darkmode #mainmenu>ul>li.current_page_parent>a:hover,html.darkmode #mainmenu>ul>li.current_page_ancestor>a:hover{background:#fff;color:#04060f}html.darkmode #mainmenu>ul>li:hover>a{background:#fff;color:#04060f}html.darkmode .calltoaction.inverted{background:#fff}html.darkmode pre[class*=language-]{background:rgba(255,255,255,.1)}html.darkmode pre[class*=language-] code{filter:invert(1)}html.darkmode :not(pre)>code[class*=language-]{background:rgba(0,0,0,.1);filter:invert(1)}html.darkmode form input[type=search]{background:0 0;color:#fff}html.darkmode .relevanssi-live-search-results{background:#04060f;border:1px solid #fff}html.darkmode .relevanssi-live-search-result,html.darkmode .relevanssi-live-search-result p,html.darkmode .relevanssi-live-search-result-status p{border-bottom:1px solid rgba(255,255,255,.3)}html.darkmode .post_meta{color:#fff}html.darkmode #searchpane .boxed{background:#343435}html.darkmode .home main .spirebadge{filter:invert(1) brightness(255)}body #onetrust-consent-sdk #onetrust-policy-title,body #onetrust-consent-sdk #onetrust-policy-text,body #onetrust-consent-sdk #onetrust-policy-text *:not(.onetrust-vendors-list-handler){font-weight:300}body #onetrust-consent-sdk .pc-logo-container,body #onetrust-consent-sdk .pc-footer-logo{display:none}body #onetrust-consent-sdk #onetrust-banner-sdk{background-color:#fff;border-top:1px solid #ccc}body #onetrust-consent-sdk #onetrust-banner-sdk a[href]{color:#be0000}body #onetrust-consent-sdk #onetrust-pc-btn-handler.cookie-setting-link{width:auto !important;color:#be0000}body #onetrust-consent-sdk #cookie-preferences .always-active{color:#be0000}body #onetrust-consent-sdk #onetrust-pc-sdk .privacy-notice-link,body #onetrust-consent-sdk #onetrust-pc-sdk .category-vendors-list-handler,body #onetrust-consent-sdk #onetrust-pc-sdk .category-host-list-handler,body #onetrust-consent-sdk #onetrust-pc-sdk .vendor-privacy-notice,body #onetrust-consent-sdk #onetrust-pc-sdk #hosts-list-container .host-title a,body #onetrust-consent-sdk #onetrust-pc-sdk #hosts-list-container .accordion-header .host-view-cookies,body #onetrust-consent-sdk #onetrust-pc-sdk #hosts-list-container .cookie-name-container a{color:#be0000}body #onetrust-consent-sdk #onetrust-pc-sdk h3,body #onetrust-consent-sdk #onetrust-pc-sdk h4,body #onetrust-consent-sdk #onetrust-pc-sdk h6,body #onetrust-consent-sdk #onetrust-pc-sdk p,body #onetrust-consent-sdk #onetrust-pc-sdk #pc-policy-text,body #onetrust-consent-sdk #onetrust-pc-sdk #pc-title{font-weight:300}body #onetrust-consent-sdk #onetrust-pc-sdk .switch-inner:before{background:#ffd8d8}body #onetrust-consent-sdk #onetrust-pc-sdk .switch-checkbox:checked+.switch-label{border-color:#be0000}body #onetrust-consent-sdk #onetrust-pc-sdk .switch-checkbox:checked+.switch-label .switch-nob{background-color:#be0000;border-color:#be0000}body #onetrust-consent-sdk #onetrust-banner-sdk.ot-buttons-fw:not(.ot-iab-2) #onetrust-button-group{margin-top:0}body #onetrust-consent-sdk #onetrust-accept-btn-handler,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon){width:auto !important;color:#fff;border-radius:0;font-weight:700;text-transform:uppercase;text-decoration:none;font-family:'Exo',sans-serif;z-index:1;border:3px solid #be0000;display:inline-block;padding:.6em 1.4em .5em;position:relative;line-height:1em;-webkit-appearance:none;appearance:none}body #onetrust-consent-sdk #onetrust-accept-btn-handler:after,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):after,body #onetrust-consent-sdk #onetrust-accept-btn-handler:before,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):before{width:100%;left:0;top:0;position:absolute;content:'';height:0;z-index:-1;background:#be0000}body #onetrust-consent-sdk #onetrust-accept-btn-handler:after,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):after{transition:height .1s ease-out}body #onetrust-consent-sdk #onetrust-accept-btn-handler:before,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):before{background:#be0000;height:100%}body #onetrust-consent-sdk #onetrust-accept-btn-handler:hover:after,body #onetrust-consent-sdk #onetrust-pc-sdk button:not(.close-icon):hover:after{height:100%}body #ot-sdk-cookie-policy{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body #ot-sdk-cookie-policy div,body #ot-sdk-cookie-policy p,body #ot-sdk-cookie-policy table{line-height:1.5em;font-weight:300;color:#555}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy h6,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy li,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy p,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy span,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description{color:#555;font-weight:300;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a{color:#be0000}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-description,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group-desc,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-table-header,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy a,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy span{font-size:1em}body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy #cookie-policy-title,body #ot-sdk-cookie-policy-v2.ot-sdk-cookie-policy .ot-sdk-cookie-policy-group{color:#04060f;text-transform:uppercase;font-family:'Exo',sans-serif;font-weight:400}@media only screen and (min-width:650px){body #onetrust-banner-sdk .ot-sdk-row{padding-right:90px}}.banner{background-color:#04060f;text-align:center;color:#fff;padding:60px 0 80px;margin-bottom:0}.banner h2{margin-bottom:.5em}.banner h3{margin-bottom:1em}.banner h4{margin-bottom:1em;width:90%;margin-left:auto;margin-right:auto}.banner .icon{width:auto;height:85px;margin:0 auto;margin-bottom:35px}.banner .icon img{width:100%;height:100%;display:block;max-height:85px}.banner .tag:only-child{margin-bottom:30px}.banner.default{background-image:none !important}.banner:not(.grey) .tag:not(.inverted){border:1px solid #fff;background:0 0}.banner.white{background-color:#fff;background-image:none !important;color:#04060f}.banner.light-grey{background-color:#fafafa;background-image:none !important;color:#04060f}.banner.grey{background-color:#f2f2f2;color:#04060f;text-align:left;margin-top:110px;background-image:none !important}.banner.grey#content-block_601a7c549f437{margin-bottom:0}.banner.bleedbottom{padding-bottom:230px}.banner.bleedtop{padding-top:145px}.banner .calltoaction.inverted{border-color:#fff;color:#fff;transition:color .3s}.banner .calltoaction.inverted:hover{color:#04060f}.banner .calltoaction.inverted:after{background:#fff}.banner p:last-child{margin-bottom:0}.banner p a.calltoaction{text-decoration:none}.banner.orbitalgradient:not(.bleedbottom){padding:95px 0 105px}.banner.orbitalgradient:not(.bleedbottom) .calltoaction:not(.inverted){transition:color .3s;color:#04060f}.banner.orbitalgradient:not(.bleedbottom) .calltoaction:not(.inverted):before{background:#fff}.banner.orbitalgradient:not(.bleedbottom) .calltoaction:not(.inverted):hover{color:#fff}.banner.verbose{text-align:left;padding-bottom:40px}.banner.verbose h5{margin-bottom:2em}.banner.verbose p{font-size:14px}.banner.verbose .wrapper+.wrapper{margin-top:56px}.banner.verbose .wrapper:last-child{padding-bottom:80px}.banner.verbose .wrapper:last-child .col{position:relative}.banner.verbose .wrapper:last-child hr:last-child{position:absolute;left:0;bottom:-80px;width:97.3%;margin:0}.banner.verbose .wrapper.solo,.banner.verbose .wrapper.solo:last-child{padding-bottom:0}.banner.verbose .wrapper.solo+.wrapper,.banner.verbose .wrapper.solo:last-child+.wrapper{margin-top:0}.banner.logos{text-align:left}.banner.logos .col8+.col7 .tag{margin-top:2.5em}.banner.logos ul{list-style:none;text-align:center;margin:1em 0 0;padding:0;height:110px;display:flex;justify-content:space-between;align-items:center;width:100%}.banner.logos ul li{display:inline}.banner.logos ul li img{max-width:120px}.banner.logos ul+ul{margin-top:70px}.banner.cta{background:#485463;background-image:none !important;color:#fff;padding:88px 0 60px}.banner.cta .calltoaction{margin-top:2em}.banner.banner-bg{padding:140px 0;position:relative}.banner.banner-bg:after{content:"";position:absolute;top:0;height:100%;z-index:0;background-color:#04060f;width:100%;opacity:.5;left:0}.banner.banner-bg .wrapper{z-index:1}@media only screen and (max-width:1000px){.banner{padding:40px 0}.banner#content-block_601a7c549f437 .col.col4 h2{font-size:20px}.banner.bleedtop{padding-top:80px}.banner.bleedbottom{padding-bottom:80px}.banner.cta{padding:40px 0}.banner.logos .col.col3{width:100%}.banner.logos .col.col3 ul{justify-content:flex-start;margin-bottom:1em}.banner.logos ul{flex-wrap:wrap;height:auto}.banner.logos ul li{width:25%}.banner.logos ul li img{height:auto}.banner .col.col1{display:none}.banner .col.col1+.col.col5,.banner .col.col1+.col.col5+.col.col5{width:47.4%;float:left;clear:none}.banner.verbose .col.col5{width:47.4%;float:left}.banner.verbose .wrapper:last-child{padding-bottom:40px}.banner#content-block_60198c8b97a67.logos ul li,.banner#content-block_60197c32db02a.logos ul li,.banner#content-block_60199674eb8fe.logos ul li,.banner#content-block_602145fb2d4f0.logos ul li{width:26%}.banner#content-block_601924416cfc4.logos ul li{width:33%;justify-content:space-around}}@media only screen and (max-width:750px){.banner p{width:100% !important}.banner.grey{margin-top:40px;margin-bottom:40px}.banner.orbitalgradient:not(.bleedbottom){padding:40px 0}.banner .icon{margin-bottom:10px}.banner .col5+.col5,.banner .col4+.col4,.banner .col2five+.col2five{margin-top:2em}.banner .col.col1+.col.col5,.banner .col.col1+.col.col5+.col.col5{width:97.4%;float:none}.banner.logos .col+.col,.banner#content-block_60198c8b97a67.logos .col+.col,.banner#content-block_60197c32db02a.logos .col+.col,.banner#content-block_60199674eb8fe.logos .col+.col,.banner#content-block_602145fb2d4f0.logos .col+.col{margin-top:2em}.banner.logos .col12+.col12,.banner#content-block_60198c8b97a67.logos .col12+.col12,.banner#content-block_60197c32db02a.logos .col12+.col12,.banner#content-block_60199674eb8fe.logos .col12+.col12,.banner#content-block_602145fb2d4f0.logos .col12+.col12{margin-top:0}.banner.logos .col12+.col12 ul,.banner#content-block_60198c8b97a67.logos .col12+.col12 ul,.banner#content-block_60197c32db02a.logos .col12+.col12 ul,.banner#content-block_60199674eb8fe.logos .col12+.col12 ul,.banner#content-block_602145fb2d4f0.logos .col12+.col12 ul{margin-top:0}.banner.logos ul li,.banner#content-block_60198c8b97a67.logos ul li,.banner#content-block_60197c32db02a.logos ul li,.banner#content-block_60199674eb8fe.logos ul li,.banner#content-block_602145fb2d4f0.logos ul li{width:50%}.banner.logos ul li img,.banner#content-block_60198c8b97a67.logos ul li img,.banner#content-block_60197c32db02a.logos ul li img,.banner#content-block_60199674eb8fe.logos ul li img,.banner#content-block_602145fb2d4f0.logos ul li img{width:75%}.banner.verbose .col.col5{float:none;width:97.4%}.banner.verbose .wrapper+.wrapper{margin-top:0}.banner.verbose .wrapper+.wrapper .col{margin-top:2.25em}.banner.verbose .wrapper+.wrapper .col.col10{margin-top:0}.banner.verbose .wrapper:last-child{padding-bottom:40px}}.feedback{opacity:0;transition:opacity .3s;margin-top:1.5em;padding:1em;background:#fafafa;font-size:.85em}.feedback form>.field{margin-bottom:1em}.feedback .hs-form-booleancheckbox-display{font-size:.85em}.feedback .hs-form-field{margin-top:1em}.feedback.active{opacity:1}.feedback .hubspot_form_lazyloader{margin-top:1.5em}.feedback .hubspot_form_lazyloader .legal-consent-container{display:none}.feedback a{border-radius:1em;padding:.1em .25em 0 1.75em;font-weight:800;display:inline-block;position:relative}.feedback a:first-child{margin-left:1em}.feedback a:first-child+a{margin-left:.5em}.feedback a:before{background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/thumbsup.svg) no-repeat center center/1em 1em;width:1em;height:1em;position:absolute;content:'';left:.5em;top:.35em}.feedback a.yes:before{top:.2em}.feedback a.yes:hover{background:#00806c;color:#fff}.feedback a.yes:hover:before{filter:brightness(100)}.feedback a.no:before{top:.3em;transform:rotate(180deg);transform-origin:center center}.feedback a.no:hover{background:#be0000;color:#fff}.feedback a.no:hover:before{filter:brightness(100)}section:hover .feedback{opacity:1}.video_chapters{list-style:none;padding:0;margin:0 0 1em;border:1px solid #fafafa;border-top:0}.video_chapters li{padding:.5em}.video_chapters li+li{margin-top:0}.video_chapters li:nth-child(odd){background:#fafafa}.video_chapters li a{display:block;text-decoration:none}.video_chapters li a:hover{text-decoration:underline}.popup,.popupcontent{position:relative;background:#fff;max-width:600px;padding:56px 25px 25px;margin:2em auto}.popup h1:first-child,.popupcontent h1:first-child,.popup h2:first-child,.popupcontent h2:first-child,.popup h3:first-child,.popupcontent h3:first-child,.popup h4:first-child,.popupcontent h4:first-child,.popup h5:first-child,.popupcontent h5:first-child,.popup h6:first-child,.popupcontent h6:first-child{margin-top:0}.popup>*:last-child,.popupcontent>*:last-child{margin-bottom:0}.popup>p,.popupcontent>p{font-size:14px;line-height:1.5em}.popup *+form,.popupcontent *+form{border-top:1px solid #c6c7c8;padding-top:1.75em}body .mfp-bg{background:#04060f;opacity:.65}.leadinModal.leadinModal-v3 .leadin-button{position:relative}.mfp-wrap.hastcs .mfp-content{max-width:800px;max-height:80vh;overflow:hidden}.mfp-wrap.hastcs .mfp-content .popup{height:80vh;overflow:scroll;max-width:800px;padding-bottom:90px;padding-top:50px;box-sizing:border-box}.mfp-wrap.hastcs .mfp-content .popup h1,.mfp-wrap.hastcs .mfp-content .popup h2,.mfp-wrap.hastcs .mfp-content .popup h3,.mfp-wrap.hastcs .mfp-content .popup h4,.mfp-wrap.hastcs .mfp-content .popup h5,.mfp-wrap.hastcs .mfp-content .popup h6{font-size:1rem}.mfp-wrap.hastcs .mfp-content .title{text-align:center;background:#04060f;color:#fff;position:absolute;left:0;top:0;width:100%;padding:1em;box-sizing:border-box;box-shadow:0 0 5px 0px rgba(0,0,0,.4);z-index:2}.mfp-wrap.hastcs .mfp-content .title:after{content:''}.mfp-wrap.hastcs .mfp-content .acceptance{height:70px;position:absolute;left:0;bottom:0;width:100%;background:#fff;z-index:2;padding:1em;box-sizing:border-box;box-shadow:0 0 5px 0px rgba(0,0,0,.4);text-align:center}.mfp-wrap.hastcs .mfp-content .acceptance .calltoaction.inactive{opacity:.5;cursor:default}.mfp-wrap.hastcs .mfp-content .acceptance .calltoaction.inactive:hover:after{height:0}#fundamentalcontent{background:#f2f2f2;font-weight:500;padding:1em;font-size:.85em}#fundamentalcontent h1,#fundamentalcontent h2,#fundamentalcontent h3,#fundamentalcontent h4,#fundamentalcontent h5,#fundamentalcontent h6{font-family:'exo',sans-serif;text-transform:none}#fundamentalcontent ul{list-style:disc;padding-left:1.1em}.mfp-content .popup{background:#fff;padding:2em;border-bottom:0;max-width:600px;margin:0 auto}.mfp-content .popup>.question{text-align:center}.mfp-content .popup>.answer{display:none}.mfp-content .popup#todownload{text-align:center}.mfp-content .popup#cartaddconfirmation,.mfp-content .popup#cartupdateconfirmation{text-align:center}.mfp-content .popup#cartaddconfirmation h2,.mfp-content .popup#cartupdateconfirmation h2{margin-bottom:.25em;font-size:1.5em}.mfp-content .popup#cartaddconfirmation img,.mfp-content .popup#cartupdateconfirmation img{margin:0 auto 2em auto;width:100px;height:100px;border-radius:100%;display:block;border:3px solid #be0000}.mfp-content .popup#cartaddconfirmation p,.mfp-content .popup#cartupdateconfirmation p{font-weight:700;font-size:1.25em;color:#04060f}.mfp-content .popup h1,.mfp-content .popup h2,.mfp-content .popup h3,.mfp-content .popup h4,.mfp-content .popup h5,.mfp-content .popup h6{color:#04060f;font-size:2rem}.mfp-content .popup label,.mfp-content .popup legend{text-align:left}.mfp-content .popup label.hs-error-msg,.mfp-content .popup legend.hs-error-msg{color:#fff}.mfp-content .popup p{font-size:.85em}.mfp-content .popup .poploader{background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/loader.svg) no-repeat center center;background-size:200px 200px;height:0;overflow:hidden;width:100%;padding-bottom:30%;position:relative}.mfp-content .popup .poploader span{position:absolute;left:0;top:50%;color:#fff;text-transform:uppercase;font-size:12px;font-weight:700;text-align:center;width:100%;margin-top:-.5em;background:#04060f}.mfp-content .popup #countdown{width:6em;height:6em;margin:0 auto;position:relative;font-family:'Apercu';font-weight:700}.mfp-content .popup #countdown span,.mfp-content .popup #countdown svg{position:absolute;top:0;width:100%;height:100%;left:0;z-index:1}.mfp-content .popup #countdown span{font-size:4.4rem;line-height:6.2rem;text-align:center;z-index:2}.mfp-close{right:.7em;top:.7em}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#0b0b0b;opacity:.8}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visibility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.single-stories .mfp-content{position:absolute;left:0;top:8%}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !important}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:0 0;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;box-shadow:none;touch-action:manipulation}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:.65;padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Arial,Baskerville,monospace}.mfp-close:hover,.mfp-close:focus{opacity:1}.mfp-close-btn-in .mfp-close{color:#333}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;right:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px;white-space:nowrap}.mfp-arrow{position:absolute;opacity:.65;margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1}.mfp-arrow:before,.mfp-arrow:after{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before{border-top-width:21px;border-bottom-width:21px;opacity:.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before{margin-left:25px;border-right:27px solid #3f3f3f}.mfp-arrow-right{right:0}.mfp-arrow-right:after{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before{border-left:27px solid #3f3f3f}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,.6);background:#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width:800px) and (orientation:landscape),screen and (max-height:300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-bar:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,.6);position:fixed;text-align:center;padding:0}}@media all and (max-width:900px){.mfp-arrow{-webkit-transform:scale(.75);transform:scale(.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}header{position:fixed;left:0;right:0;top:0;height:50px;background:#fff;z-index:11;border-bottom:1px solid #ccc;box-shadow:0 0 5px -3px #000}#homepage_intro{padding-top:3vw}#homepage_intro img{max-width:100%;height:auto;margin-bottom:.5em}#homepage_intro img.aligncenter{margin:0 auto .5em;display:block}#logo{float:left;display:block;height:25px;margin-top:12px;margin-left:15px;z-index:13;position:relative}#logo img{height:100%;width:auto;display:block}#searchtrigger{position:absolute;color:#fff;right:0;width:50px;height:50px;background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon-search.svg) #be0000 no-repeat center center/50% 50%;top:0;z-index:100;overflow:hidden;text-indent:-9999px;transition:background .3s}#searchtrigger:hover{background-color:#04060f}#mainmenu{position:fixed;left:0;top:0;height:50px;width:100%;z-index:12}#mainmenu+nav{float:right;margin-right:50px;position:relative;z-index:13;font-weight:400}#mainmenu+nav ul li{white-space:nowrap;display:inline-block;height:50px;line-height:50px;padding-left:10px;padding-right:10px;overflow:hidden;font-weight:700;opacity:.5;position:relative;transition:background-color .3s,opacity .3s}#mainmenu+nav ul li.hasdm{opacity:1;padding-left:0}#mainmenu+nav ul li.sales{opacity:1}#mainmenu+nav ul li.sales a{background:#be0000;color:#fff;padding:.25em 1em .25em .5em;border-radius:30px;box-shadow:0 0 5px -3px rgba(0,0,0,.35)}#mainmenu+nav ul li.sales a img{filter:invert(1);transform:scale(.8)}#mainmenu+nav ul li.sales a:hover{background:#04060f}#mainmenu+nav ul li:hover{opacity:1}#mainmenu+nav ul li+li{margin-left:.5em}#mainmenu+nav ul li img{width:1.5em;height:auto;position:relative;top:-.075em;margin-right:.5em}#mainmenu li.apis>ul a{display:block;padding-right:80px}#mainmenu li.apis>ul>li{position:relative;min-width:420px;padding-top:.5em;padding-bottom:.5em}#mainmenu li.apis>ul>li+li{border-top:1px solid #f2f2f2}#mainmenu li.apis>ul>li ul{padding-top:.5em;padding-left:1em}#mainmenu li.apis>ul>li ul li{position:relative}#mainmenu li.apis>ul>li ul li a:hover{font-weight:700}#mainmenu li.apis>ul>li ul li:before{content:'';position:absolute;left:-1em;top:0;width:.8em;height:.7em;box-sizing:border-box;border-left:1px dashed #c6c7c8;border-bottom:1px dashed #c6c7c8}#mainmenu li.apis>ul>li>a{position:relative;z-index:1}#mainmenu li.apis>ul>li>a:hover{font-weight:700}#mainmenu li.apis>ul>li:after{content:'';position:absolute;right:0;top:1.2em;padding:.5em;border-radius:5px;color:#fff;text-transform:uppercase;font-weight:800;font-size:.5em}#mainmenu li.apis>ul>li.graphql:after{content:'GraphQL API';background:#2280c5}#mainmenu li.apis>ul>li.rest:after{content:'REST APIs';background:#00806c}#mainmenu li.apis>ul>li.webservice:after{content:'Web Service';background:#be0000}#mainmenu li.apis>ul>li.tcp:after{content:'NMEA feed';background:#0f447a}#mainmenu>ul{height:50px;position:relative;text-align:left;padding-left:300px}#mainmenu>ul>li{display:inline-block;position:relative;white-space:nowrap;height:50px}#mainmenu>ul>li>ul{padding:10px 20px;background:#fff;box-shadow:0 0 5px -3px #000;position:absolute;top:100%;left:0;display:none}#mainmenu>ul>li:hover>ul{display:block}#mainmenu>ul>li.current-menu-item>a,#mainmenu>ul>li.current-menu-ancestor>a,#mainmenu>ul>li.current-menu-parent>a,#mainmenu>ul>li.current_page_parent>a,#mainmenu>ul>li.current_page_ancestor>a{background:#be0000;color:#fff}#mainmenu>ul>li.current-menu-item>a:hover>a,#mainmenu>ul>li.current-menu-ancestor>a:hover>a,#mainmenu>ul>li.current-menu-parent>a:hover>a,#mainmenu>ul>li.current_page_parent>a:hover>a,#mainmenu>ul>li.current_page_ancestor>a:hover>a{color:#fff}#mainmenu>ul>li.current-menu-item.page-item-2>a{background:#fff;color:#04060f}#mainmenu>ul>li>a{display:inline-block;height:50px;line-height:50px;padding-left:20px;padding-right:20px;overflow:hidden;font-weight:700;position:relative;transition:background-color .3s}#mainmenu>ul>li>a:after{position:absolute;left:0;top:0;width:30px;height:100%;content:'';background-size:60% 60%;background-position:center center;background-repeat:no-repeat}#mainmenu>ul>li#main_search,#mainmenu>ul>li#main_logout{text-indent:-999px;float:right;width:50px}#mainmenu>ul>li#main_search a,#mainmenu>ul>li#main_logout a{display:block;padding:0;width:50px}#mainmenu>ul>li#main_search+li,#mainmenu>ul>li#main_logout+li{margin-left:0}#mainmenu>ul>li#main_search a:after,#mainmenu>ul>li#main_logout a:after{width:50px;background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_search.svg);background-size:35% 35%;background-position:center center;opacity:.5}#mainmenu>ul>li#main_logout a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_logout.svg)}#mainmenu>ul>li#domain_switcher{float:right;height:30px;background:#fff;position:relative;margin-top:11px;margin-right:20px;border:1px solid #ddd;border-radius:5px}#mainmenu>ul>li#domain_switcher>span,#mainmenu>ul>li#domain_switcher>a{display:inline-block;height:auto;box-sizing:border-box;padding:.5em .25em;line-height:16px}#mainmenu>ul>li#domain_switcher>span{float:left;background:#fafafa;border-right:1px solid #ddd;width:30px;border-radius:5px 0 0 5px;line-height:14px;font-weight:800;color:#ccc}#mainmenu>ul>li#domain_switcher>a{float:right;width:125px;text-align:left;padding-left:10px;border-radius:0 5px 5px 0;display:block;position:relative}#mainmenu>ul>li#domain_switcher>a:after{height:28px;width:15px;background:#fafafa;border-left:1px solid #ddd;right:0;top:0;content:'';position:absolute;left:auto;border-radius:0 5px 5px 0}#mainmenu>ul>li#domain_switcher>a>i{position:relative;top:-.15em}#mainmenu>ul>li#domain_switcher>a:hover{color:#04060f}#mainmenu>ul>li#domain_switcher:hover>a{color:#04060f}#mainmenu>ul>li#domain_switcher:hover ul{display:block}#mainmenu>ul>li#domain_switcher ul{display:none;position:absolute;left:29px;top:calc(100% - 2px);padding-left:10px;width:111px;text-align:left;background:#fff;border-right:1px solid #ddd;border-bottom:1px solid #ddd;border-left:1px solid #ddd;padding-top:.35em;padding-bottom:.35em}#mainmenu>ul>li#domain_switcher ul li{padding:.25em 0}#mainmenu>ul>li#domain_switcher ul li a{color:#fff}#mainmenu>ul>li#domain_switcher ul li a.tag{display:block;box-sizing:border-box;width:90px}#mainmenu>ul>li#domain_switcher ul li+li{margin-top:.25em}#mainmenu>ul>li.main_dashboard a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_dashboard.svg);background-size:50% 50%}#mainmenu>ul>li.main_customers a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_company.svg)}#mainmenu>ul>li.main_add_customer a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_company_add.svg)}#mainmenu>ul>li.main_users a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_user.svg);background-position:center 45%;background-size:50% 50%}#mainmenu>ul>li.main_add_user a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_account.svg)}#mainmenu>ul>li.main_tools a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_tools.svg);background-position:center 45%;background-size:50% 50%}#mainmenu>ul>li.main_create_token a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_new_token.svg);background-size:50% 50%}#mainmenu>ul>li.main_tokens a:after{background-image:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_token.svg)}#extendedtoggle{position:absolute;left:50%;margin-left:-25px;width:50px;height:50px;bottom:0}#extendedtoggle:after{top:0;left:0;width:100%;height:100%;position:absolute;content:'';background:url(//documentation.spire.com/wp-content/themes/docs/css/../img/icon_arrow_left.svg) no-repeat center top;background-size:20px 20px;opacity:.3}#extendedtoggle span{color:rgba(255,255,255,.3);font-size:14px;position:absolute;left:0;text-align:center;width:100%;top:23px;font-weight:700;text-transform:uppercase}footer{background:#04060f;color:#fff;padding-top:80px;padding-bottom:155px;font-weight:700;position:relative;z-index:1}footer.simple{padding:0}footer.simple #postfooterlegal .col.col12{border-top:0;padding-bottom:30px;margin-top:0}footer img{width:70%;height:auto}footer #postfooterlegal .col.col12{border-top:1px solid #fff;padding-top:30px;margin-top:20px}footer #postfooterlegal .col.col12 a{transition:color .3s}footer #postfooterlegal .col.col12 a:hover{color:rgba(255,255,255,.7)}footer #postfooterlegal .col.col12>a{margin-right:1.5em}footer #postfooterlegal .col.col12 #legalmenu{padding-top:1em}footer #postfooterlegal .col.col12 #legalmenu li{display:inline-block;padding:0 1em;margin-bottom:.5em}footer #postfooterlegal .col.col12 #legalmenu li+li{border-left:1px solid #fff}footer #postfooterlegal .col.col12 #legalmenu li:first-child{padding-left:0}footer #postfooterlegal .col.col12 #socialicons{float:right;font-size:1.3em}footer #postfooterlegal .col.col12 #socialicons li{float:left;margin-left:1.2em}@media only screen and (max-width:1000px){footer{padding-top:50px;padding-bottom:120px}footer img{width:113px;height:33px;margin-bottom:35px}footer #postfooterlegal .col.col12>a{margin-bottom:1em}footer #postfooterlegal .col.col12 #legalmenu li:first-child{padding-left:0}footer #footermenu{grid-template-columns:31.5% 31.5% 31.5%}footer #footermenu>li{height:6em}footer #footermenu>li:nth-child(1){grid-area:1/1/8/1}footer #footermenu>li:nth-child(2){grid-area:4/1/4/1;height:22em}footer #footermenu>li:nth-child(3){grid-area:1/2/1/2}footer #footermenu>li:nth-child(4){grid-area:2/2/2/2}footer #footermenu>li:nth-child(5){grid-area:3/2/3/2}footer #footermenu>li:nth-child(6){grid-area:1/3/1/3}footer #footermenu>li:nth-child(7){grid-area:2/3/2/3;margin-top:-2em}footer #footermenu>li:nth-child(8){grid-area:3/3/3/3;margin-top:-4em}footer #footermenu>li:nth-child(6),footer #footermenu>li:nth-child(7),footer #footermenu>li:nth-child(8){height:4em;padding-top:0}}@media only screen and (max-width:750px){footer{padding-bottom:80px}footer.simple{padding-bottom:80px}footer #footermenu{grid-template-columns:48.75% 48.75%}footer #footermenu>li{height:auto}footer #footermenu>li:nth-child(1){grid-area:1/1/8/1}footer #footermenu>li:nth-child(2){grid-area:7/1/7/1;margin-top:-21em;height:auto}footer #footermenu>li:nth-child(3){grid-area:1/2/1/2}footer #footermenu>li:nth-child(4){grid-area:2/2/2/2}footer #footermenu>li:nth-child(5){grid-area:3/2/3/2}footer #footermenu>li:nth-child(6){grid-area:4/2/4/2}footer #footermenu>li:nth-child(7){grid-area:5/2/5/2;margin-top:0}footer #footermenu>li:nth-child(8){grid-area:6/2/6/2;margin-top:0}footer #footermenu>li:nth-child(9){grid-area:7/2/7/2}footer #footermenu>li:nth-child(7),footer #footermenu>li:nth-child(8),footer #footermenu>li:nth-child(9){height:auto;padding-top:0}footer #postfooterlegal .col.col12 #legalmenu li{padding:0;display:block}footer #postfooterlegal .col.col12 #legalmenu li+li{margin-top:.5em;border-left:0}footer.simple #postfooterlegal .col.col12{margin-top:0}}img.alignright{float:right;margin:0 0 1em 1em}img.alignleft{float:left;margin:0 1em 1em 0}img.aligncenter{display:block;margin-left:auto;margin-right:auto}.alignright{float:right}.alignleft{float:left}.aligncenter{display:block;margin-left:auto;margin-right:auto}.hidden,[hidden]{display:none !important}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.sr-only.focusable:active,.sr-only.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;white-space:inherit;width:auto}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}@media print{*,*:before,*:after{background:#fff !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre{white-space:pre-wrap !important}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#454f59}.token.punctuation{color:#4f4f4f}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#344d00}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#00567a}.token.class-name,.token.function{color:#971c34}.token.important,.token.regex,.token.variable{color:#704900}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}pre[class*=language-].line-numbers{position:relative;padding-left:3.8em;counter-reset:linenumber}pre[class*=language-].line-numbers>code{position:relative;white-space:inherit}.line-numbers .line-numbers-rows{position:absolute;pointer-events:none;top:0;font-size:100%;left:-3.8em;width:3em;letter-spacing:-1px;border-right:1px solid #999;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.line-numbers-rows>span{display:block;counter-increment:linenumber}.line-numbers-rows>span:before{content:counter(linenumber);color:#999;display:block;padding-right:.8em;text-align:right}div.code-toolbar{position:relative}div.code-toolbar>.toolbar{position:absolute;z-index:10;top:.3em;right:.2em;transition:opacity .3s ease-in-out;opacity:0}div.code-toolbar:hover>.toolbar{opacity:1}div.code-toolbar:focus-within>.toolbar{opacity:1}div.code-toolbar>.toolbar>.toolbar-item{display:inline-block}div.code-toolbar>.toolbar>.toolbar-item>a{cursor:pointer}div.code-toolbar>.toolbar>.toolbar-item>button{background:0 0;border:0;color:inherit;font:inherit;line-height:normal;overflow:visible;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}div.code-toolbar>.toolbar>.toolbar-item>a,div.code-toolbar>.toolbar>.toolbar-item>button,div.code-toolbar>.toolbar>.toolbar-item>span{color:#bbb;font-size:.8em;padding:0 .5em;background:#f5f2f0;background:rgba(224,224,224,.2);box-shadow:0 2px 0 0 rgba(0,0,0,.2);border-radius:.5em}div.code-toolbar>.toolbar>.toolbar-item>a:focus,div.code-toolbar>.toolbar>.toolbar-item>a:hover,div.code-toolbar>.toolbar>.toolbar-item>button:focus,div.code-toolbar>.toolbar>.toolbar-item>button:hover,div.code-toolbar>.toolbar>.toolbar-item>span:focus,div.code-toolbar>.toolbar>.toolbar-item>span:hover{color:inherit;text-decoration:none}.relevanssi-live-search-results{box-sizing:border-box;-moz-box-sizing:border-box;background:#fff;-webkit-box-shadow:0 0 2px 0 rgba(30,30,30,.4);box-shadow:0 0 2px 0 rgba(30,30,30,.4);border-radius:3px;width:315px;min-height:175px;max-height:300px}.relevanssi-live-search-result p,.relevanssi-live-search-result-status p{font-size:.9em;padding:1em;margin:0;border-bottom:1px solid rgba(30,30,30,.1)}.relevanssi-live-search-result-status p{font-size:.8em;padding:0 1em}.relevanssi-live-search-result--focused{background:#ddd}.relevanssi-live-search-result--focused a{color:#000}.relevanssi-live-search-result:last-of-type p{border-bottom:0}.relevanssi-live-search-result a{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.relevanssi-live-search-instructions{border:0 !important;clip:rect(1px,1px,1px,1px) !important;-webkit-clip-path:inset(50%) !important;clip-path:inset(50%) !important;height:1px !important;overflow:hidden !important;padding:0 !important;position:absolute !important;width:1px !important;white-space:nowrap !important}.rlv-has-spinner{width:56px;height:56px;border:8px solid #0052ec;border-right-color:transparent;border-radius:50%;position:relative;animation:loader-rotate 1s linear infinite;margin:1em auto}.rlv-has-spinner:after{content:"";width:8px;height:8px;background:#0052ec;border-radius:50%;position:absolute;top:-1px;left:33px}@keyframes loader-rotate{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.relevanssi-live-search-results{opacity:0;transition:opacity .25s ease-in-out;-moz-transition:opacity .25s ease-in-out;-webkit-transition:opacity .25s ease-in-out;height:0;overflow:hidden;z-index:9999995;position:absolute;display:none}.relevanssi-live-search-results-showing{display:block;opacity:1;height:auto;overflow:auto}.relevanssi-live-search-no-results,.relevanssi-live-search-didyoumean{padding:0 1em}</style><script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"TechArticle","@id":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/#article","isPartOf":{"@id":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/"},"author":{"name":"Simão Oliveira","@id":"https://documentation.spire.com/#/schema/person/4df42cb1e6de22f486e7c397cbbb7878"},"headline":"Historical Vessel Points / Tracks (HVP/HVT)","datePublished":"2022-09-06T14:59:34+00:00","dateModified":"2022-10-26T12:07:19+00:00","mainEntityOfPage":{"@id":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/"},"wordCount":126,"publisher":{"@id":"https://documentation.spire.com/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/","url":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/","name":"Historical Vessel Points / Tracks (HVP/HVT) | Spire Maritime Documentation","isPartOf":{"@id":"https://documentation.spire.com/#website"},"datePublished":"2022-09-06T14:59:34+00:00","dateModified":"2022-10-26T12:07:19+00:00","breadcrumb":{"@id":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/"]}]},{"@type":"BreadcrumbList","@id":"https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://documentation.spire.com/"},{"@type":"ListItem","position":2,"name":"Historical Vessel Points / Tracks (HVP/HVT)"}]},{"@type":"WebSite","@id":"https://documentation.spire.com/#website","url":"https://documentation.spire.com/","name":"Spire Maritime Documentation","description":"Get started with Spire Maritime APIs and Web Services","publisher":{"@id":"https://documentation.spire.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://documentation.spire.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://documentation.spire.com/#organization","name":"Spire Maritime","url":"https://documentation.spire.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://documentation.spire.com/#/schema/logo/image/","url":"https://documentation.spire.com/wp-content/uploads/2022/10/maritime_icon.png","contentUrl":"https://documentation.spire.com/wp-content/uploads/2022/10/maritime_icon.png","width":512,"height":512,"caption":"Spire Maritime"},"image":{"@id":"https://documentation.spire.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/satelliteaisdata/","https://twitter.com/aisdata","https://www.linkedin.com/showcase/spire-maritime/"]},{"@type":"Person","@id":"https://documentation.spire.com/#/schema/person/4df42cb1e6de22f486e7c397cbbb7878","name":"Simão Oliveira","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://documentation.spire.com/#/schema/person/image/","url":"https://documentation.spire.com/wp-content/uploads/2022/10/T01T6C4676G-U01TB0PM6S2-ba6089b50aab-512-150x150.jpg","contentUrl":"https://documentation.spire.com/wp-content/uploads/2022/10/T01T6C4676G-U01TB0PM6S2-ba6089b50aab-512-150x150.jpg","caption":"Simão Oliveira"}}]}</script> <link rel='dns-prefetch' href='//spire.com' /><link rel='dns-prefetch' href='//cdn.jsdelivr.net' /><link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /><link rel='dns-prefetch' href='//fonts.googleapis.com' /><link rel='preload' as='style' crossorigin='anonymous' id='exo-font-preload-css' href='https://fonts.googleapis.com/css2?family=Exo%3Awght%40300%3B400%3B500%3B700%3B800&display=swap' type='text/css' media='' /><link rel='preload' as='font' type='font/woff2' crossorigin='anonymous' id='apercu-font-preload-css' href='https://documentation.spire.com/wp-content/themes/docs/font/apercu-mono-regular.woff2' type='text/css' media='' /><link rel='stylesheet' id='exo-font-css' href='https://fonts.googleapis.com/css2?family=Exo%3Awght%40300%3B400%3B500%3B700%3B800&display=swap' type='text/css' media='' /><link rel='stylesheet' id='magnific-css' href='https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/magnific-popup.css?ver=6.7.1' type='text/css' media='' /> <script defer type="text/javascript" src="https://documentation.spire.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_5226652de4f7a179e760bf7e9a3d0232.js?ver=1679901433" id="darkmode_apply-js"></script> <link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://documentation.spire.com/xmlrpc.php?rsd" /><link rel='shortlink' href='https://documentation.spire.com/?p=118' /><link rel="icon" href="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-32x32.png" sizes="32x32" /><link rel="icon" href="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-192x192.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-180x180.png" /><meta name="msapplication-TileImage" content="https://documentation.spire.com/wp-content/uploads/2022/10/cropped-maritime_icon-270x270.png" /> <script defer src="data:text/javascript;base64,dmFyIGJ1c2luZXNzMT0nbWFyaXRpbWUnOw=="></script> <script defer type="text/javascript" src="https://cookie-cdn.cookiepro.com/consent/de7f49f2-6902-4173-9229-932c6d04aac7/OtAutoBlock.js" ></script> <script defer src="https://cookie-cdn.cookiepro.com/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="de7f49f2-6902-4173-9229-932c6d04aac7" ></script> <script defer src="data:text/javascript;base64,CiAgICBmdW5jdGlvbiBPcHRhbm9uV3JhcHBlcigpIHsgfQogICAg"></script> <script defer src="data:text/javascript;base64,KGZ1bmN0aW9uKHcsZCxzLGwsaSl7d1tsXT13W2xdfHxbXTt3W2xdLnB1c2goeydndG0uc3RhcnQnOgogICAgbmV3IERhdGUoKS5nZXRUaW1lKCksZXZlbnQ6J2d0bS5qcyd9KTt2YXIgZj1kLmdldEVsZW1lbnRzQnlUYWdOYW1lKHMpWzBdLAogICAgaj1kLmNyZWF0ZUVsZW1lbnQocyksZGw9bCE9J2RhdGFMYXllcic/JyZsPScrbDonJztqLmFzeW5jPXRydWU7ai5zcmM9CiAgICAnaHR0cHM6Ly93d3cuZ29vZ2xldGFnbWFuYWdlci5jb20vZ3RtLmpzP2lkPScraStkbDtmLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGosZik7CiAgICB9KSh3aW5kb3csZG9jdW1lbnQsJ3NjcmlwdCcsJ2RhdGFMYXllcicsJ0dUTS1OMzI2M1ZDJyk7"></script> </head><body class="page-template-default page page-id-118 page-parent"> <script defer src="data:text/javascript;base64,dmFyIGFqYXh1cmw9J2h0dHBzOi8vZG9jdW1lbnRhdGlvbi5zcGlyZS5jb20vd3AtYWRtaW4vYWRtaW4tYWpheC5waHAnOw=="></script> <script defer src="data:text/javascript;base64,dmFyIHNpdGVUaXRsZT0nU3BpcmUgTWFyaXRpbWUgRG9jdW1lbnRhdGlvbic7"></script> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-N3263VC" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <script id="hs-script-loader" type="text/plain" class="optanon-category-C0004" async defer src="//js.hs-scripts.com/6779491.js"></script> <header> <a href="https://documentation.spire.com" id="logo"><img width="249" height="25" src="https://documentation.spire.com/wp-content/themes/docs/img/spire_maritime_documentation_logo.svg" alt="Logo of the Spire Maritime Documentation platform"/></a><div id="mobilemenuwrapper"><nav id="mainmenu"><ul><li id="menu-item-84" class="apis menu-item menu-item-type-post_type menu-item-object-page menu-item-home current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-84"><a href="https://documentation.spire.com/"><span>APIs & Solutions</span></a><ul class="sub-menu"><li id="menu-item-23" class="graphql menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-23"><a href="https://documentation.spire.com/maritime-2-0/"><span>Maritime 2.0</span></a><ul class="sub-menu"><li id="menu-item-282" class="graphql menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-282"><a href="https://documentation.spire.com/maritime-2-0/vessels/"><span>Vessels 2.0</span></a><ul class="sub-menu"><li id="menu-item-1448" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1448"><a href="https://documentation.spire.com/maritime-2-0/vessels/output-objects/validated-static-data/"><span>Validated Static Data</span></a></li><li id="menu-item-1311" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1311"><a href="https://documentation.spire.com/maritime-2-0/vessels/output-objects/vessel-characteristics/"><span>Vessel characteristics</span></a></li><li id="menu-item-1172" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1172"><a href="https://documentation.spire.com/maritime-2-0/vessels/output-objects/vessel-to-port-eta/"><span>Vessel to Port ETA</span></a></li></ul></li><li id="menu-item-1101" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1101"><a href="https://documentation.spire.com/maritime-2-0/port-events/"><span>Port Events</span></a></li><li id="menu-item-1424" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1424"><a href="https://documentation.spire.com/maritime-2-0/port-congestion/"><span>Port Congestion</span></a></li><li id="menu-item-1480" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1480"><a href="https://documentation.spire.com/routing-api/"><span>Routing</span></a></li></ul></li><li id="menu-item-115" class="webservice menu-item menu-item-type-post_type menu-item-object-page menu-item-115"><a href="https://documentation.spire.com/latest-vessel-information-lvi/"><span>Latest Vessel Information (LVI)</span></a></li><li id="menu-item-142" class="webservice menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-118 current_page_item menu-item-142"><a href="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/" aria-current="page"><span>Historical Vessel Points / Tracks (HVP/HVT)</span></a></li><li id="menu-item-1321" class="webservice menu-item menu-item-type-post_type menu-item-object-page menu-item-1321"><a href="https://documentation.spire.com/ais-position-validation/"><span>AIS Position Validation</span></a></li><li id="menu-item-188" class="tcp menu-item menu-item-type-post_type menu-item-object-page menu-item-188"><a href="https://documentation.spire.com/tcp-stream-v2/"><span>TCP Stream v2</span></a></li><li id="menu-item-355" class="tcp menu-item menu-item-type-post_type menu-item-object-page menu-item-355"><a href="https://documentation.spire.com/uniproxy/"><span>UniProxy</span></a></li><li id="menu-item-663" class="rest menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-663"><a href="#"><span>Legacy</span></a><ul class="sub-menu"><li id="menu-item-26" class="rest menu-item menu-item-type-post_type menu-item-object-page menu-item-26"><a href="https://documentation.spire.com/vessels-api/"><span>Vessels API</span></a></li><li id="menu-item-208" class="rest menu-item menu-item-type-post_type menu-item-object-page menu-item-208"><a href="https://documentation.spire.com/messages-api/"><span>Messages API</span></a></li><li id="menu-item-189" class="rest menu-item menu-item-type-post_type menu-item-object-page menu-item-189"><a href="https://documentation.spire.com/historical-positions-api/"><span>Historical Positions API</span></a></li></ul></li></ul></li><li id="menu-item-187" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-187"><a href="https://documentation.spire.com/ais-fundamentals/"><span>AIS Fundamentals</span></a></li><li id="menu-item-366" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-366"><a href="https://documentation.spire.com/blog/"><span>Blog</span></a></li><li id="menu-item-1496" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1496"><a href="https://spire.com/"><span>Visit Spire Global</span></a></li></ul></nav><nav><ul><li class="sales"><a href="https://spire.com/maritime/configure-your-ais-solution" target="_blank" title="Contact Spire sales for API access - opens in a new tab"><img height="23" width="23" src="https://documentation.spire.com/wp-content/themes/docs/img/icon-support.svg?v1" alt="Sales icon"/>Contact sales</a></li><li><a href="https://status.spire.com" target="_blank"><img height="23" width="23" src="https://documentation.spire.com/wp-content/themes/docs/img/icon-status.svg" alt="Status icon"/>Platform status</a></li><li><a href="https://documentation.spire.com/make-a-support-request/" target="_blank"><img height="23" width="23" src="https://documentation.spire.com/wp-content/themes/docs/img/icon-question.svg" alt="Support icon"/>Get support</a></li><li class="hasdm"> <a href="javascript:void(0)" id="darkmodetoggle" title="Toggle between light/dark mode"></a></li></ul></nav></div> <a href="javascript:void(0);" id="searchtrigger">Search</a> <a href="javascript:void(0);" id="mobiletrigger">Open menu</a></header><main><nav id="docmap"><div><ul><li><a href="#historical-vessel-points-and-tracks-hvp-hvt">Historical Vessel Points / Tracks (HVP/HVT)</a></li><li class="has-sub-menu"> <a href="#the-hvp-and-hvt-data-sets">The HVP and HVT data sets</a><ul class="sub-menu"><li class=""><a href="#hvp-data-set-content">HVP data set content</a></li><li class=""><a href="#hvp-data-schema">HVP data schema</a></li><li class=""><a href="#hvt-data-set-content">HVT data set content</a></li><li class=""><a href="#hvt-data-schema">HVT data schema</a></li></ul></li><li class=""> <a href="#data-definition-guide">Data definition guide</a></li><li class=""> <a href="#ogc-support">OGC Support</a></li><li class="has-sub-menu"> <a href="#accessing-the-web-services">Accessing the web services</a><ul class="sub-menu"><li class=""><a href="#authentication">Authentication</a></li><li class=""><a href="#sorting-and-filtering">Sorting & filtering</a></li><li class="has-sub-menu"><a href="#spatiotemporal-filtering">Spatiotemporal filtering</a><ul class="sub-menu"><li class=""><a href="#ogc-filtering">OGC filtering</a></li><li class=""><a href="#cql-filtering">CQL filtering</a></li></ul></li></ul></li><li class="has-sub-menu"> <a href="#customization">WMS customization</a><ul class="sub-menu"><li class=""><a href="#layer-style">Layer style</a></li><li class=""><a href="#legend">Legend</a></li><li class=""><a href="#custom-symbolization">Custom symbolization</a></li><li class=""><a href="#custom-vessel-color">Custom vessel color</a></li><li class=""><a href="#custom-vessel-point-size">Custom vessel point size</a></li></ul></li><li class="has-sub-menu"> <a href="#examples">Examples</a><ul class="sub-menu"><li class=""><a href="#hvt-example">HVT example</a></li><li class=""><a href="#hvp-example">HVP example</a></li></ul></li></ul></div> <label id="chooser"> <select name="sectionchooser" id="sectionchooser"></select> </label></nav><div id="content"><section data-id="118" id="historical-vessel-points-and-tracks-hvp-hvt" class="level1 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/"><div class="wrapper clearfix"><div class="col col7"><h1>Historical Vessel Points / Tracks (HVP/HVT)</h1><p class="lead">The Historical Vessel web services (GWS) are part of Spire Maritime’s Geospatial Web Services™ (GWS).</p><p class="lead">These web services provide historical track and position information for vessels using Spire AIS data, and delivers the data in two formats that are Open Geospatial Consortium (OGC) compliant:</p><ul class="advantages"><li>The WFS services allow users to get features (data) in a variety of standard formats including CSV, GML, GeoJSON, and Shapefile.</li><li>The WMS services allow users to get requested images of Spire AIS data in a variety of formats including PNG, JPEG, KML, etc.</li></ul><p>An Identifier (eEID) is generated for each unique vessel based on reported characteristics to help improve the detection of erroneous messages and track a vessel’s entire Voyage of Life (VoL).</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="118" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="118" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba5890"></div></div></div></section><section data-id="121" id="the-hvp-and-hvt-data-sets" class="level2 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/the-hvp-and-hvt-data-sets/"><div class="wrapper clearfix"><div class="col col7"><h2>The HVP and HVT data sets</h2><p>Data sets returned by GWS in response to requests made by end users contain fields in a specific sequential order.</p><p>The order in which those fields are returned is documented in the <a class="scrolltoelement" href="#hvp-data-schema">data schema</a> tables listed in this section.</p><p>Data ingest methods that depend on field order, specifically commas separated values (.csv) format, need to take this into account.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="121" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="121" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba5b02"></div></div></div></section><section data-id="124" id="hvp-data-set-content" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/the-hvp-and-hvt-data-sets/hvp-data-set-content/"><div class="wrapper clearfix"><div class="col col7"><h3>HVP data set content</h3><dl class="spectable"><dt>Abstract</dt><dd>Historical Vessel Positions by MMSI or unique identifier (eEID). HVP is defined by a set of all position reports (Points) by vessel/ship in the time period specified from the exactAIS Archive starting July 2011. A point inherits the latest vessel position, static, and voyage information at that time.</dd><dt>Data Sources</dt><dd>Real-time Satellite AIS (S-AIS) or Real-time Satellite and Terrestrial AIS (S/T-AIS) going back to July 2011</dd><dd>Real-time Satellite, Terrestrial and Dynamic AIS (S/T/V-AIS) going back to April 2021</dd><dd>Standard Lemur Satellite and Terrestrial AIS (S/T-AIS) going back to September 2022</dd><dd>Standard Lemur Satellite, Terrestrial and Dynamic AIS (S/T/V-AIS) going back to September 2022</dd><dt>Geographic Area of Interest</dt><dd>Global</dd><dt>Vessel Types</dt><dd>Class A and B</dd><dt>Geographic Data</dt><dd>Point (WGS84)</dd><dt>Vessel Identification Data Fields</dt><dd><code>mmsi, imo, vessel_name, callsign, vessel_type, vessel_type_code, vessel_type_cargo, flag_country, flag_code, vessel_class, vessel_type_main, vessel_type_sub, eeid</code></dd><dt>Vessel Positional Data Fields</dt><dd><code>ts_pos_utc, dt_pos_utc, position (Point – WGS84), longitude, latitude, sog, cog, rot, heading, nav_status, nav_status_code, source, message_type, dtg</code></dd><dt>Vessel Static/Voyage Information Data Fields</dt><dd><code>ts_static_utc, dt_static_utc, length, width, destination, eta, draught</code></dd><dt>Geometry</dt><dd>Point (WGS84)</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="124" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="124" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba5d9c"></div></div></div></section><section data-id="125" id="hvp-data-schema" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/the-hvp-and-hvt-data-sets/hvp-data-schema/"><div class="wrapper clearfix"><div class="col col7"><h3>HVP data schema</h3><pre><code data-prismjs-copy="Copy to clipboard">[0] id #Json fid #CSV, GML 2 gml:id #GML 3 & 3.2 Xml Attribute [1] mmsi [2] imo [3] vessel_name [4] callsign [5] vessel_type [6] vessel_type_code [7] vessel_type_cargo [8] vessel_class [9] length [10] width [11] flag_country [12] flag_code [13] destination [14] eta [15] draught [16] position [17] longitude [18] latitude [19] sog [20] cog [21] rot [22] heading [23] nav_status [24] nav_status_code [25] source [26] ts_pos_utc [27] ts_static_utc [28] dt_pos_utc [29] dt_static_utc [30] vessel_type_main [31] vessel_type_sub [32] message_type [33] eeid [34] dtg</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="125" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="125" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba5ff4"></div></div></div></section><section data-id="122" id="hvt-data-set-content" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/the-hvp-and-hvt-data-sets/hvt-data-set-content/"><div class="wrapper clearfix"><div class="col col7"><h3>HVT data set content</h3><dl class="spectable"><dt>Abstract</dt><dd>Historical Vessel Tracks by MMSI or unique identifier (eEID). HVT is defined by a set of segments (LineStrings/MultiLineStrings) by vessel/ship in the time period specified within the exactAIS Archive starting July 2011. HVT implements land avoidance and de-densification or decimation to simplify the vessel tracks. Further, HVT handles any anti-meridian crossings by constructing a MultiLineString at the intersection of the anti-meridian. A segment is defined by two consecutive vessel positions where the segment inherits the latest vessel position, static, and voyage information from the most recent of the two consecutive vessel positions.</dd><dt>Data Sources</dt><dd>Real-time Satellite AIS (S-AIS) or Real-time Satellite and Terrestrial AIS (S/T-AIS) going back to July 2011</dd><dd>Real-time Satellite, Terrestrial and Dynamic AIS (S/T/V-AIS) going back to April 2021</dd><dd>Standard Lemur Satellite and Terrestrial AIS (S/T-AIS) going back to September 2022</dd><dd>Standard Lemur Satellite, Terrestrial and Dynamic AIS (S/T/V-AIS) going back to September 2022</dd><dt>Geographic Area of Interest</dt><dd>Global</dd><dt>Vessel Types</dt><dd>Class A and B</dd><dt>Geographic Data</dt><dd>LineString/MultiLineString (WGS84)</dd><dt>Vessel Identification Data Fields</dt><dd><code>mmsi, imo, vessel_name, callsign, vessel_type, vessel_type_code, vessel_type_cargo, flag_country, flag_code, vessel_class, vessel_type_main, vessel_type_sub, eeid</code></dd><dt>Vessel Positional Data Fields</dt><dd><code>ts_pos_utc, dt_pos_utc, segment (LineString/MultiLineString – WGS84), from_longitude, from_latitude, longitude, latitude, sog, cog, rot, heading, nav_status, nav_status_code, source, message_type, dtg</code></dd><dt>Vessel Static/Voyage Information Data Fields</dt><dd><code>ts_static_utc, dt_static_utc, length, width, destination, eta, draught</code></dd><dt>Geometry</dt><dd>LineString/MultiLineString (WGS84)</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="122" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="122" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba62e2"></div></div></div></section><section data-id="123" id="hvt-data-schema" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/the-hvp-and-hvt-data-sets/hvt-data-schema/"><div class="wrapper clearfix"><div class="col col7"><h3>HVT data schema</h3><pre><code data-prismjs-copy="Copy to clipboard">[0] id #Json fid #CSV, GML 2 gml:id #GML 3 & 3.2 Xml Attribute [1] mmsi [2] imo [3] vessel_name [4] callsign [5] vessel_type [6] vessel_type_code [7] vessel_type_cargo [8] vessel_class [9] length [10] width [11] flag_country [12] flag_code [13] destination [14] eta [15] draught [16] segment [17] from_longitude [18] from_latitude [19] longitude [20] latitude [21] sog [22] cog [23] rot [24] heading [25] nav_status [26] nav_status_code [27] source [28] ts_pos_utc [29] ts_static_utc [30] dt_pos_utc [31] dt_static_utc [32] vessel_type_main [33] vessel_type_sub [34] message_type [35] eeid [36] dtg</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="123" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="123" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba6507"></div></div></div></section><section data-id="140" id="data-definition-guide" class="level2 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/data-definition-guide/"><div class="wrapper clearfix"><div class="col col7"><h2>Data definition guide</h2><dl class="spectable"><dt><code>MMSI</code> <em>Number</em></dt><dd>Maritime Mobile Service Identity (MMSI)</dd><dt><code>IMO</code> <em>Number</em></dt><dd>International Maritime Organization (IMO)</dd><dt><code>VESSEL_NAME</code> <em>Text</em></dt><dd>Vessel Name</dd><dt><code>CALLSIGN</code> <em>Text</em></dt><dd>Vessel Call Sign</dd><dt><code>VESSEL_TYPE</code> <em>Text</em></dt><dd>Vessel Type</dd><dt><code>VESSEL_TYPE_CODE</code> <em>Number</em></dt><dd>Vessel Type Code</dd><dt><code>VESSEL_TYPE_CARGO</code> <em>Text</em></dt><dd>Vessel Type Cargo</dd><dt><code>VESSEL_TYPE_MAIN</code> <em>Text</em></dt><dd>Vessel Type Main</dd><dt><code>VESSEL_TYPE_SUB</code> <em>Text</em></dt><dd>Vessel Type Sub-Category</dd><dt><code>FLAG_COUNTRY</code> <em>Text</em></dt><dd>Country of Registration</dd><dt><code>FLAG_CODE</code> <em>Number</em></dt><dd>Country of Registration Code</dd><dt><code>VESSEL_CLASS</code> <em>Text</em></dt><dd>Class of Vessel (A/B)</dd><dt><code>EEID</code> <em>Number</em></dt><dd>exactEarth Identifier (eEID)</dd></dl><dl class="spectable"><dt><code>TS_POS_UTC</code> <em>Timestamp</em></dt><dd>Date and Time of Last Position AIS Message in UTC [<code>YYYYMMDDHHmmSS</code>]</dd><dt><code>DT_POS_UTC</code> <em>Timestamp</em></dt><dd>Date and Time of Last Position AIS Message in UTC [<code>YYYY-MM-DD HH24:MI:SS</code>]</dd><dt><code>POSITION</code> <em>Geometry</em></dt><dd>WGS84 Point, Geographic Location</dd><dt><code>SEGMENT</code> <em>Geometry</em></dt><dd>WGS84 LineString/MultiLineString, Geographic Segment</dd><dt><code>LONGITUDE</code> <em>Number, Decimal Degrees</em></dt><dd>WGS 84 Longitude Coordinate</dd><dt><code>LATITUDE</code> <em>Number, Decimal Degrees</em></dt><dd>WGS 84 Latitude Coordinate</dd><dt><code>SOG</code> <em>Number, Knots</em></dt><dd>Speed over Ground</dd><dt><code>COG</code></dt><dd>Course over Ground</dd><dt><code>ROT</code> <em>Number, Degrees / Min</em></dt><dd>Rate of Turn</dd><dt><code>HEADING</code> <em>Number, Degrees</em></dt><dd>Heading</dd><dt><code>NAV_STATUS</code> <em>Text</em></dt><dd>Navigational Status</dd><dt><code>NAV_STATUS_CODE</code> <em>Number</em></dt><dd>Navigational Status Code</dd><dt><code>SOURCE</code> <em>Text</em></dt><dd>Source of Position Report (Satellite AIS [S-AIS], Terrestrial AIS [T-AIS], or Vessel AIS [V-AIS])</dd><dt><code>FROM_LONGITUDE</code> <em>Number, Decimal Degrees</em></dt><dd>WGS 84 Longitude Coordinate</dd><dt><code>FROM_LATITUDE</code> <em>Number, Decimal Degrees</em></dt><dd>WGS 84 Latitude Coordinate</dd><dt><code>DTG</code> <em>Timestamp</em></dt><dd>ISO 8601 Date and Time of Last Position AIS Message in UTC [<code>YYYY-MM-DDTHH:mm:ssZ</code>]</dd></dl><dl class="spectable"><dt><code>TS_STATIC_UTC</code> <em>Timestamp</em></dt><dd>Date and Time of Last Static AIS Message in UTC [<code>YYYYMMDDHHmmSS</code>]</dd><dt><code>DT_STATIC_UTC</code> <em>Timestamp</em></dt><dd>Date and Time of Last Static AIS Message in UTC [<code>YYYY-MM-DD HH24:MI:SS</code>]</dd><dt><code>LENGTH</code> <em>Number, Metres</em></dt><dd>Length of Bow to Main Tower and Main Tower to Stern</dd><dt><code>WIDTH</code> <em>Number, Metres</em></dt><dd>Length of Port to Main Tower and Main Tower to Starboard</dd><dt><code>DESTINATION</code> <em>Text</em></dt><dd>Port of Destination</dd><dt><code>ETA</code> <em>Timestamp</em></dt><dd>Month, Day, Hour, and Minute of Estimated Time of Arrival in UTC [<code>MMDDHHmm</code>]</dd><dt><code>DRAUGHT</code> <em>Number, Metres</em></dt><dd>Vessel Draught</dd><dt><code>TS_INSERT_UTC</code> <em>Timestamp</em></dt><dd>Date and Time of Last Insert in UTC [<code>YYYYMMDDHHmmSS</code>]</dd><dt><code>DT_INSERT_UTC</code> <em>Timestamp</em></dt><dd>Date and Time of Last Insert in UTC [<code>YYYY-MM-DD HH24:MI:SS</code>]</dd><dt><code>MESSAGE_TYPE</code> <em>Number</em></dt><dd>AIS Position Message type (<code>1,2,3,4,18,19,27</code>)</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="140" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="140" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba6b2c"></div></div></div></section><section data-id="126" id="ogc-support" class="level2 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/ogc-support/"><div class="wrapper clearfix"><div class="col col7"><h2>OGC Support</h2><p>HVP/HVT support all OGC WMS operations from implementation WMS 1.3.0 and all OGC WFS operations from implementations WFS 1.1.0, excluding Transaction.</p><div class="tablewrapper"><table class="spectable" style="border-collapse: collapse; width: 100%;"><thead><tr><th style="width: 14.2857%;">Service Type</th><th style="width: 14.2857%;">Service Modes</th><th style="width: 14.2857%;">Versions</th><th style="width: 14.2857%;">Common Parameters</th><th style="width: 14.2857%;">Output Formats</th><th style="width: 14.2857%;">Output File Sizes</th><th style="width: 14.2857%;">Response Times</th></tr></thead><tbody><tr><td style="width: 14.2857%;">WMS</td><td style="width: 14.2857%;"><code>GetMap</code>, <code>GetCapabilities</code>, <code>GetFeatureInfo</code>, and <code>GetLegendGraphic</code></td><td style="width: 14.2857%;">1.3.0</td><td style="width: 14.2857%;"><code>SERVICE</code>, <code>VERSION</code>, <code>REQUEST</code>, <code>LAYERS</code>, <code>STYLES</code>, <code>BBOX</code>, <code>WIDTH</code>, <code>HEIGHT</code>, <code>SRS</code>, <code>FORMAT</code>, and <code>FILTER</code></td><td style="width: 14.2857%;">PNG, JPEG, GIF, and KML/KMZ</td><td style="width: 14.2857%;">Dynamic <1MB</td><td style="width: 14.2857%;">< 3s</td></tr><tr><td style="width: 14.2857%;">WFS</td><td style="width: 14.2857%;"><code>GetCapabilities</code>, <code>GetFeature</code>, and <code>DescribeFeatureType</code></td><td style="width: 14.2857%;">1.1.0</td><td style="width: 14.2857%;"><code>SERVICE</code>, <code>VERSION</code>, <code>REQUEST</code>, <code>TYPENAME</code>, <code>MAXFEATURES</code>, <code>OUTPUTFORMAT</code>, and <code>FILTER</code></td><td style="width: 14.2857%;">CSV, GML (2, 3.1, 3.2), GeoJSON, and Shapefile</td><td style="width: 14.2857%;">Approx. 1 KB / Record</td><td style="width: 14.2857%;">< 1.5s / 50 Records</td></tr></tbody></table></div></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="126" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="126" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba6eaa"></div></div></div></section><section data-id="120" id="accessing-the-web-services" class="level2 titleonly" data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/accessing-the-web-services/"><div class="wrapper clearfix"><div class="col col7"><h2>Accessing the web services</h2></div></div></section><section data-id="127" id="authentication" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/accessing-the-web-services/authentication/"><div class="wrapper clearfix"><div class="col col7"><h3>Authentication</h3><p>HVP/HVT use HTTPS and user authentication via user token or user name and password to access information and are available at <code>https://services.exactearth.com/gws</code>.</p><div class="tablewrapper"><table class="spectable" style="border-collapse: collapse; width: 100%; height: 72px;"><thead><tr style="height: 24px;"><th style="width: 50%; height: 24px;">Service type</th><th style="width: 50%; height: 24px;">URL</th></tr></thead><tbody><tr style="height: 24px;"><td style="width: 50%; height: 24px;">WMS</td><td style="width: 50%; height: 24px;"><code>https://services.exactearth.com/gws/wms?service=wms&version=1.3.0&request=GetCapabilities</code></td></tr><tr style="height: 24px;"><td style="width: 50%; height: 24px;">WFS</td><td style="width: 50%; height: 24px;"><code>https://services.exactearth.com/gws/wfs?service=wfs&version=1.1.0&request=GetCapabilities</code></td></tr></tbody></table></div><p>HVP/HVT allow users to authenticate access to the services using either a token or basic authentication. Spire provides both a unique token and user name and password for each user.</p><p>The <code>[authKey]</code> query string parameter of a WMS/WFS request provides the interface to enter a token to access the services using the following notation, “<code>authKey=[TOKEN]</code>”.</p><p>For basic authentication, users are required to enter user name and password credentials to access the services, for example, a web browser, OGC-compliant client, or application-level requestor.<span class="Apple-converted-space"> </span></p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="127" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="127" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba7382"></div></div></div></section><section data-id="139" id="sorting-and-filtering" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/accessing-the-web-services/sorting-and-filtering/"><div class="wrapper clearfix"><div class="col col7"><h3>Sorting & filtering</h3><p>HVP/HVT support optional parameters and capabilities to enhance the usability of the service.</p><dl class="spectable"><dt>Maximum Features (<code>maxFeatures</code>)</dt><dd>Provides an ability to limit the number of features by request to the WFS services.</dd><dd></dd><dd><code>https://services.exactearth.com/gws/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=exactAIS:LVI&outputFormat=json&maxFeatures=10</code></dd><dt>Sorting (<code>sortBy</code>)</dt><dd>Provides an ability to sort the values in a column in ascending or descending order by request to the WFS services. Sorting by ascending order is the default setting, using “<code>+D</code>” will change the response to sorting by descending order.</dd><dd></dd><dd><code>https://services.exactearth.com/gws/wfs?service=wfs&version=1.1.0&request=GetFeature&typeNames=exactAIS:LVI&maxFeatures=1&outputFormat=json&sortBy=ts_pos_utc+D</code></dd><dt>Feature Counts (<code>resultType</code>)</dt><dd>Provides an ability to retrieve the number of features by request to the WFS services.</dd><dd></dd><dd><code>https://services.exactearth.com/gws/wfs?service=wfs&version=1.1.0&request=GetFeature&typeName=exactAIS:LVI&resulttype=hits</code></dd><dt>Fields / Columns (<code>propertyName</code>)</dt><dd>Provides an ability to specify the output fields / columns per request. The [<code>propertyName</code>] query string parameter of a WFS request provides the interface to limit the fields / columns returned in the GetFeature request, for example, “<code>propertyName=eeid,mmsi,vessel_name,ts_pos_utc</code>”.</dd><dd></dd><dd><code>https://services.exactearth.com/gws/wfs?typenames=exactAIS:LVI&service=wfs&version=1.1.0&request=getfeature&propertyName=eeid,mmsi,vessel_name,ts_pos_utc&outputFormat=json&maxFeatures=1</code></dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="139" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="139" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba7682"></div></div></div></section><section data-id="132" id="spatiotemporal-filtering" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/accessing-the-web-services/spatiotemporal-filtering/"><div class="wrapper clearfix"><div class="col col7"><h3>Spatiotemporal filtering</h3><p>GWS 3.0 introduced the concept of spatiotemporal filtering based on a specific time range and area of interest. Per request, the maximum area cannot exceed 50,000 KM2 and temporal duration cannot be longer than any 24-hour period.</p><h4>HVT spatiotemporal filtering example</h4><p>A sample WFS request, <code>GetFeature</code>, for historical vessel tracks for a specific time range (<code>2020-03-01T22:00:00Z</code> and <code>2020-03-02T01:00:00Z</code>) and area of interest (San Francisco Bay Area) in JSON format.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&maxFeatures=5&outputFormat=json&cql_filter=start=20200301220000 AND end=20200302010000 AND BBOX(segment,-122.6,37.7,-122.4,37.9)</code></pre><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&maxFeatures=5&outputFormat=json&cql_filter=start=20200301220000 AND end=20200302010000 AND INTERSECTS(segment, POLYGON((-122.6 37.7, -122.6 37.9, -122.4 37.9, -122.4 37.7, -122.6 37.7)))</code></pre><h4>HVP spatiotemporal filtering example</h4><p>A sample WFS request, <code>GetFeature</code>, for historical vessel positions for a specific time range (<code>2020-03-01T22:00:00Z</code> and <code>2020-03-02T01:00:00Z</code>) and area of interest (San Francisco Bay Area) in JSON format.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVP&maxFeatures=5&outputFormat=json&cql_filter=start=20200301220000 AND end=20200302010000 AND BBOX(position,-122.6,37.7,-122.4,37.9)</code></pre><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVP&maxFeatures=5&outputFormat=json&cql_filter=start=20200301220000 AND end=20200302010000 AND INTERSECTS(position, POLYGON((-122.6 37.7, -122.6 37.9, -122.4 37.9, -122.4 37.7, -122.6 37.7)))</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="132" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="132" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba7916"></div></div></div></section><section data-id="130" id="ogc-filtering" class="level4 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/accessing-the-web-services/spatiotemporal-filtering/ogc-filtering/"><div class="wrapper clearfix"><div class="col col7"><h4>OGC filtering</h4><p>GWS supports OGC Filtering to allow for dynamic/ad-hoc customization of data responses based on geography, time, and AIS message attributes.</p><p>The below table provides a set of examples using OGC XML-based Filtering.</p><div class="tablewrapper"><table class="spectable" style="border-collapse: collapse; width: 100%;"><thead><tr><th style="width: 50%;">Filter Example</th><th style="width: 50%;">Filter example syntax</th></tr></thead><tbody><tr><td style="width: 50%;">Equal To (MMSI: AIS Message Attribute)</td><td class="td1" style="width: 50%;" valign="top"><code>&filter=<Filter><PropertyIsEqualTo><PropertyName>mmsi</PropertyName><Literal>372934000</Literal></PropertyIsEqualTo></Filter></code></td></tr><tr><td style="width: 50%;">Between (SOG: AIS Message Attribute)</td><td class="td1" style="width: 50%;" valign="top"><code>&filter=<Filter><PropertyIsBetween><PropertyName>sog</PropertyName><LowerBoundary><Literal>10</Literal></LowerBoundary><UpperBoundary><Literal>20</Literal></UpperBoundary></PropertyIsBetween></Filter></code></td></tr><tr><td style="width: 50%;">Geography</td><td class="td1" style="width: 50%;" valign="top"><code>&filter=<Filter xmlns:gml="http://www.opengis.net/gml"><Intersects><PropertyName>position</PropertyName><gml:Polygon srsName="EPSG:4326"><gml:exterior><gml:LinearRing><gml:posList>-120 -8 -120 30 55 30 55 -8 -120 -8</gml:posList></gml:LinearRing></gml:exterior></gml:Polygon></Intersects></Filter></code></td></tr><tr><td style="width: 50%;">Latest Insert Update (Fetch Delta Updates)</td><td class="td1" style="width: 50%;" valign="top"><code>&filter=<Filter><PropertyIsGreaterThanOrEqualTo><PropertyName>ts_insert_utc</PropertyName><Literal>20130724134900</Literal></PropertyIsGreaterThanOrEqualTo></Filter></code></td></tr></tbody></table></div></div><div class="col col1"> </div><div class="col col4"><h4>HVT WFS Filtering example</h4><p>A GML 3.2 output for historical vessel tracks for a specific vessel (<code>eEID</code>: <code>4875242366182262128</code>) and time span (anytime in the last 90 days; start and end timestamps defined as <code>YYYYMMDDHHmmss</code>).</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typenames=exactAIS:HVT&maxFeatures=10&outputformat=gml32&filter=<Filter><And><PropertyIsEqualTo><PropertyName>eeid</PropertyName><Literal>4875242366182262128</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>start</PropertyName><Literal>20150903113000</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>end</PropertyName><Literal>20151020183530</Literal></PropertyIsEqualTo></And></Filter></code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="130" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="130" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba7c80"></div></div></div></section><section data-id="131" id="cql-filtering" class="level4 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/accessing-the-web-services/spatiotemporal-filtering/cql-filtering/"><div class="wrapper clearfix"><div class="col col7"><h4>CQL filtering</h4><p class="p1">Extended Common Query Language (ECQL) is a query language supported by GWS and offers familiar text-based syntax with strong similarities to SQL for filtering.</p><p class="p1">For more information, please refer to <a href="https://docs.geoserver.org/stable/en/user/filter/ecql_reference.html#filter-ecql-reference" target="_blank" rel="noopener"><span class="s1">https://docs.geoserver.org/stable/en/user/filter/ecql_reference.html#filter-ecql-reference</span></a>.</p><p class="p1">The below table provides a set of examples using ECQL:</p><div class="tablewrapper"><table class="spectable" style="border-collapse: collapse; width: 100%;"><thead><tr><th style="width: 50%;">Filter Example</th><th style="width: 50%;">Filter example syntax</th></tr></thead><tbody><tr><td style="width: 50%;">Equal To (MMSI: AIS Message Attribute)</td><td class="td1" style="width: 50%;" valign="top"><code>&cql_filter=mmsi=372934000</code></td></tr><tr><td style="width: 50%;">Between (SOG: AIS Message Attribute)</td><td class="td1" style="width: 50%;" valign="top"><code>&cql_filter=sog BETWEEN 10 AND 2</code></td></tr><tr><td style="width: 50%;">Geography</td><td class="td1" style="width: 50%;" valign="top"><code>&cql_filter=INTERSECTS(position, POLYGON((-120 -8, -120 30, 55 30, 55 -8, -120 -8)))</code></td></tr><tr><td style="width: 50%;">Latest Insert Update (Fetch Delta Updates)</td><td class="td1" style="width: 50%;" valign="top"><code>&cql_filter=ts_insert_utc>=20130724134900</code></td></tr></tbody></table></div></div><div class="col col1"> </div><div class="col col4"><h4>HVT CQL filter example</h4><p>A sample WFS request, <code>GetFeature</code>, for historical vessel tracks for a specific vessel (<code>MMSI</code>: <code>372934000</code> / <code>eEID</code>: <code>4875242366182262128</code>) in the last 15 days is included below.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&cql_filter=mmsi=372934000 AND duration=2</code></pre><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&cql_filter=eeid='4875242366182262128' AND duration=2</code></pre><h4>HVP CQL filter example</h4><p>A sample WFS request, <code>GetFeature</code>, for historical vessel positions for a specific vessel (<code>MMSI</code>: <code>372934000</code> / <code>eEID</code>: <code>4875242366182262128</code>) in the last 15 days is included below.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&cql_filter=mmsi=372934000 AND duration=2</code></pre><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&cql_filter=eeid='4875242366182262128' AND duration=2</code></pre><p> </p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="131" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="131" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba8068"></div></div></div></section><section data-id="133" id="customization" class="level2 titleonly" data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/customization/"><div class="wrapper clearfix"><div class="col col7"><h2>WMS customization</h2></div></div></section><section data-id="134" id="layer-style" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/customization/layer-style/"><div class="wrapper clearfix"><div class="col col7"><h3>Layer style</h3><p>GWS allows users to request styles (symbolization) to be applied to Web Map Service (WMS) <code>GetMap</code> (image) responses.</p><p>Spire Maritime provides a variety of styles that can be used to customize the look and feel of rendered maps.</p><p>The <code>[styles]</code> query string parameter of a WMS request provides the interface to enter a style to define the symbology to apply to the map output, “<code>styles=[STYLE]</code>”.</p><h4>Historical Vessel Points</h4><dl class="spectable"><dt><code>Vessel</code> (Default)</dt><dd>Vessel symbol, single color, rotation by [<code>cog</code>]</dd><dt><code>VesselByType</code></dt><dd>Vessel symbol, color by [<code>vessel_type</code>], rotation by [<code>cog</code>]</dd><dt><code>VesselBySpeed</code></dt><dd>Vessel symbol, single color, rotation by [<code>cog</code>], leader line symbol by [<code>sog</code>]</dd><dt><code>VesselBySpeedGrouped</code></dt><dd>Vessel symbol, color by [<code>sog</code>], rotation by [<code>cog</code>]</dd><dt><code>VesselByTypeSpeed</code></dt><dd>Vessel symbol, color by [<code>vessel_type_code</code>], rotation by [<code>cog</code>], leader line symbol by [<code>sog</code>]</dd><dt><code>VesselSpeedVector</code></dt><dd>Leader line symbol by [<code>sog</code>], rotation by [<code>cog</code>]</dd><dt><code>VesselBySource</code></dt><dd>Vessel symbol, color by [<code>source</code>], rotation by [<code>cog</code>]</dd><dt><code>VesselByClass</code></dt><dd>Vessel symbol, color by [<code>class</code>], rotation by [<code>cog</code>]</dd><dt><code>VesselLabel</code></dt><dd>Vessel symbol, single color, rotation by [<code>cog</code>], label by [<code>vessel_name</code>]</dd><dt><code>VesselLabelOverlay</code></dt><dd>Label by [<code>vessel_name</code>]</dd><dt><code>VesselLabelDateTime</code></dt><dd>Circle point symbol, single color, label by [<code>ts_pos_utc</code>]</dd><dt><code>VesselLabelDateTimeOverlay</code></dt><dd>Label by [<code>ts_pos_utc</code>]</dd></dl><h4>Historical Vessel Tracks</h4><dl><dt><code>Track</code> (default)</dt><dd>Location symbol, single color, label by [<code>ts_pos_utc</code>]</dd><dt><code>TrackBySpeed</code></dt><dd>Location symbol, color by [<code>sog</code>], label by [<code>ts_pos_utc</code>]</dd></dl></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="134" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="134" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba8626"></div></div></div></section><section data-id="135" id="legend" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/customization/legend/"><div class="wrapper clearfix"><div class="col col7"><h3>Legend</h3><p>GWS allows users to generate legends based on supported styles (symbolization).</p><p>The [<code>request</code>] query string parameter, GetLegendGraphic, of a WMS request provides the interface to generate legends.</p><p>The [<code>scale</code>], [<code>style</code>], and [<code>layer</code>] query string parameters control the appearance of the legend.</p></div><div class="col col1"> </div><div class="col col4"><p>The below WMS 1.3.0 request provides a PNG image (legend) for the latest vessel information data set using the [<code>style</code>] and [<code>scale</code>] parameters to generate a legend based on the <code>VesselByTypeSpeed</code> style at a map scale of 1:80,000.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wms?request=GetLegendGraphic&service=WMS&format=image/png&version=1.3.0&style=VesselByTypeSpeed&layer=exactAIS:LVI&scale=80000&legend_options=fontStyle:bold;forceLabels:on;fontName:Helvetica;fontAntiAliasing:true;fontColor:0x000000;fontSize:9;bgColor:0xFFFFFF;dpi:120;</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="135" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="135" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba8936"></div></div></div></section><section data-id="136" id="custom-symbolization" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/customization/custom-symbolization/"><div class="wrapper clearfix"><div class="col col7"><h3>Custom symbolization</h3><p>GWS supports custom symbology to allow for dynamic/ad-hoc rendering of vessels.</p><p>The [<code>env</code>] query string parameter of a WMS request provides the interface to change the vessel symbols using the following notation, “<code>env=[PARAM]:[VALUE]</code>”.</p><p>[<code>env</code>] query string parameters are delimited by “<code>;</code>”, for example, “<code>env=[PARAM1]:[VALUE1];[PARAM2]:[VALUE2]</code>”.</p></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="136" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="136" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba8b7a"></div></div></div></section><section data-id="137" id="custom-vessel-color" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/customization/custom-vessel-color/"><div class="wrapper clearfix"><div class="col col7"><h3>Custom vessel color</h3><p>To adjust the rendering of vessels by color, add the [<code>color</code>] parameters to the [<code>env</code>] query string parameter of a WMS request using the following notation, “<code>env=color:hexadecimal</code>”.</p><p>The hexadecimal is an RGB color code, defined as <code>RRGGBB</code>.</p></div><div class="col col1"> </div><div class="col col4"><p>The below WMS 1.3.0 request provides a PNG image for all global vessels from the latest vessel information data set using the [<code>env</code>] parameter specifying all vessel be rendered as magenta (<code>FF3366</code>).</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wms?service=WMS&version=1.3.0&request=GetMap&layers=exactAIS:LVI&styles=&bbox=-180.0,-90.0,180.0,90.0&width=640&height=480&crs=crs:84&format=image/png&env=color:FF3366</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="137" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="137" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba8e14"></div></div></div></section><section data-id="138" id="custom-vessel-point-size" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/customization/custom-vessel-point-size/"><div class="wrapper clearfix"><div class="col col7"><h3>Custom vessel point size</h3><p>To adjust the rendering of vessels location symbol size for HVT/HVP, add the [<code>psize</code>] parameters to the [<code>env</code>] query string parameter of a WMS request using the following notation, “<code>env=psize:Value</code>”.</p><p>[<code>env</code>] query string parameters are delimited by “<code>;</code>”.The value is a numeric integer.</p></div><div class="col col1"> </div><div class="col col4"><p>The below WMS 1.3.0 request provides a PNG image for a vessels’ 30 day historical track using the [<code>env</code>] parameter specifying all line segments be rendered as green (<code>78AB46</code>) with location symbol sizes of 7 pixels.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wms?service=WMS&version=1.1.0&request=GetMap&layers=exactAIS:HVT&styles=&bbox=-180.0,-90.0,180.0,90.0&width=660&height=330&srs=EPSG:4326&format=image/png&env=color:78AB46;psize:7&filter=eeid4875242366182262128duration30</code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="138" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="138" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba90f1"></div></div></div></section><section data-id="141" id="examples" class="level2 titleonly" data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/examples/"><div class="wrapper clearfix"><div class="col col7"><h2>Examples</h2></div></div></section><section data-id="128" id="hvt-example" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/examples/hvt-example/"><div class="wrapper clearfix"><div class="col col7"><h3>HVT example</h3><p>A sample WFS request, <code>GetFeature</code>, for historical vessel tracks for a specific vessel (<code>MMSI</code>: <code>372934000</code> / <code>eEID</code>: <code>4875242366182262128</code>) in the last 15 days is included below.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&filter=<Filter><And><PropertyIsEqualTo><PropertyName>mmsi</PropertyName><Literal>372934000</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>duration</PropertyName><Literal>15</Literal></PropertyIsEqualTo></And></Filter> </code></pre><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVT&filter=<Filter><And><PropertyIsEqualTo><PropertyName>eeid</PropertyName><Literal>4875242366182262128</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>duration</PropertyName><Literal>15</Literal></PropertyIsEqualTo></And></Filter></code></pre><pre><code data-prismjs-copy="Copy to clipboard"><gml:featureMembers> <exactAIS:HVT gml:id="f46687ba-a2c3-4171-be39-7ealOde451f1"> <exactAIS:mmsi>372934000</exactAIS:mmsi> <exactAIS:imo>9335173</exactAIS:imo> <exactAIS:vessel_name>COSCO BOSTON</exactAIS:vessel_name> <exactAIS:callsign>3ELF2</exactAIS:callsign> <exactAIS:vessel_type>Cargo</exactAIS:vessel_type> <exactAIS:vessel_type_code>71</exactAIS:vessel_type_code> <exactAIS:vessel_type_cargo> Carrying DG,HS or MP,IMO hazard or Pollutant Category X </exactAIS:vessel_type_cargo> <exactAIS:vessel_class>A</exactAIS:vessel_class> <exactAIS:length>293</exactAIS:length> <exactAIS:width>32</exactAIS:width> <exactAIS:flag_country>Panama</exactAIS:flag_country> <exactAIS:flag_code>372</exactAIS:flag_code> <exactAIS:destination>NINGB0</exactAIS:destination> <exactAIS:eta>05081830</exactAIS:eta> <exactAIS:draught>9.7</exactAIS:draught> <exactAIS:segment> <gml:MultiLineString srsName="urn:x-ogc:def:crs:EPSG:4326" srsDimension="2"><gml:lineStringMember> <gml:lineStringMember> <gml:LineString> <gml:posList>29.93528333 121.87095 29.93528333 121.871</gml:posList> </gml:LineString> </gml:lineStringMember> </gml:MultiLineString> </exactAIS:segment> <exactAIS:from_longitude>121.87095</exactAIS:from_longitude> <exactAIS:from_latitude>29.935283333333334</exactAIS:from_latitude> <exactAIS:longitude>121.871</exactAIS:longitude> <exactAIS:latitude>29.935283333333334</exactAIS:latitude> <exactAIS:sog>0.0</exactAIS:sog> <exactAIS:cog>97.0</exactAIS:cog> <exactAIS:rot>0.0</exactAIS:rot> <exactAIS:heading>291.0</exactAIS:heading> <exactAIS:nav_statusMoored</exactAIS:nav_status> <exactAIS:nav_status_code>5</exactAIS:nav_status_code> <exactAIS:source>T-AIS</exactAIS:source> <exactAIS:ts_pos_utc>20190508223109</exactAIS:ts_pos_utc> <exactAIS:ts_static_utc>20190508221407</exactAIS:ts_static_utc> <exactAIS:dt_pos_utc>2019-05-08 22:31:09</exactAIS:dt_pos_utc> <exactAIS:dt_static_utc>2019-05-08 22:14:07</exactAIS:dt_static_utc> <exactAIS:vessel_type_main>Container Ship</exactAIS:vessel_type_main> <exactAIS:vessel_type_sub/> <exactAIS:message_type>3</exactAIS:message_type> <exactAIS:eeid>4875242366182262128</exactAIS:eeid> <exactAIS:dtg>2019-05-08T22:31:09Z</exactAIS:dtg> </exactAIS:HVT> </gml:featureMembers></code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="128" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="128" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba94c2"></div></div></div></section><section data-id="129" id="hvp-example" class="level3 " data-url="https://documentation.spire.com/historical-vessel-points-and-tracks-hvp-hvt/examples/hvp-example/"><div class="wrapper clearfix"><div class="col col7"><h3>HVP example</h3><p>A sample WFS request, <code>GetFeature</code>, for historical vessel points for a specific vessel (<code>MMSI</code>: <code>372934000</code> / <code>eEID</code>: <code>4875242366182262128</code>) in the last 15 days is included below.</p><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVP&filter=<Filter><And><PropertyIsEqualTo><PropertyName>mmsi</PropertyName><Literal>372934000</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>duration</PropertyName><Literal>15</Literal></PropertyIsEqualTo></And></Filter></code></pre><pre><code data-prismjs-copy="Copy to clipboard">https://services.exactearth.com/gws/wfs?service=WFS&version=1.1.0&request=GetFeature&typeName=exactAIS:HVP&filter=<Filter><And><PropertyIsEqualTo><PropertyName>eeid</PropertyName><Literal>4875242366182262128</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>duration</PropertyName><Literal>15</Literal></PropertyIsEqualTo></And></Filter></code></pre><pre><code data-prismjs-copy="Copy to clipboard"><gml:featureMembers> <exactAIS:HVP gml:id="Bc9a05db-Blbb-4002-b6cc-d22a48deead0"> <exactAIS:mmsi>372934000</exactAIS:mmsi> <exactAIS:imo>9335173</exactAIS:imo> <exactAIS:vessel_name>COSCO BOSTON</exactAIS:vessel_name> <exactAIS:callsign>3ELF2</exactAIS:callsign> <exactAIS:vessel_type>Cargo</exactAIS:vessel_type> <exactAIS:vessel_type_code>71</exactAIS:vessel_type_code> <exactAIS:vessel_type_cargo> Carrying DG,HS or MP,IMO hazard or Pollutant Category X </exactAIS:vessel_type_cargo> <exactAIS:vessel_class>A</exactAIS:vessel_class> <exactAIS:length>293</exactAIS:length> <exactAIS:width>32</exactAIS:width> <exactAIS:flag_country>Panama</exactAIS:flag_country> <exactAIS:flag_code>372</exactAIS:flag_code> <exactAIS:destination>NINGB0</exactAIS:destination> <exactAIS:eta>05081830</exactAIS:eta> <exactAIS:draught>9.7</exactAIS:draught> <exactAIS:position> <gml:Point srsName="urn:x-ogc:def:crs:EPSG:4326" srsDimension="2"> <gml:pos>29.93525 121.87095</gml:pos> </gml:Point> </exactAIS:position> <exactAIS:longitude>121.87095</exactAIS:longitude> <exactAIS:latitude>29.93525</exactAIS:latitude> <exactAIS:sog>0.0</exactAIS:sog> <exactAIS:cog>97.0</exactAIS:cog> <exactAIS:rot>0.0</exactAIS:rot> <exactAIS:heading>291.0</exactAIS:heading> <exactAIS:nav_status>Moored</exactAIS:nav_status> <exactAIS:nav_status_code>5</exactAIS:nav_status_code> <exactAIS:source>T-AIS</exactAIS:source> <exactAIS:ts_pos_utc>20190508224310</exactAIS:ts_pos_utc> <exactAIS:ts_static_utc>20190508221407</exactAIS:ts_static_utc> <exactAIS:dt_pos_utc>2019-05-08 22:43:10</exactAIS:dt_pos_utc> <exactAIS:dt_static_utc>2019-05-98 22:14:07</exactAIS:dt_static_utc> <exactAIS:vessel_type_main>Container Ship</exactAIS:vessel_type_main> <exactAIS:vessel_type_sub/> <exactAIS:message_type>3</exactAIS:message_type> <exactAIS:eeid>4875242366182262128</exactAIS:eeid> <exactAIS:dtg>2019-05-08T22:43:102</exactAIS:dtg> </exactAIS:HVP> </gml:featureMembers></code></pre></div></div><div class="wrapper clearfix"><div class="col col7 feedback"> <span class="textlabel">Was this article useful?</span> <a class="givefeedback yes" href="#" data-section-id="129" data-value="1">Yes</a> <a class="givefeedback no" href="#" data-section-id="129" data-value="-1">No</a><div class="formcontainer" id="container-67b8cddba973e"></div></div></div></section></div></main><footer class="simple"><nav class="wrapper clearfix" id="postfooterlegal"><div class="col col12"> <a target="_blank" href="https://spire.com" id="copyright">© Spire Global</a><ul id="socialicons"><li><a href="https://www.facebook.com/spireglobal/" target="_blank" rel="noopener nofollow" title="Spire on Facebok"><i class="icon-facebook"></i></a></li><li><a href="https://twitter.com/SpireGlobal" rel="noopener nofollow" target="_blank" title="Spire on Twitter"><i class="icon-twitter"></i></a></li><li><a href="https://www.linkedin.com/company/spireglobal/" rel="noopener nofollow" target="_blank" title="Spire on LinkedIn"><i class="icon-linkedin"></i></a></li></ul><ul id="legalmenu"><li id="menu-item-995" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-995"><a target="_blank" href="https://spire.com/legal-disclaimer/">Legal Disclaimer</a></li><li id="menu-item-994" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-994"><a target="_blank" href="https://spire.com/privacy-policy/">Privacy Policy</a></li><li id="menu-item-1604" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1604"><a target="_blank" href="https://spire.com/cookie-policy/">Cookie Policy</a></li><li id="menu-item-5108" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5108"><a target="_blank" href="https://spire.com/accessibility/">Accessibility</a></li><li id="menu-item-3372" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-3372"><a target="_blank" href="https://spire.com/our-data/terms-of-use/">Spire Online Data Terms & Conditions</a></li><li id="menu-item-9107" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-9107"><a target="_blank" href="https://spire.com/uk-modern-slavery-act-statement/">UK Modern Slavery Act Statement</a></li></ul></div></nav></footer><div id="searchpane"><div><div class="clearfix boxed"><form role="search" method="get" class="search-form" action="/" style="position: relative;"> <label> <span class="screen-reader-text sr-only">Search for:</span> <input type="search" class="search-field" placeholder="What are you looking for? Start typing to get suggestions..." name="s" data-rlvlive="true" data-rlvparentel="#rlvlive" data-rlvconfig="default"> </label><div id="rlvlive"></div></form></div></div></div> <script defer type="text/javascript" src="https://spire.com/wp-content/themes/spire2021/js/a.min.js?ver=6.7.1" id="a-js"></script> <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/gsap@3.6.0/dist/gsap.min.js?ver=6.7.1" id="gsap-js"></script> <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/gsap@3.6.0/dist/ScrollToPlugin.min.js?ver=6.7.1" id="gsap-scrollto-js"></script> <script defer type="text/javascript" src="https://cdn.jsdelivr.net/npm/magnific-popup@1.1.0/dist/jquery.magnific-popup.min.js?ver=6.7.1" id="magnific-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_732d7fed67b698060223c7dc92318ea6.js?ver=1688136661" id="hubspot_lazy-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_8edcd5e59604e4fac5cf09494e6e2e15.js?ver=1679901433" id="imagepopup-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_c1c14bd64724eeeb816c72a664df7c24.js?ver=1679901433" id="popups-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_22d0c5f859ca466f5a015027d8fb3c17.js?ver=1679901433" id="feedback-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_3437dec8868ec14c38ea419b6e579a1d.js?ver=1679901433" id="most-visible-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_1135a95fb193562bd845ac465b56ee1d.js?ver=1698917261" id="documentation-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_a1a75439e41e75d4bc2ebcab10ddf91e.js?ver=1688995362" id="videochapters-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_431c5c8a3066177634667f012c12ab7c.js?ver=1679901433" id="search-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_17c54228666c5eb9b444388eb2e34b85.js?ver=1679901433" id="darkmode-js"></script> <script defer type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.0.0/highlight.min.js?ver=6.7.1" id="highlightjs-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_b1ac170c5c279a0f8f903636fa53b6d2.js?ver=1679901433" id="syntaxhighlighting-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_e59cb0bed635764fe5fa0122cbb2e39e.js?ver=6.7.1" id="prism-js"></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/cache/autoptimize/js/autoptimize_single_35f9d357c473ec32bafdd2909788f94a.js?ver=1679901433" id="menu-js"></script> <script defer id="relevanssi-live-search-client-js-extra" src="data:text/javascript;base64,dmFyIHJlbGV2YW5zc2lfbGl2ZV9zZWFyY2hfcGFyYW1zPVtdO3JlbGV2YW5zc2lfbGl2ZV9zZWFyY2hfcGFyYW1zPXsiYWpheHVybCI6Imh0dHBzOlwvXC9kb2N1bWVudGF0aW9uLnNwaXJlLmNvbVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwiY29uZmlnIjp7ImRlZmF1bHQiOnsiaW5wdXQiOnsiZGVsYXkiOjMwMCwibWluX2NoYXJzIjozfSwicmVzdWx0cyI6eyJwb3NpdGlvbiI6ImJvdHRvbSIsIndpZHRoIjoiYXV0byIsIm9mZnNldCI6eyJ4IjowLCJ5Ijo1fSwic3RhdGljX29mZnNldCI6dHJ1ZX19fSwibXNnX25vX2NvbmZpZ19mb3VuZCI6Ik5vIHZhbGlkIFJlbGV2YW5zc2kgTGl2ZSBTZWFyY2ggY29uZmlndXJhdGlvbiBmb3VuZCEiLCJtc2dfbG9hZGluZ19yZXN1bHRzIjoiTG9hZGluZyBzZWFyY2ggcmVzdWx0cy4iLCJtZXNzYWdlc190ZW1wbGF0ZSI6IjxkaXYgY2xhc3M9XCJsaXZlLWFqYXgtbWVzc2FnZXNcIj5cblx0PGRpdiBpZD1cInJlbGV2YW5zc2ktbGl2ZS1hamF4LXNlYXJjaC1zcGlubmVyXCI+PFwvZGl2PlxuPFwvZGl2PlxuIn07Ow=="></script> <script defer type="text/javascript" src="https://documentation.spire.com/wp-content/plugins/relevanssi-live-ajax-search/assets/javascript/dist/script.min.js?ver=2.4" id="relevanssi-live-search-client-js"></script> </body></html>