0&&(i=l.getRangeAt(0)),a.append(r),r.select(),r.selectionStart=0,r.selectionEnd=e.length;var c=!1;try{c=document.execCommand("copy")}catch(s){}r.remove(),i&&(l.removeAllRanges(),l.addRange(i)),o&&o.focus()}(t),l(!0),i.current=window.setTimeout((function(){l(!1)}),1e3)}),[t]);return(0,a.useEffect)((function(){return function(){return window.clearTimeout(i.current)}}),[]),a.createElement("button",{type:"button","aria-label":o?(0,p.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,p.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,p.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,u.Z)("clean-btn",n,et.copyButton,o&&et.copyButtonCopied),onClick:c},a.createElement("span",{className:et.copyButtonIcons,"aria-hidden":"true"},a.createElement("svg",{className:et.copyButtonIcon,viewBox:"0 0 24 24"},a.createElement("path",{d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})),a.createElement("svg",{className:et.copyButtonSuccessIcon,viewBox:"0 0 24 24"},a.createElement("path",{d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"}))))}var nt={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function at(e){var t=e.className,n=e.onClick,r=e.isEnabled,o=(0,p.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return a.createElement("button",{type:"button",onClick:n,className:(0,u.Z)("clean-btn",t,r&&nt.wordWrapButtonEnabled),"aria-label":o,title:o},a.createElement("svg",{className:nt.wordWrapButtonIcon,viewBox:"0 0 24 24","aria-hidden":"true"},a.createElement("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})))}function rt(e){var t,n,r,o,l,i,c,s,d,p,v,f=e.children,h=e.className,g=void 0===h?"":h,b=e.metastring,E=e.title,y=e.showLineNumbers,k=e.language,N=(0,q.L)().prism,C=N.defaultLanguage,L=N.magicComments,T=null!=(t=null!=k?k:null==(n=g.split(" ").find((function(e){return e.startsWith("language-")})))?void 0:n.replace(/language-/,""))?t:C,Z=Te(),w=(r=(0,a.useState)(!1),o=r[0],l=r[1],i=(0,a.useState)(!1),c=i[0],s=i[1],d=(0,a.useRef)(null),p=(0,a.useCallback)((function(){var e=d.current.querySelector("code");o?e.removeAttribute("style"):(e.style.whiteSpace="pre-wrap",e.style.overflowWrap="anywhere"),l((function(e){return!e}))}),[d,o]),v=(0,a.useCallback)((function(){var e=d.current,t=e.scrollWidth>e.clientWidth||d.current.querySelector("code").hasAttribute("style");s(t)}),[d]),ze(d,v),(0,a.useEffect)((function(){v()}),[o,v]),(0,a.useEffect)((function(){return window.addEventListener("resize",v,{passive:!0}),function(){window.removeEventListener("resize",v)}}),[v]),{codeBlockRef:d,isEnabled:o,isCodeScrollable:c,toggle:p}),_=function(e){var t,n;return null!=(t=null==e||null==(n=e.match(xe))?void 0:n.groups.title)?t:""}(b)||E,x=je(f,{metastring:b,language:T,magicComments:L}),B=x.lineClassNames,O=x.code,H=null!=y?y:function(e){return Boolean(null==e?void 0:e.includes("showLineNumbers"))}(b);return a.createElement(Se,{as:"div",className:(0,u.Z)(g,T&&!g.includes("language-"+T)&&"language-"+T)},_&&a.createElement("div",{className:Me.codeBlockTitle},_),a.createElement("div",{className:Me.codeBlockContent},a.createElement(Qe,(0,m.Z)({},De,{theme:Z,code:O,language:null!=T?T:"text"}),(function(e){var t=e.className,n=e.tokens,r=e.getLineProps,o=e.getTokenProps;return a.createElement("pre",{tabIndex:0,ref:w.codeBlockRef,className:(0,u.Z)(t,Me.codeBlock,"thin-scrollbar")},a.createElement("code",{className:(0,u.Z)(Me.codeBlockLines,H&&Me.codeBlockLinesWithNumbering)},n.map((function(e,t){return a.createElement(Ke,{key:t,line:e,getLineProps:r,getTokenProps:o,classNames:B[t],showLineNumbers:H})}))))})),a.createElement("div",{className:Me.buttonGroup},(w.isEnabled||w.isCodeScrollable)&&a.createElement(at,{className:Me.codeButton,onClick:function(){return w.toggle()},isEnabled:w.isEnabled}),a.createElement(tt,{className:Me.codeButton,code:O}))))}var ot=["children"];function lt(e){var t=e.children,n=(0,H.Z)(e,ot),r=(0,Ce.Z)(),o=function(e){return a.Children.toArray(e).some((function(e){return(0,a.isValidElement)(e)}))?e:Array.isArray(e)?e.join(""):e}(t),l="string"==typeof o?rt:Pe;return a.createElement(l,(0,m.Z)({key:String(r)},n),o)}var it={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"},ct=["summary","children"];function st(e){return!!e&&("SUMMARY"===e.tagName||st(e.parentElement))}function ut(e,t){return!!e&&(e===t||ut(e.parentElement,t))}function dt(e){var t=e.summary,n=e.children,r=(0,H.Z)(e,ct),o=(0,Ce.Z)(),l=(0,a.useRef)(null),i=(0,F.u)({initialState:!r.open}),c=i.collapsed,s=i.setCollapsed,d=(0,a.useState)(r.open),p=d[0],v=d[1];return a.createElement("details",(0,m.Z)({},r,{ref:l,open:p,"data-collapsed":c,className:(0,u.Z)(it.details,o&&it.isBrowser,r.className),onMouseDown:function(e){st(e.target)&&e.detail>1&&e.preventDefault()},onClick:function(e){e.stopPropagation();var t=e.target;st(t)&&ut(t,l.current)&&(e.preventDefault(),c?(s(!1),v(!0)):s(!0))}}),null!=t?t:a.createElement("summary",null,"Details"),a.createElement(F.z,{lazy:!1,collapsed:c,disableSSRStyle:!0,onCollapseTransitionEnd:function(e){s(e),v(!e)}},a.createElement("div",{className:it.collapsibleContent},n)))}var mt={details:"details_b_Ee"},pt="alert alert--info";function vt(e){var t=Object.assign({},(function(e){if(null==e)throw new TypeError("Cannot destructure "+e)}(e),e));return a.createElement(dt,(0,m.Z)({},t,{className:(0,u.Z)(pt,mt.details,t.className)}))}function ft(e){return a.createElement(Ee,e)}var ht={containsTaskList:"containsTaskList_mC6p"};var gt={img:"img_ev3q"};var bt={admonition:"admonition_LlT9",admonitionHeading:"admonitionHeading_tbUL",admonitionIcon:"admonitionIcon_kALy",admonitionContent:"admonitionContent_S0QG"};var Et={note:{infimaClassName:"secondary",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"}))},label:a.createElement(p.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)"},"note")},tip:{infimaClassName:"success",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)"},"tip")},danger:{infimaClassName:"danger",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 12 16"},a.createElement("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"}))},label:a.createElement(p.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)"},"danger")},info:{infimaClassName:"info",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 14 16"},a.createElement("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"}))},label:a.createElement(p.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)"},"info")},caution:{infimaClassName:"warning",iconComponent:function(){return a.createElement("svg",{viewBox:"0 0 16 16"},a.createElement("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"}))},label:a.createElement(p.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)"},"caution")}},yt={secondary:"note",important:"info",success:"tip",warning:"danger"};function kt(e){var t,n=function(e){var t=a.Children.toArray(e),n=t.find((function(e){var t;return a.isValidElement(e)&&"mdxAdmonitionTitle"===(null==(t=e.props)?void 0:t.mdxType)})),r=a.createElement(a.Fragment,null,t.filter((function(e){return e!==n})));return{mdxAdmonitionTitle:n,rest:r}}(e.children),r=n.mdxAdmonitionTitle,o=n.rest;return Object.assign({},e,{title:null!=(t=e.title)?t:r,children:o})}var Nt={head:function(e){var t=a.Children.map(e.children,(function(e){return a.isValidElement(e)?function(e){var t;if(null!=(t=e.props)&&t.mdxType&&e.props.originalType){var n=e.props,r=(n.mdxType,n.originalType,(0,H.Z)(n,Ne));return a.createElement(e.props.originalType,r)}return e}(e):e}));return a.createElement(ke.Z,e,t)},code:function(e){var t=["a","abbr","b","br","button","cite","code","del","dfn","em","i","img","input","ins","kbd","label","object","output","q","ruby","s","small","span","strong","sub","sup","time","u","var","wbr"];return a.Children.toArray(e.children).every((function(e){var n;return"string"==typeof e&&!e.includes("\n")||(0,a.isValidElement)(e)&&t.includes(null==(n=e.props)?void 0:n.mdxType)}))?a.createElement("code",e):a.createElement(lt,e)},a:function(e){return a.createElement(v.Z,e)},pre:function(e){var t;return a.createElement(lt,(0,a.isValidElement)(e.children)&&"code"===(null==(t=e.children.props)?void 0:t.originalType)?e.children.props:Object.assign({},e))},details:function(e){var t=a.Children.toArray(e.children),n=t.find((function(e){var t;return a.isValidElement(e)&&"summary"===(null==(t=e.props)?void 0:t.mdxType)})),r=a.createElement(a.Fragment,null,t.filter((function(e){return e!==n})));return a.createElement(vt,(0,m.Z)({},e,{summary:n}),r)},ul:function(e){return a.createElement("ul",(0,m.Z)({},e,{className:(t=e.className,(0,u.Z)(t,(null==t?void 0:t.includes("contains-task-list"))&&ht.containsTaskList))}));var t},img:function(e){return a.createElement("img",(0,m.Z)({loading:"lazy"},e,{className:(t=e.className,(0,u.Z)(t,gt.img))}));var t},h1:function(e){return a.createElement(ft,(0,m.Z)({as:"h1"},e))},h2:function(e){return a.createElement(ft,(0,m.Z)({as:"h2"},e))},h3:function(e){return a.createElement(ft,(0,m.Z)({as:"h3"},e))},h4:function(e){return a.createElement(ft,(0,m.Z)({as:"h4"},e))},h5:function(e){return a.createElement(ft,(0,m.Z)({as:"h5"},e))},h6:function(e){return a.createElement(ft,(0,m.Z)({as:"h6"},e))},admonition:function(e){var t=kt(e),n=t.children,r=t.type,o=t.title,l=t.icon,i=function(e){var t,n=null!=(t=yt[e])?t:e,a=Et[n];return a||(console.warn('No admonition config found for admonition type "'+n+'". Using Info as fallback.'),Et.info)}(r),c=null!=o?o:i.label,s=i.iconComponent,d=null!=l?l:a.createElement(s,null);return a.createElement("div",{className:(0,u.Z)(y.k.common.admonition,y.k.common.admonitionType(e.type),"alert","alert--"+i.infimaClassName,bt.admonition)},a.createElement("div",{className:bt.admonitionHeading},a.createElement("span",{className:bt.admonitionIcon},d),c),a.createElement("div",{className:bt.admonitionContent},n))},mermaid:function(){return null}};function Ct(e){var t=e.children;return a.createElement(ye.Zo,{components:Nt},t)}function Lt(e){var t,n,r,o,l=e.children,i=(t=c(),n=t.metadata,r=t.frontMatter,o=t.contentTitle,r.hide_title||void 0!==o?null:n.title);return a.createElement("div",{className:(0,u.Z)(y.k.docs.docMarkdown,"markdown")},i&&a.createElement("header",null,a.createElement(Ee,{as:"h1"},i)),a.createElement(Ct,null,l))}var Tt=n(5019),Zt=n(9003),wt=n(9524);function _t(e){return a.createElement("svg",(0,m.Z)({viewBox:"0 0 24 24"},e),a.createElement("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"}))}var xt={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function Bt(){var e=(0,wt.Z)("/");return a.createElement("li",{className:"breadcrumbs__item"},a.createElement(v.Z,{"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e},a.createElement(_t,{className:xt.breadcrumbHomeIcon})))}var Ot={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function Ht(e){var t=e.children,n=e.href,r="breadcrumbs__link";return e.isLast?a.createElement("span",{className:r,itemProp:"name"},t):n?a.createElement(v.Z,{className:r,href:n,itemProp:"item"},a.createElement("span",{itemProp:"name"},t)):a.createElement("span",{className:r},t)}function jt(e){var t=e.children,n=e.active,r=e.index,o=e.addMicrodata;return a.createElement("li",(0,m.Z)({},o&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},{className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":n})}),t,a.createElement("meta",{itemProp:"position",content:String(r+1)}))}function At(){var e=(0,Tt.s1)(),t=(0,Zt.Ns)();return e?a.createElement("nav",{className:(0,u.Z)(y.k.docs.docBreadcrumbs,Ot.breadcrumbsContainer),"aria-label":(0,p.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"})},a.createElement("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList"},t&&a.createElement(Bt,null),e.map((function(t,n){var r=n===e.length-1;return a.createElement(jt,{key:n,active:r,index:n,addMicrodata:!!t.href},a.createElement(Ht,{href:t.href,isLast:r},t.label))})))):null}var It={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function St(e){var t,n,r,o,l,i,s=e.children,m=(t=c(),n=t.frontMatter,r=t.toc,o=(0,d.i)(),l=n.hide_table_of_contents,i=!l&&r.length>0,{hidden:l,mobile:i?a.createElement(ue,null):void 0,desktop:!i||"desktop"!==o&&"ssr"!==o?void 0:a.createElement(he,null)});return a.createElement("div",{className:"row"},a.createElement("div",{className:(0,u.Z)("col",!m.hidden&&It.docItemCol)},a.createElement(w,null),a.createElement("div",{className:It.docItemContainer},a.createElement("article",null,a.createElement(At,null),a.createElement(_,null),m.mobile,a.createElement(Lt,null,s),a.createElement(W,null)),a.createElement(g,null))),m.desktop&&a.createElement("div",{className:"col col--3"},m.desktop))}function Mt(e){var t="docs-doc-id-"+e.content.metadata.unversionedId,n=e.content;return a.createElement(i,{content:e.content},a.createElement(r.FG,{className:t},a.createElement(s,null),a.createElement(St,null,a.createElement(n,null))))}},8801:function(e,t,n){"use strict";n.d(t,{E:function(){return i},q:function(){return l}});var a=n(7294),r=n(8755),o=a.createContext(null);function l(e){var t=e.children,n=e.version;return a.createElement(o.Provider,{value:n},t)}function i(){var e=(0,a.useContext)(o);if(null===e)throw new r.i6("DocsVersionProvider");return e}},7594:function(e,t){function n(e){let t,n=[];for(let a of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(a))n.push(parseInt(a,10));else if(t=a.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,a,r,o]=t;if(a&&o){a=parseInt(a),o=parseInt(o);const e=a=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var u=r.createContext({}),c=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},p=function(e){var t=c(e.components);return r.createElement(u.Provider,{value:t},e.children)},d="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,a=e.mdxType,o=e.originalType,u=e.parentName,p=l(e,["components","mdxType","originalType","parentName"]),d=c(n),m=a,f=d["".concat(u,".").concat(m)]||d[m]||s[m]||o;return n?r.createElement(f,i(i({ref:t},p),{},{components:n})):r.createElement(f,i({ref:t},p))}));function f(e,t){var n=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=n.length,i=new Array(o);i[0]=m;var l={};for(var u in t)hasOwnProperty.call(t,u)&&(l[u]=t[u]);l.originalType=e,l[d]="string"==typeof e?e:a,i[1]=l;for(var c=2;cgetCurrentUVIndex($lat, $lon);\n")),(0,o.kt)("h3",{id:"example"},"Example"),(0,o.kt)("p",null,"Get the current UV index in Berlin."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'$uvIndex = $owm->getCurrentUVIndex(52.520008, 13.404954);\necho "Current UV index: $uvIndex->uvIndex";\n')),(0,o.kt)("h2",{id:"forecast-uv-index"},"Forecast UV index"),(0,o.kt)("p",null,"You can retrieve a UV index forecast for up to 8 days. The return value is an\narray of ",(0,o.kt)("inlineCode",{parentName:"p"},"UVIndex")," objects."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$uvForecast = $owm->getForecastUVIndex($lat, $lon, $cnt = 8)\n")),(0,o.kt)("h3",{id:"example-1"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$forecast = $owm->getForecastUVIndex(52.520008, 13.404954);\nforeach ($forecast as $day) {\n echo \"{$day->time->format('r')} will have an uv index of: $day->uvIndex\";\n}\n")),(0,o.kt)("h2",{id:"historic-uv-index"},"Historic UV index"),(0,o.kt)("p",null,"You can retrieve daily historic UV index data starting in June 2017."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$history = $owm->getHistoricUVIndex($lat, $lon, $from, $to);\n")),(0,o.kt)("h3",{id:"example-2"},"Example"),(0,o.kt)("p",null,"Retrieve one month of four month old historic UV data of Berlin."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"$history = $owm->getHistoricUVIndex(52.520008, 13.404954,\n new DateTime('-4month'),\n new DateTime('-3month'));\nforeach ($history as $day) {\n echo \"{$day->time->format('r')} had an uv index of: $day->uvIndex\";\n}\n")))}f.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/1be78505.8e41a826.js b/assets/js/1be78505.8e41a826.js
new file mode 100644
index 0000000..a56ec4d
--- /dev/null
+++ b/assets/js/1be78505.8e41a826.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[514,248],{1299:function(e,t,n){n.r(t),n.d(t,{default:function(){return ge}});var a=n(7294),r=n(6010),l=n(5463),o=n(3702),i=n(246),c=n(5019),d=n(8801),s=n(4432),u=n(2269),m=n(7325),b=n(2957),p=n(3266);var v={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};function h(){var e=function(e){var t=e.threshold,n=(0,a.useState)(!1),r=n[0],l=n[1],o=(0,a.useRef)(!1),i=(0,b.Ct)(),c=i.startScroll,d=i.cancelScroll;return(0,b.RF)((function(e,n){var a=e.scrollY,r=null==n?void 0:n.scrollY;r&&(o.current?o.current=!1:a>=r?(d(),l(!1)):a=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var c=n.createContext({}),s=function(e){var t=n.useContext(c),r=t;return e&&(r="function"==typeof e?e(t):p(p({},t),e)),r},u=function(e){var t=s(e.components);return n.createElement(c.Provider,{value:t},e.children)},l="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},f=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,c=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=s(r),f=a,d=l["".concat(c,".").concat(f)]||l[f]||m[f]||o;return r?n.createElement(d,p(p({ref:t},u),{},{components:r})):n.createElement(d,p({ref:t},u))}));function d(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,p=new Array(o);p[0]=f;var i={};for(var c in t)hasOwnProperty.call(t,c)&&(i[c]=t[c]);i.originalType=e,i[l]="string"==typeof e?e:a,p[1]=i;for(var s=2;s=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=a.createContext({}),u=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=u(e.components);return a.createElement(p.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,o=e.mdxType,r=e.originalType,p=e.parentName,s=l(e,["components","mdxType","originalType","parentName"]),c=u(n),m=o,f=c["".concat(p,".").concat(m)]||c[m]||d[m]||r;return n?a.createElement(f,i(i({ref:t},s),{},{components:n})):a.createElement(f,i({ref:t},s))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var r=n.length,i=new Array(r);i[0]=m;var l={};for(var p in t)hasOwnProperty.call(t,p)&&(l[p]=t[p]);l.originalType=e,l[c]="string"==typeof e?e:o,i[1]=l;for(var u=2;ugetAirPollution($type, $lat, $lng, $date = "current");\n')),(0,r.kt)("p",null,"The return value depends on the ",(0,r.kt)("inlineCode",{parentName:"p"},"$type")," and is discussed in the next sections."),(0,r.kt)("h2",{id:"carbon-monoxide-co"},"Carbon Monoxide (CO)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$co = $owm->getAirPollution("CO", "52", "13");\nif ($co === null) {\n // No data available\n} else {\n foreach ($co->values as $data) {\n echo $data["value"];\n echo $data["value"]->getPrecision();\n echo $data["pressure"];\n }\n}\n')),(0,r.kt)("h2",{id:"ozone-o3"},"Ozone (O3)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$o3 = $owm->getAirPollution("O3", "52", "13");\nif ($o3 === null) {\n // No data available\n} else {\n echo $o3->value;\n}\n')),(0,r.kt)("h2",{id:"nitrogen-dioxide-no2"},"Nitrogen Dioxide (NO2)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$no2 = $owm->getAirPollution("NO2", "52", "13");\nif ($no2 === null) {\n // No data available\n} else {\n echo $no2->value;\n echo $no2->valueStratosphere;\n echo $no2->valueTroposphere;\n}\n')),(0,r.kt)("h2",{id:"sulfor-dioxide-so2"},"Sulfor Dioxide (SO2)"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-php"},'$so2 = $owm->getAirPollution("SO2", "52", "13");\nif ($so2 === null) {\n // No data available\n} else {\n foreach ($so2->values as $data) {\n echo $data["value"];\n echo $data["value"]->getPrecision();\n echo $data["pressure"];\n }\n}\n')))}f.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/643a1cfb.0e118a76.js b/assets/js/643a1cfb.0e118a76.js
new file mode 100644
index 0000000..8499421
--- /dev/null
+++ b/assets/js/643a1cfb.0e118a76.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[911],{4137:function(t,e,a){a.d(e,{Zo:function(){return m},kt:function(){return c}});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function l(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function i(t){for(var e=1;e=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var d=n.createContext({}),p=function(t){var e=n.useContext(d),a=e;return t&&(a="function"==typeof t?t(e):i(i({},e),t)),a},m=function(t){var e=p(t.components);return n.createElement(d.Provider,{value:e},t.children)},u="mdxType",k={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,d=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),u=p(a),s=r,c=u["".concat(d,".").concat(s)]||u[s]||k[s]||l;return a?n.createElement(c,i(i({ref:e},m),{},{components:a})):n.createElement(c,i({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,i=new Array(l);i[0]=s;var o={};for(var d in e)hasOwnProperty.call(e,d)&&(o[d]=e[d]);o.originalType=t,o[u]="string"==typeof t?t:r,i[1]=o;for(var p=2;p$query parameter",id:"query-parameter",level:2},{value:"by city name",id:"by-city-name",level:3},{value:"by city id",id:"by-city-id",level:3},{value:"by zip code",id:"by-zip-code",level:3},{value:"by coordinates",id:"by-coordinates",level:3},{value:"$forecasts object",id:"forecasts-object",level:2},{value:"$forecast object",id:"forecast-object",level:3},{value:"only for 5-day/3-hourly forecasts",id:"only-for-5-day3-hourly-forecasts",level:3},{value:"only for 16-day/hourly forecasts",id:"only-for-16-dayhourly-forecasts",level:3}],k={toc:u},s="wrapper";function c(t){var e=t.components,a=(0,r.Z)(t,i);return(0,l.kt)(s,(0,n.Z)({},k,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"This API allows you to retrieve 16-day/daily and 5-day/3-hourly weather forecasts."),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},"Corresponding OpenWeatherMap Documentation:"),(0,l.kt)("ul",{parentName:"blockquote"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://openweathermap.org/forecast5"},"5-day/3-hourly Forecasts")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"https://openweathermap.org/forecast16"},"16-day/daily Forecasts")))),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$owm->getWeatherForecast()")," method takes the following parameters:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Default"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$query")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"mixed")),(0,l.kt)("td",{parentName:"tr",align:null},"--"),(0,l.kt)("td",{parentName:"tr",align:null},"See below")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$units")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"'),"|",(0,l.kt)("inlineCode",{parentName:"td"},'"metric"')),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"')),(0,l.kt)("td",{parentName:"tr",align:null},"Units to use")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$lang")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"en")),(0,l.kt)("td",{parentName:"tr",align:null},"One of the languages listed at the very bottom of ",(0,l.kt)("a",{parentName:"td",href:"https://openweathermap.org/forecast16#multi"},"the official documentation"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$appid")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"''")),(0,l.kt)("td",{parentName:"tr",align:null},"Deprecated, always set to ",(0,l.kt)("inlineCode",{parentName:"td"},"''"))),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$days")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")," (1 - 16)"),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"1")),(0,l.kt)("td",{parentName:"tr",align:null},"Number of days to retrieve the forecast for. If ",(0,l.kt)("inlineCode",{parentName:"td"},"$days")," is between 1 and 5, the 5-day/3-hourly forecast API is used. If ",(0,l.kt)("inlineCode",{parentName:"td"},"$days")," is between 6 and 16, the 16-day/daily forecast API is used.")))),(0,l.kt)("p",null,"You can use ",(0,l.kt)("inlineCode",{parentName:"p"},"->getDailyWeatherForecast()")," if instead if you want to retrieve a daily forecast even when a 3-horuly forecast is available."),(0,l.kt)("h2",{id:"query-parameter"},(0,l.kt)("inlineCode",{parentName:"h2"},"$query")," parameter"),(0,l.kt)("p",null,"The first parameter determines the location to get weather data from.\nSeveral possible approaches are possible:"),(0,l.kt)("h3",{id:"by-city-name"},"by city name"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$forecasts = $owm->getWeatherForecast('Berlin,DE', $units, $lang, '', $days);\n")),(0,l.kt)("h3",{id:"by-city-id"},"by city id"),(0,l.kt)("p",null,"One city id:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$forecasts = $owm->getWeatherForecast(2172797, $units, $lang, '', $days);\n")),(0,l.kt)("h3",{id:"by-zip-code"},"by zip code"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"// Hyderabad, India\n$forecasts = $owm->getWeatherForecast('zip:500001,IN', $units, $lang, '', $days);\n")),(0,l.kt)("h3",{id:"by-coordinates"},"by coordinates"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$forecasts = $owm->getWeatherForecast(['lat' => 77.73038, 'lon' => 41.89604],\n $units, $lang, '', $days);\n")),(0,l.kt)("h2",{id:"forecasts-object"},(0,l.kt)("inlineCode",{parentName:"h2"},"$forecasts")," object"),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$forecasts")," is an instance of ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\WeatherForecast"),".\nIt provides the following data:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"lastUpdate")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\\u1e10ateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"When the data was last updated")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->id")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")),(0,l.kt)("td",{parentName:"tr",align:null},"Internal city id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->name")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Name of the city")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->country")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"City country code")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->timezone")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeZone"),"|",(0,l.kt)("inlineCode",{parentName:"td"},"null")),(0,l.kt)("td",{parentName:"tr",align:null},"City timezone")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lon")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City longitude")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lat")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City latitude")))),(0,l.kt)("p",null,"To retrieve the forecasts, iterate over the object:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"foreach ($forecasts as $forecast) {\n // Do something\n}\n")),(0,l.kt)("h3",{id:"forecast-object"},(0,l.kt)("inlineCode",{parentName:"h3"},"$forecast")," object"),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$forecast")," is an instance of ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Forecast")," that extends the ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\CurrentWeather")," object."),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"time->day")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"The day of the forecast")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"time->from")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"The exact start time of the forecast. For 16-day/daily forecasts, this corresponds to ",(0,l.kt)("inlineCode",{parentName:"td"},"time->day"),". For 5-day/3-hourly forecasts, it corresponds to the start of the 3-hour window.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"time->to")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"The exact end time of the forecast. For 16-day/daily forecasts, this corresponds to ",(0,l.kt)("inlineCode",{parentName:"td"},"time->day")," at ",(0,l.kt)("inlineCode",{parentName:"td"},"23:59:59"),". For 5-day/3-hourly forecasts, it corresponds to the end of the 3-hour window.")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"...")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"...")),(0,l.kt)("td",{parentName:"tr",align:null},"All other properties from the ",(0,l.kt)("inlineCode",{parentName:"td"},"CurrentWeather")," object, as described ",(0,l.kt)("a",{parentName:"td",href:"/OpenWeatherMap-PHP-API/docs/apis/current-weather#weather-object"},"here"),".")))),(0,l.kt)("h3",{id:"only-for-5-day3-hourly-forecasts"},"only for 5-day/3-hourly forecasts"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Note: This should be named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->avg")," and is only named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")," for backwards compatibility! Returns the average temperature for the given location (i.e, a big city might have multiple temperature measurement stations)")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->min")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum temperature for the given locaiton")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->max")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum temperature for the given locaiton")))),(0,l.kt)("h3",{id:"only-for-16-dayhourly-forecasts"},"only for 16-day/hourly forecasts"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->morning")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at morning")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at day")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->evening")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at evening")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->night")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Temperature at night")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->min")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum temperature at day")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->max")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum temperature at day")))))}c.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/6476eba6.c3360b8e.js b/assets/js/6476eba6.c3360b8e.js
new file mode 100644
index 0000000..0dc63fb
--- /dev/null
+++ b/assets/js/6476eba6.c3360b8e.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[827],{4137:function(e,t,n){n.d(t,{Zo:function(){return s},kt:function(){return d}});var a=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function p(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var i=a.createContext({}),l=function(e){var t=a.useContext(i),n=t;return e&&(n="function"==typeof e?e(t):p(p({},t),e)),n},s=function(e){var t=l(e.components);return a.createElement(i.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,o=e.originalType,i=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),u=l(n),m=r,d=u["".concat(i,".").concat(m)]||u[m]||h[m]||o;return n?a.createElement(d,p(p({ref:t},s),{},{components:n})):a.createElement(d,p({ref:t},s))}));function d(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=n.length,p=new Array(o);p[0]=m;var c={};for(var i in t)hasOwnProperty.call(t,i)&&(c[i]=t[i]);c.originalType=e,c[u]="string"==typeof e?e:r,p[1]=c;for(var l=2;lUnit objects",id:"unit-objects",level:2},{value:"Caching requests",id:"caching-requests",level:2},{value:"Exception handling",id:"exception-handling",level:2}],h={toc:u},m="wrapper";function d(e){var t=e.components,n=(0,r.Z)(e,p);return(0,o.kt)(m,(0,a.Z)({},h,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"All APIs can be accessed through the ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap")," object.\nTo construct this object, you need to supply your API key, the PSR-18-compatible\nHTTP client and the PSR-17-compatible HTTP request factory:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"use Cmfcmf\\OpenWeatherMap;\n\n$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory);\n")),(0,o.kt)("blockquote",null,(0,o.kt)("p",{parentName:"blockquote"},(0,o.kt)("strong",{parentName:"p"},"Note:")," From now on, we will refer to the instance of ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap")," as ",(0,o.kt)("inlineCode",{parentName:"p"},"$owm"),".")),(0,o.kt)("h2",{id:"example"},"Example"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},"getWeather('Berlin', 'metric', 'de');\n} catch(OWMException $e) {\n echo 'OpenWeatherMap exception: ' . $e->getMessage() . ' (Code ' . $e->getCode() . ').';\n} catch(\\Exception $e) {\n echo 'General exception: ' . $e->getMessage() . ' (Code ' . $e->getCode() . ').';\n}\n\necho $weather->temperature;\n")),(0,o.kt)("h2",{id:"unit-objects"},(0,o.kt)("inlineCode",{parentName:"h2"},"Unit")," objects"),(0,o.kt)("p",null,"Most values like temperature, precipitation, etc., are returned as instances of the\n",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Util\\Unit")," class. These objects provide you with\nthe value (e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"26.9"),"),\nthe unit (e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"\xb0C"),"),\nand sometimes a description (e.g., ",(0,o.kt)("inlineCode",{parentName:"p"},"heavy rain"),").\nTo make this clearer, let's look at a concrete example:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php"},'$weather = $owm->getWeather(\'Berlin\', \'metric\');\n// @var Cmfcmf\\OpenWeatherMap\\Util\\Unit $temperature\n$temperature = $weather->temperature->now;\n\n$temperature->getValue(); // 26.9\n$temperature->getUnit(); // "\xb0C"\n$temperature->getDescription(); // ""\n$temperature->getFormatted(); // "26.9 \xb0C"\n$temperature->__toString(); // "26.9 \xb0C"\n')),(0,o.kt)("h2",{id:"caching-requests"},"Caching requests"),(0,o.kt)("p",null,"You can automatically cache requests by supplying a ",(0,o.kt)("a",{parentName:"p",href:"https://www.php-fig.org/psr/psr-6/"},"PSR-6-compatible"),"\ncache as the fourth constructor parameter and the time to live as the fifth parameter:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php",metastring:"{7}","{7}":!0},"use Cmfcmf\\OpenWeatherMap;\n\n// Cache time in seconds, defaults to 600 = 10 minutes.\n$ttl = 600;\n\n$owm = new OpenWeatherMap('YOUR-API-KEY', $httpClient, $httpRequestFactory,\n $cache, $ttl);\n")),(0,o.kt)("p",null,"You can check whether the last request was cached by calling ",(0,o.kt)("inlineCode",{parentName:"p"},"->wasCached()"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php",metastring:"{3}","{3}":!0},'$owm->getRawWeatherData(\'Berlin\');\n\nif ($owm->wasCached()) {\n echo "last request was cached";\n} else {\n echo "last request was not cached";\n}\n')),(0,o.kt)("h2",{id:"exception-handling"},"Exception handling"),(0,o.kt)("p",null,"Make sure to handle exceptions appropriately.\nWhenever the OpenWeatherMap API returns an exception, it is converted into an instance of\n",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Exception"),".\nAs a special case, the API will throw a ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\NotFoundException")," if the city/location/coordinates you are querying cannot be found. This exception inherits from ",(0,o.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\Exception"),"."),(0,o.kt)("p",null,"If anything else goes wrong, an exception inheriting from ",(0,o.kt)("inlineCode",{parentName:"p"},"\\Exception")," is thrown."),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-php",metastring:"{5,7}","{5,7}":!0},"use Cmfcmf\\OpenWeatherMap\\Exception as OWMException;\nuse Cmfcmf\\OpenWeatherMap\\NotFoundException as OWMNotFoundException;\n\ntry {\n $weather = $owm->getWeather('Berlin');\n} catch (OWMNotFoundException $e) {\n // TODO: Handle \"city was not found\" exception\n // You can opt to skip the handler for `OWMNotFoundException`, because it extends `OWMException`.\n} catch (OWMException $e) {\n // TODO: Handle API exception\n} catch (\\Exception $e) {\n // TODO: Handle general exception\n}\n")))}d.isMDXComponent=!0}}]);
\ No newline at end of file
diff --git a/assets/js/935f2afb.2153a8f6.js b/assets/js/935f2afb.2153a8f6.js
new file mode 100644
index 0000000..fb40e85
--- /dev/null
+++ b/assets/js/935f2afb.2153a8f6.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[53],{1109:function(e){e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"someSidebar":[{"type":"link","label":"Getting Started","href":"/OpenWeatherMap-PHP-API/docs/getting-started","docId":"getting-started"},{"type":"link","label":"API Key","href":"/OpenWeatherMap-PHP-API/docs/api-key","docId":"api-key"},{"type":"link","label":"Usage","href":"/OpenWeatherMap-PHP-API/docs/usage","docId":"usage"},{"type":"category","label":"APIs","items":[{"type":"link","label":"Current Weather","href":"/OpenWeatherMap-PHP-API/docs/apis/current-weather","docId":"apis/current-weather"},{"type":"link","label":"Weather Forecast","href":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast","docId":"apis/weather-forecast"},{"type":"link","label":"Air Pollution","href":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution","docId":"apis/air-pollution"},{"type":"link","label":"Ultraviolet Index","href":"/OpenWeatherMap-PHP-API/docs/apis/uv-index","docId":"apis/uv-index"}],"collapsed":false,"collapsible":false}]},"docs":{"api-key":{"id":"api-key","title":"API Key","description":"All requests require a free API key (sometimes called \\"APPID\\") from OpenWeaterMap.","sidebar":"someSidebar"},"apis/air-pollution":{"id":"apis/air-pollution","title":"Air Pollution API","description":"This API allows you to retrieve the current, forecast and historic ultraviolet index (UV index).","sidebar":"someSidebar"},"apis/current-weather":{"id":"apis/current-weather","title":"Current Weather API","description":"This API allows you to retrieve the current weather data.","sidebar":"someSidebar"},"apis/uv-index":{"id":"apis/uv-index","title":"Ultraviolet Index API","description":"This API allows you to retrieve the current, forecast and historic ultraviolet index (UV index).","sidebar":"someSidebar"},"apis/weather-forecast":{"id":"apis/weather-forecast","title":"Weather Forecast API","description":"This API allows you to retrieve 16-day/daily and 5-day/3-hourly weather forecasts.","sidebar":"someSidebar"},"getting-started":{"id":"getting-started","title":"Getting Started","description":"OpenWeatherMap PHP API is a PHP client for weather APIs from OpenWeatherMap.org.","sidebar":"someSidebar"},"usage":{"id":"usage","title":"Usage","description":"All APIs can be accessed through the Cmfcmf\\\\OpenWeatherMap object.","sidebar":"someSidebar"}}}')}}]);
\ No newline at end of file
diff --git a/assets/js/bc0739f3.f79734fb.js b/assets/js/bc0739f3.f79734fb.js
new file mode 100644
index 0000000..bb4af3d
--- /dev/null
+++ b/assets/js/bc0739f3.f79734fb.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[100],{5745:function(s){s.exports=JSON.parse('{"name":"docusaurus-plugin-content-pages","id":"default"}')}}]);
\ No newline at end of file
diff --git a/assets/js/c4f5d8e4.4a28788c.js b/assets/js/c4f5d8e4.4a28788c.js
new file mode 100644
index 0000000..525bc83
--- /dev/null
+++ b/assets/js/c4f5d8e4.4a28788c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[195],{9660:function(e,t,a){a.r(t),a.d(t,{default:function(){return h}});var r=a(7462),n=a(7294),l=a(6010),s=a(2269),c=a(3699),o=a(9962),i=a(9524),m={heroBanner:"heroBanner_UJJx",buttons:"buttons_pzbO",features:"features_keug",featureImage:"featureImage_yA8i"},u=[{title:n.createElement(n.Fragment,null,"Supports most free APIs"),description:n.createElement(n.Fragment,null,n.createElement("p",null,"This project comes with support for five of the most popular free APIs:"),n.createElement("ul",null,n.createElement("li",null,"Current Weather Data"),n.createElement("li",null,"16-day/daily Forecast Data"),n.createElement("li",null,"5-day/3-hourly Forecast Data"),n.createElement("li",null,"Air Pollution (CO, O3, SO2, NO2) Data"),n.createElement("li",null,"Ultraviolet Index Data")))},{title:n.createElement(n.Fragment,null,"Easy to Use"),description:n.createElement("p",null,"The OpenWeatherMap APIs are poorly documented and oftentimes not easy to use. This project provides the necessary abstractions to make working with the API feel like a breeze.")},{title:n.createElement(n.Fragment,null,"Powered by modern PHP"),description:n.createElement("p",null,"Since version 3.x, this project works with PHP 7.x. It uses ",n.createElement("a",{href:"https://www.php-fig.org/psr/psr-17/"},"PSR-17")," and ",n.createElement("a",{href:"https://www.php-fig.org/psr/psr-18/"},"PSR-18")," for HTTP requests, as well as ",n.createElement("a",{href:"https://www.php-fig.org/psr/psr-6/"},"PSR-6")," for caching.")}];function p(e){var t=e.imageUrl,a=e.title,r=e.description,s=(0,i.Z)(t);return n.createElement("div",{className:(0,l.Z)("col col--4",m.feature)},s&&n.createElement("div",{className:"text--center"},n.createElement("img",{className:m.featureImage,src:s,alt:a})),n.createElement("h3",null,a),r)}var h=function(){var e=(0,o.Z)().siteConfig,t=void 0===e?{}:e;return n.createElement(s.Z,{title:t.title,description:t.tagline},n.createElement("header",{className:(0,l.Z)("hero hero--primary",m.heroBanner)},n.createElement("div",{className:"container"},n.createElement("h1",{className:"hero__title"},t.title),n.createElement("p",{className:"hero__subtitle"},t.tagline),n.createElement("div",{className:m.buttons},n.createElement(c.Z,{className:(0,l.Z)("button button--outline button--secondary button--lg",m.getStarted),to:(0,i.Z)("docs/getting-started")},"Get Started")))),n.createElement("main",null,u&&u.length&&n.createElement("section",{className:m.features},n.createElement("div",{className:"container"},n.createElement("div",{className:"row"},u.map((function(e,t){return n.createElement(p,(0,r.Z)({key:t},e))})))))))}}}]);
\ No newline at end of file
diff --git a/assets/js/d589d3a7.2aa061c7.js b/assets/js/d589d3a7.2aa061c7.js
new file mode 100644
index 0000000..5a65911
--- /dev/null
+++ b/assets/js/d589d3a7.2aa061c7.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([[162],{4137:function(e,t,r){r.d(t,{Zo:function(){return c},kt:function(){return f}});var n=r(7294);function a(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t=0||(a[r]=e[r]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(a[r]=e[r])}return a}var l=n.createContext({}),s=function(e){var t=n.useContext(l),r=t;return e&&(r="function"==typeof e?e(t):i(i({},t),e)),r},c=function(e){var t=s(e.components);return n.createElement(l.Provider,{value:t},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var r=e.components,a=e.mdxType,o=e.originalType,l=e.parentName,c=p(e,["components","mdxType","originalType","parentName"]),u=s(r),d=a,f=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return r?n.createElement(f,i(i({ref:t},c),{},{components:r})):n.createElement(f,i({ref:t},c))}));function f(e,t){var r=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var o=r.length,i=new Array(o);i[0]=d;var p={};for(var l in t)hasOwnProperty.call(t,l)&&(p[l]=t[l]);p.originalType=e,p[u]="string"==typeof e?e:a,i[1]=p;for(var s=2;s=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var o=a.createContext({}),p=function(e){var t=a.useContext(o),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},m=function(e){var t=p(e.components);return a.createElement(o.Provider,{value:t},e.children)},u="mdxType",s={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},c=a.forwardRef((function(e,t){var n=e.components,r=e.mdxType,l=e.originalType,o=e.parentName,m=d(e,["components","mdxType","originalType","parentName"]),u=p(n),c=r,k=u["".concat(o,".").concat(c)]||u[c]||s[c]||l;return n?a.createElement(k,i(i({ref:t},m),{},{components:n})):a.createElement(k,i({ref:t},m))}));function k(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var l=n.length,i=new Array(l);i[0]=c;var d={};for(var o in t)hasOwnProperty.call(t,o)&&(d[o]=t[o]);d.originalType=e,d[u]="string"==typeof e?e:r,i[1]=d;for(var p=2;p$query parameter",id:"query-parameter",level:2},{value:"by city name",id:"by-city-name",level:3},{value:"by city id",id:"by-city-id",level:3},{value:"by zip code",id:"by-zip-code",level:3},{value:"by coordinates",id:"by-coordinates",level:3},{value:"$weather object",id:"weather-object",level:2},{value:"Retrieving raw data",id:"retrieving-raw-data",level:2},{value:"HTML",id:"html",level:3},{value:"JSON",id:"json",level:3},{value:"XML",id:"xml",level:3}],s={toc:u},c="wrapper";function k(e){var t=e.components,n=(0,r.Z)(e,i);return(0,l.kt)(c,(0,a.Z)({},s,n,{components:t,mdxType:"MDXLayout"}),(0,l.kt)("p",null,"This API allows you to retrieve the current weather data."),(0,l.kt)("blockquote",null,(0,l.kt)("p",{parentName:"blockquote"},(0,l.kt)("a",{parentName:"p",href:"https://openweathermap.org/current"},"Corresponding OpenWeatherMap Documentation"))),(0,l.kt)("p",null,"The ",(0,l.kt)("inlineCode",{parentName:"p"},"$owm->getWeather()")," method takes the following parameters:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Default"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$query")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"mixed")),(0,l.kt)("td",{parentName:"tr",align:null},"--"),(0,l.kt)("td",{parentName:"tr",align:null},"See below")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$units")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"'),"|",(0,l.kt)("inlineCode",{parentName:"td"},'"metric"')),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},'"imperial"')),(0,l.kt)("td",{parentName:"tr",align:null},"Units to use")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"$lang")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"en")),(0,l.kt)("td",{parentName:"tr",align:null},"One of the languages listed at the very bottom of ",(0,l.kt)("a",{parentName:"td",href:"https://openweathermap.org/current#multi"},"the official documentation"))))),(0,l.kt)("h2",{id:"query-parameter"},(0,l.kt)("inlineCode",{parentName:"h2"},"$query")," parameter"),(0,l.kt)("p",null,"The first parameter determines the location to get weather data from.\nSeveral possible approaches are possible:"),(0,l.kt)("h3",{id:"by-city-name"},"by city name"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$weather = $owm->getWeather('Berlin,DE', $units, $lang);\n")),(0,l.kt)("h3",{id:"by-city-id"},"by city id"),(0,l.kt)("p",null,"One city id:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$weather = $owm->getWeather(2172797, $units, $lang);\n")),(0,l.kt)("p",null,"Multiple city ids"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"// WARNING: This uses a different method (getWeatherGroup) compared\n// to the other query formats (getWeather)!\n$weathers = $owm->getWeatherGroup([2172797, 2172798], $units, $lang);\nforeach ($weathers as $weather) {\n // Do something\n}\n")),(0,l.kt)("h3",{id:"by-zip-code"},"by zip code"),(0,l.kt)("p",null,"Specifying the country is optional."),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"// Hyderabad, India\n$weather = $owm->getWeather('zip:500001,IN', $units, $lang);\n")),(0,l.kt)("h3",{id:"by-coordinates"},"by coordinates"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$weather = $owm->getWeather(['lat' => 77.73038, 'lon' => 41.89604],\n $units, $lang);\n")),(0,l.kt)("h2",{id:"weather-object"},(0,l.kt)("inlineCode",{parentName:"h2"},"$weather")," object"),(0,l.kt)("p",null,"The returned object is an instance of ",(0,l.kt)("inlineCode",{parentName:"p"},"Cmfcmf\\OpenWeatherMap\\CurrentWeather"),".\nIt provides the following data:"),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Name"),(0,l.kt)("th",{parentName:"tr",align:null},"Type"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"lastUpdate")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\\u1e10ateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"When the data was last updated")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Note: This should be named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->avg")," and is only named ",(0,l.kt)("inlineCode",{parentName:"td"},"temperature->now")," for backwards compatibility! Returns the average current temperature for the given location (i.e, a big city might have multiple temperature measurement stations)")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->min")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Minimum current temperature for the given locaiton")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"temperature->max")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Maximum current temperature for the given locaiton")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"pressure")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Air pressure")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"humidity")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Humidity")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"sun->rise")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"Time of sunrise")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"sun->set")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeInterface")),(0,l.kt)("td",{parentName:"tr",align:null},"Time of sunset")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"wind->speed")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Wind speed")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"wind->direction")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Wind direction")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"clouds")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Cloudiness in percent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"precipitation")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"Unit")),(0,l.kt)("td",{parentName:"tr",align:null},"Recent precipitation")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"weather->id")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")),(0,l.kt)("td",{parentName:"tr",align:null},"Current weather phenomenon id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"weather->description")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Current weather description")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"weather->icon")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Current weather icon name. Use ",(0,l.kt)("inlineCode",{parentName:"td"},"weather->getIconUrl()")," to get the url to an icon from OpenWeatherMap")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->id")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"int")),(0,l.kt)("td",{parentName:"tr",align:null},"Internal city id")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->name")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"Name of the city")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->country")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"string")),(0,l.kt)("td",{parentName:"tr",align:null},"City country code")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->timezone")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"\\DateTimeZone"),"|",(0,l.kt)("inlineCode",{parentName:"td"},"null")),(0,l.kt)("td",{parentName:"tr",align:null},"City timezone")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lon")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City longitude")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"city->lat")),(0,l.kt)("td",{parentName:"tr",align:null},(0,l.kt)("inlineCode",{parentName:"td"},"float")),(0,l.kt)("td",{parentName:"tr",align:null},"City latitude")))),(0,l.kt)("h2",{id:"retrieving-raw-data"},"Retrieving raw data"),(0,l.kt)("h3",{id:"html"},"HTML"),(0,l.kt)("p",null,"You can also request the data as an HTML page:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-php"},"$html = $owm->getRawWeatherData('Berlin', $units, $lang, null, 'html');\n")),(0,l.kt)("p",null,"Result:"),(0,l.kt)("pre",null,(0,l.kt)("code",{parentName:"pre",className:"language-html"},'\n\n\n \n \n \n \n \n \n\n\n
All requests require a free API key (sometimes called "APPID") from OpenWeaterMap.
+To retrieve your API key, sign up for an OpenWeatherMap account.
After you received your API key, it might take a "couple of hours" for it to be activated! Other users reported that it took about 10 minutes until the API key worked.
Please also take note of the license OpenWeatherMap provides the data under. At the time of
+writing, all data is licensed under the CC BY-SA 4.0, even for paid accounts. However,
+remember that this project is not affiliated with OpenWeatherMap, this information may be
+outdated and I can't give you legal advice. Make sure to check on the terms and conditions
+yourself:
If something with your API key or account does not work as expected,
+please contact OpenWeatherMap directly
+instead of opening an issue, since I most likely cannot help you with your account.
+
+
+
+
\ No newline at end of file
diff --git a/docs/apis/air-pollution/index.html b/docs/apis/air-pollution/index.html
new file mode 100644
index 0000000..e4c576f
--- /dev/null
+++ b/docs/apis/air-pollution/index.html
@@ -0,0 +1,22 @@
+
+
+
+
+
+Air Pollution API | OpenWeatherMap PHP API
+
+
+
+
+
$lat / $lng: Latitude and longitude must be provided as strings, because
+the number of digits after the decimal point determines the search radius.
+Specifying more digits leads to closer results, but too many digits can lead
+to no result at all.
$date: Date to retrieve data from. "current" requests the newest available
+information. You can also specify a date in ISO 8601 format. More information on
+that can be found in the OpenWeatherMap documentation.
$co=$owm->getAirPollution("CO","52","13"); if($co===null){ // No data available }else{ foreach($co->valuesas$data){ echo$data["value"]; echo$data["value"]->getPrecision(); echo$data["pressure"]; } }
$no2=$owm->getAirPollution("NO2","52","13"); if($no2===null){ // No data available }else{ echo$no2->value; echo$no2->valueStratosphere; echo$no2->valueTroposphere; }
$so2=$owm->getAirPollution("SO2","52","13"); if($so2===null){ // No data available }else{ foreach($so2->valuesas$data){ echo$data["value"]; echo$data["value"]->getPrecision(); echo$data["pressure"]; } }
// WARNING: This uses a different method (getWeatherGroup) compared // to the other query formats (getWeather)! $weathers=$owm->getWeatherGroup([2172797,2172798],$units,$lang); foreach($weathersas$weather){ // Do something }
The returned object is an instance of Cmfcmf\OpenWeatherMap\CurrentWeather.
+It provides the following data:
Name
Type
Description
lastUpdate
\ḐateTimeInterface
When the data was last updated
temperature->now
Unit
Note: This should be named temperature->avg and is only named temperature->now for backwards compatibility! Returns the average current temperature for the given location (i.e, a big city might have multiple temperature measurement stations)
temperature->min
Unit
Minimum current temperature for the given locaiton
temperature->max
Unit
Maximum current temperature for the given locaiton
pressure
Unit
Air pressure
humidity
Unit
Humidity
sun->rise
\DateTimeInterface
Time of sunrise
sun->set
\DateTimeInterface
Time of sunset
wind->speed
Unit
Wind speed
wind->direction
Unit
Wind direction
clouds
Unit
Cloudiness in percent
precipitation
Unit
Recent precipitation
weather->id
int
Current weather phenomenon id
weather->description
string
Current weather description
weather->icon
string
Current weather icon name. Use weather->getIconUrl() to get the url to an icon from OpenWeatherMap
$forecast=$owm->getForecastUVIndex(52.520008,13.404954); foreach($forecastas$day){ echo"{$day->time->format('r')} will have an uv index of: $day->uvIndex"; }
Retrieve one month of four month old historic UV data of Berlin.
$history=$owm->getHistoricUVIndex(52.520008,13.404954, newDateTime('-4month'), newDateTime('-3month')); foreach($historyas$day){ echo"{$day->time->format('r')} had an uv index of: $day->uvIndex"; }
Number of days to retrieve the forecast for. If $days is between 1 and 5, the 5-day/3-hourly forecast API is used. If $days is between 6 and 16, the 16-day/daily forecast API is used.
You can use ->getDailyWeatherForecast() if instead if you want to retrieve a daily forecast even when a 3-horuly forecast is available.
The $forecast is an instance of Cmfcmf\OpenWeatherMap\Forecast that extends the Cmfcmf\OpenWeatherMap\CurrentWeather object.
Name
Type
Description
time->day
\DateTimeInterface
The day of the forecast
time->from
\DateTimeInterface
The exact start time of the forecast. For 16-day/daily forecasts, this corresponds to time->day. For 5-day/3-hourly forecasts, it corresponds to the start of the 3-hour window.
time->to
\DateTimeInterface
The exact end time of the forecast. For 16-day/daily forecasts, this corresponds to time->day at 23:59:59. For 5-day/3-hourly forecasts, it corresponds to the end of the 3-hour window.
...
...
All other properties from the CurrentWeather object, as described here.
Note: This should be named temperature->avg and is only named temperature->now for backwards compatibility! Returns the average temperature for the given location (i.e, a big city might have multiple temperature measurement stations)
I am open for pull requests to add support for other APIs from OpenWeatherMap
+as long as they do not require a paid subscription. That is because I have no
+means to test paid APIs without paying myself.
I you are integrating this project into a PHP framework, it most likely already comes with these.
+Otherwise, go through the lists of implementations on Packagist and choose ones that fit your project:
All APIs can be accessed through the Cmfcmf\OpenWeatherMap object.
+To construct this object, you need to supply your API key, the PSR-18-compatible
+HTTP client and the PSR-17-compatible HTTP request factory:
<?php useCmfcmf\OpenWeatherMap; useCmfcmf\OpenWeatherMap\Exceptionas OWMException; useHttp\Factory\Guzzle\RequestFactory; useHttp\Adapter\Guzzle6\Clientas GuzzleAdapter; // If you are not using a PHP framework that has included Composer's autoloader for you, // you'll need to `require` the autoloader script before working with this API: require'vendor/autoload.php'; // If you installed the recommended PSR-17/18 implementations, here's how to create the // necessary `$httpClient` and `$httpRequestFactory`: $httpRequestFactory=newRequestFactory(); $httpClient=GuzzleAdapter::createWithConfig([]); $owm=newOpenWeatherMap('YOUR-API-KEY',$httpClient,$httpRequestFactory); try{ $weather=$owm->getWeather('Berlin','metric','de'); }catch(OWMException$e){ echo'OpenWeatherMap exception: '.$e->getMessage().' (Code '.$e->getCode().').'; }catch(\Exception$e){ echo'General exception: '.$e->getMessage().' (Code '.$e->getCode().').'; } echo$weather->temperature;
Most values like temperature, precipitation, etc., are returned as instances of the
+Cmfcmf\OpenWeatherMap\Util\Unit class. These objects provide you with
+the value (e.g., 26.9),
+the unit (e.g., °C),
+and sometimes a description (e.g., heavy rain).
+To make this clearer, let's look at a concrete example:
You can automatically cache requests by supplying a PSR-6-compatible
+cache as the fourth constructor parameter and the time to live as the fifth parameter:
useCmfcmf\OpenWeatherMap; // Cache time in seconds, defaults to 600 = 10 minutes. $ttl=600; $owm=newOpenWeatherMap('YOUR-API-KEY',$httpClient,$httpRequestFactory, $cache,$ttl);
You can check whether the last request was cached by calling ->wasCached():
$owm->getRawWeatherData('Berlin'); if($owm->wasCached()){ echo"last request was cached"; }else{ echo"last request was not cached"; }
Make sure to handle exceptions appropriately.
+Whenever the OpenWeatherMap API returns an exception, it is converted into an instance of
+Cmfcmf\OpenWeatherMap\Exception.
+As a special case, the API will throw a Cmfcmf\OpenWeatherMap\NotFoundException if the city/location/coordinates you are querying cannot be found. This exception inherits from Cmfcmf\OpenWeatherMap\Exception.
If anything else goes wrong, an exception inheriting from \Exception is thrown.
useCmfcmf\OpenWeatherMap\Exceptionas OWMException; useCmfcmf\OpenWeatherMap\NotFoundExceptionas OWMNotFoundException; try{ $weather=$owm->getWeather('Berlin'); }catch(OWMNotFoundException$e){ // TODO: Handle "city was not found" exception // You can opt to skip the handler for `OWMNotFoundException`, because it extends `OWMException`. }catch(OWMException$e){ // TODO: Handle API exception }catch(\Exception$e){ // TODO: Handle general exception }
This project comes with support for five of the most popular free APIs:
Current Weather Data
16-day/daily Forecast Data
5-day/3-hourly Forecast Data
Air Pollution (CO, O3, SO2, NO2) Data
Ultraviolet Index Data
Easy to Use
The OpenWeatherMap APIs are poorly documented and oftentimes not easy to use. This project provides the necessary abstractions to make working with the API feel like a breeze.
Powered by modern PHP
Since version 3.x, this project works with PHP 7.x. It uses PSR-17 and PSR-18 for HTTP requests, as well as PSR-6 for caching.
+
+
+
+
\ No newline at end of file
diff --git a/search-index-docs-default-current.json b/search-index-docs-default-current.json
new file mode 100644
index 0000000..81a12c9
--- /dev/null
+++ b/search-index-docs-default-current.json
@@ -0,0 +1 @@
+{"documents":[{"id":1,"pageTitle":"API Key","sectionTitle":"API Key","sectionRoute":"/OpenWeatherMap-PHP-API/docs/api-key","type":"docs"},{"id":2,"pageTitle":"Air Pollution API","sectionTitle":"Air Pollution API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution","type":"docs"},{"id":3,"pageTitle":"Air Pollution API","sectionTitle":"Usage","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#usage","type":"docs"},{"id":4,"pageTitle":"Air Pollution API","sectionTitle":"Carbon Monoxide (CO)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#carbon-monoxide-co","type":"docs"},{"id":5,"pageTitle":"Air Pollution API","sectionTitle":"Ozone (O3)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#ozone-o3","type":"docs"},{"id":6,"pageTitle":"Air Pollution API","sectionTitle":"Nitrogen Dioxide (NO2)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#nitrogen-dioxide-no2","type":"docs"},{"id":7,"pageTitle":"Air Pollution API","sectionTitle":"Sulfor Dioxide (SO2)","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/air-pollution#sulfor-dioxide-so2","type":"docs"},{"id":34,"pageTitle":"Current Weather API","sectionTitle":"Current Weather API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather","type":"docs"},{"id":35,"pageTitle":"Current Weather API","sectionTitle":"$query parameter","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#query-parameter","type":"docs"},{"id":36,"pageTitle":"Current Weather API","sectionTitle":"by city name","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-city-name","type":"docs"},{"id":37,"pageTitle":"Current Weather API","sectionTitle":"by city id","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-city-id","type":"docs"},{"id":38,"pageTitle":"Current Weather API","sectionTitle":"by zip code","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-zip-code","type":"docs"},{"id":39,"pageTitle":"Current Weather API","sectionTitle":"by coordinates","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#by-coordinates","type":"docs"},{"id":40,"pageTitle":"Current Weather API","sectionTitle":"$weather object","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#weather-object","type":"docs"},{"id":41,"pageTitle":"Current Weather API","sectionTitle":"Retrieving raw data","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#retrieving-raw-data","type":"docs"},{"id":42,"pageTitle":"Current Weather API","sectionTitle":"HTML","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#html","type":"docs"},{"id":43,"pageTitle":"Current Weather API","sectionTitle":"JSON","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#json","type":"docs"},{"id":44,"pageTitle":"Current Weather API","sectionTitle":"XML","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/current-weather#xml","type":"docs"},{"id":18,"pageTitle":"Ultraviolet Index API","sectionTitle":"Ultraviolet Index API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index","type":"docs"},{"id":19,"pageTitle":"Ultraviolet Index API","sectionTitle":"Current UV index","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#current-uv-index","type":"docs"},{"id":20,"pageTitle":"Ultraviolet Index API","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#example","type":"docs"},{"id":21,"pageTitle":"Ultraviolet Index API","sectionTitle":"Forecast UV index","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#forecast-uv-index","type":"docs"},{"id":22,"pageTitle":"Ultraviolet Index API","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#example-1","type":"docs"},{"id":23,"pageTitle":"Ultraviolet Index API","sectionTitle":"Historic UV index","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#historic-uv-index","type":"docs"},{"id":24,"pageTitle":"Ultraviolet Index API","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/uv-index#example-2","type":"docs"},{"id":8,"pageTitle":"Weather Forecast API","sectionTitle":"Weather Forecast API","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast","type":"docs"},{"id":9,"pageTitle":"Weather Forecast API","sectionTitle":"$query parameter","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#query-parameter","type":"docs"},{"id":10,"pageTitle":"Weather Forecast API","sectionTitle":"by city name","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-city-name","type":"docs"},{"id":11,"pageTitle":"Weather Forecast API","sectionTitle":"by city id","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-city-id","type":"docs"},{"id":12,"pageTitle":"Weather Forecast API","sectionTitle":"by zip code","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-zip-code","type":"docs"},{"id":13,"pageTitle":"Weather Forecast API","sectionTitle":"by coordinates","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#by-coordinates","type":"docs"},{"id":14,"pageTitle":"Weather Forecast API","sectionTitle":"$forecasts object","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#forecasts-object","type":"docs"},{"id":15,"pageTitle":"Weather Forecast API","sectionTitle":"$forecast object","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#forecast-object","type":"docs"},{"id":16,"pageTitle":"Weather Forecast API","sectionTitle":"only for 5-day/3-hourly forecasts","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#only-for-5-day3-hourly-forecasts","type":"docs"},{"id":17,"pageTitle":"Weather Forecast API","sectionTitle":"only for 16-day/hourly forecasts","sectionRoute":"/OpenWeatherMap-PHP-API/docs/apis/weather-forecast#only-for-16-dayhourly-forecasts","type":"docs"},{"id":25,"pageTitle":"Getting Started","sectionTitle":"Getting Started","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started","type":"docs"},{"id":26,"pageTitle":"Getting Started","sectionTitle":"PHP Requirements","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started#php-requirements","type":"docs"},{"id":27,"pageTitle":"Getting Started","sectionTitle":"Installation","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started#installation","type":"docs"},{"id":28,"pageTitle":"Getting Started","sectionTitle":"Required PSR-17/-18 dependencies","sectionRoute":"/OpenWeatherMap-PHP-API/docs/getting-started#required-psr-17-18-dependencies","type":"docs"},{"id":29,"pageTitle":"Usage","sectionTitle":"Usage","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage","type":"docs"},{"id":30,"pageTitle":"Usage","sectionTitle":"Example","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#example","type":"docs"},{"id":31,"pageTitle":"Usage","sectionTitle":"Unit objects","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#unit-objects","type":"docs"},{"id":32,"pageTitle":"Usage","sectionTitle":"Caching requests","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#caching-requests","type":"docs"},{"id":33,"pageTitle":"Usage","sectionTitle":"Exception handling","sectionRoute":"/OpenWeatherMap-PHP-API/docs/usage#exception-handling","type":"docs"}],"index":{"version":"2.3.9","fields":["title","content","tags"],"fieldVectors":[["title/1",[0,1.026,1,2.149]],["content/1",[0,1.548,1,3.243,2,1.26,3,1.26,4,2.392,5,2.032,6,2.032,7,2.032,8,2.392,9,0.901,10,2.392,11,2.032,12,1.959,13,4.884,14,2.392,15,2.722,16,2.392,17,2.032,18,2.392,19,2.392,20,2.392,21,2.392,22,2.032,23,2.032,24,2.392,25,3.08,26,3.08,27,1.478,28,3.625,29,1.361,30,1.069,31,3.625,32,1.26,33,2.392,34,2.392,35,2.392,36,2.392,37,1.796,38,2.032,39,2.392,40,1.619,41,2.392,42,2.032,43,2.392,44,2.392,45,2.392,46,2.392,47,2.392,48,1.796,49,2.032,50,2.032,51,2.392,52,2.032,53,2.392,54,2.392,55,2.392,56,1.796,57,2.392,58,2.392,59,2.392,60,2.032,61,2.032,62,2.392,63,2.392]],["tags/1",[]],["title/2",[0,0.856,64,2.18,65,2.467]],["content/2",[0,1.211,9,1.546,12,1.647,66,2.78,67,1.647,68,1.073,69,2.537,70,2.78,71,1.877,72,1.647,73,2.537,74,2.537,75,3.489,76,3.489,77,2.537,78,3.489,79,2.537,80,3.489,81,3.981,82,2.537,83,3.489,84,2.537]],["tags/2",[]],["title/3",[85,3.685]],["content/3",[2,1.418,9,1.014,12,1.08,29,1.531,30,0.794,42,3.364,67,1.588,74,1.663,77,2.446,79,1.663,82,1.663,84,1.663,86,2.301,87,1.418,88,2.972,89,0.579,90,3.959,91,1.822,92,1.822,93,1.663,94,2.287,95,4.696,96,2.691,97,2.691,98,2.021,99,2.691,100,2.691,101,2.446,102,3.959,103,3.959,104,2.691,105,2.68,106,2.691,107,5.178,108,2.691,109,1.531,110,2.691,111,2.691,112,2.287,113,2.021,114,0.334,115,2.691,116,1.531,117,1.319,118,2.021,119,2.691,120,2.691,121,2.691]],["tags/3",[]],["title/4",[75,2.467,76,2.467,77,1.794]],["content/4",[30,1.506,77,3.529,89,0.711,109,2.204,114,0.481,117,1.898,122,3.874,123,2.623,124,2.623,125,2.041,126,2.204,127,2.611,128,4.339,129,3.292,130,3.292]],["tags/4",[]],["title/5",[78,2.955,79,2.149]],["content/5",[30,1.288,79,3.736,89,0.712,109,2.484,114,0.542,117,2.14,123,2.956,124,2.956,125,2.3,127,1.997,131,4.367]],["tags/5",[]],["title/6",[80,2.467,81,2.18,82,1.794]],["content/6",[30,1.197,82,3.956,89,0.7,109,2.308,114,0.504,117,1.988,123,2.747,124,2.747,125,2.137,127,2.67,132,4.057,133,4.057,134,4.057]],["tags/6",[]],["title/7",[81,2.18,83,2.467,84,1.794]],["content/7",[30,1.506,84,3.529,89,0.711,109,2.204,114,0.481,117,1.898,123,2.623,124,2.623,125,2.041,126,2.204,127,2.611,128,4.339,129,3.292,130,3.292,135,3.874]],["tags/7",[]],["title/34",[0,0.856,67,1.165,136,0.806]],["content/34",[0,1.038,9,1.325,12,1.411,15,2.641,30,1.038,66,2.381,67,1.411,73,2.174,74,2.957,86,1.724,87,1.853,93,2.174,114,0.437,136,0.977,137,2.989,138,2.641,139,2.174,140,1.853,141,1.609,142,2.641,143,1.724,144,2.001,145,2.989,146,2.989,147,2.989,148,1.412,149,2.989,150,2.989,151,1.505,152,1.411,153,2.989,154,2.989,155,2.641,156,2.989,157,2.641,158,2.641]],["tags/34",[]],["title/35",[140,1.832,144,1.978]],["content/35",[30,1.454,98,3.702,136,1.369,140,2.597,159,4.19,160,3.047,161,4.19,162,5.051,163,4.19]],["tags/35",[]],["title/36",[141,1.59,164,1.395]],["content/36",[89,0.525,101,3.091,114,0.621,136,1.389,148,1.476,152,2.006,165,2.846,166,3.386,167,5.002]],["tags/36",[]],["title/37",[164,1.395,168,1.978]],["content/37",[56,2.669,87,1.872,89,0.678,112,3.02,114,0.598,126,2.022,136,1.628,137,3.02,138,2.669,144,2.022,148,1.422,151,1.521,152,1.933,164,1.933,168,2.741,169,3.554,170,2.669,171,3.554,172,3.554,173,3.554,174,3.554,175,3.554,176,3.554]],["tags/37",[]],["title/38",[177,2.955,178,2.149]],["content/38",[89,0.613,101,2.962,114,0.595,136,1.331,148,1.414,152,1.923,165,2.726,166,3.245,179,4.073,180,4.073,181,4.793]],["tags/38",[]],["title/39",[182,3.685]],["content/39",[89,0.665,114,0.603,136,1.35,148,1.434,152,1.95,183,4.861,184,4.131,185,2.561,186,4.131]],["tags/39",[]],["title/40",[136,0.966,187,1.488]],["content/40",[12,0.661,27,1.018,29,0.937,30,0.796,32,1.422,64,1.237,67,1.887,86,0.807,88,1.237,91,1.115,92,1.115,93,2.452,116,1.536,136,1.379,139,1.018,141,2.151,143,1.681,148,1.584,151,0.705,160,1.018,164,2.359,165,1.536,168,2.257,170,1.237,178,1.018,185,0.868,187,0.705,188,0.937,189,1.399,190,1.399,191,1.399,192,1.237,193,1.399,194,3.318,195,1.668,196,1.399,197,1.399,198,1.018,199,1.399,200,2.915,201,1.399,202,1.399,203,1.399,204,1.399,205,1.237,206,1.237,207,2.294,208,1.237,209,1.237,210,2.294,211,2.294,212,2.699,213,1.647,214,2.294,215,1.647,216,1.399,217,1.647,218,3.372,219,2.699,220,2.699,221,1.647,222,1.647,223,1.647,224,2.294,225,1.647,226,2.027,227,1.647,228,3.43,229,1.647,230,1.647,231,1.399,232,2.294,233,1.399,234,2.294]],["tags/40",[]],["title/41",[9,1.093,30,0.856,235,2.903]],["content/41",[]],["tags/41",[]],["title/42",[236,3.685]],["content/42",[2,0.679,12,0.517,30,0.38,52,1.095,67,0.517,89,0.436,105,0.872,114,0.16,125,0.679,136,0.611,148,0.38,152,0.517,157,0.968,164,0.517,210,1.095,211,1.095,218,1.095,236,3.531,237,1.289,238,0.872,239,1.289,240,1.289,241,2.199,242,4.155,243,1.289,244,0.872,245,1.289,246,1.289,247,2.199,248,2.199,249,1.289,250,1.289,251,1.289,252,1.289,253,1.289,254,1.651,255,1.289,256,1.289,257,0.968,258,1.289,259,1.289,260,1.095,261,2.199,262,5.833,263,1.289,264,4.436,265,2.876,266,4.674,267,2.199,268,2.199,269,1.289,270,1.289,271,2.876,272,5.054,273,2.876,274,1.289,275,4.674,276,4.674,277,4.436,278,1.289,279,1.289,280,1.289,281,1.289,282,1.289,283,1.289,284,2.199,285,1.289,286,1.289,287,1.289,288,1.289,289,1.289,290,2.199,291,1.289,292,1.289,293,1.289,294,1.289,295,1.289,296,1.289,297,1.289,298,1.289,299,1.289,300,1.289,301,1.289,302,1.289,303,1.289,304,3.399,305,3.399,306,3.399,307,3.399,308,1.289,309,1.289,310,1.289,311,1.289,312,1.289,313,1.289,314,1.289,315,1.289,316,1.289,317,1.289,318,1.289,319,1.289,320,1.289,321,1.289,322,1.289,323,1.289,324,1.289]],["tags/42",[]],["title/43",[325,3.256]],["content/43",[89,0.612,105,2.747,114,0.504,125,2.137,238,2.747,325,3.951,326,2.747,327,3.047,328,4.057,329,4.057,330,4.057,331,4.057,332,4.057,333,4.057,334,4.057,335,4.057,336,4.057,337,4.057,338,4.057,339,4.057,340,4.057,341,4.057]],["tags/43",[]],["title/44",[342,3.685]],["content/44",[89,0.323,105,2.083,114,0.382,125,1.621,238,2.083,244,2.083,326,2.083,327,2.31,342,4.304,343,3.077,344,3.077,345,3.077,346,3.077,347,3.077,348,3.077,349,3.077,350,3.077,351,5.065,352,3.077,353,3.077,354,3.077,355,3.077,356,3.077,357,3.077,358,3.077,359,3.077,360,3.077,361,3.077,362,3.077,363,3.077,364,3.077,365,3.077,366,3.077,367,3.077,368,3.077,369,3.077,370,3.077,371,3.077,372,3.077,373,3.077,374,3.077,375,3.077,376,3.077,377,3.077,378,3.077,379,3.077,380,3.077,381,3.077]],["tags/44",[]],["title/18",[0,0.856,70,1.965,71,1.028]],["content/18",[0,1.394,9,1.78,12,1.896,66,3.2,67,1.896,68,1.235,69,2.921,70,3.2,71,2.051,72,1.896,73,2.921,74,2.921]],["tags/18",[]],["title/19",[67,1.165,71,1.028,72,1.165]],["content/19",[9,1.666,32,2.33,67,1.774,71,1.968,72,2.23,89,0.464,91,2.994,92,2.994,114,0.549,117,2.167,160,2.733,185,2.33,382,4.423,383,3.321,384,2.733,385,4.423]],["tags/19",[]],["title/20",[386,2.679]],["content/20",[67,2.286,71,2.017,72,2.286,89,0.482,114,0.571,127,2.104,384,3.825,387,3.909,388,4.6,389,3.454]],["tags/20",[]],["title/21",[68,0.759,71,1.028,72,1.165]],["content/21",[9,1.624,11,3.664,68,1.127,71,1.526,72,1.73,89,0.574,114,0.535,116,2.453,117,2.113,185,2.271,187,1.845,244,3.704,384,2.665,390,1.845,391,4.312,392,4.312,393,4.312,394,4.312]],["tags/21",[]],["title/22",[386,2.679]],["content/22",[32,2.33,68,1.453,71,1.566,72,1.774,89,0.638,114,0.549,126,2.516,127,2.023,384,2.733,389,3.321,390,2.602,395,4.423,396,3.758]],["tags/22",[]],["title/23",[69,1.794,71,1.028,72,1.165]],["content/23",[9,1.756,30,1.375,69,2.882,71,1.651,72,1.87,89,0.489,114,0.579,185,2.456,397,3.962,398,3.501,399,4.663,400,4.663,401,3.962,402,4.663]],["tags/23",[]],["title/24",[386,2.679]],["content/24",[9,1.381,30,1.082,32,1.932,69,2.267,71,1.298,72,1.975,87,1.932,89,0.583,114,0.455,126,2.086,127,1.677,384,2.267,387,3.117,389,2.754,390,2.377,396,3.117,401,4.183,403,4.922,404,3.668,405,3.668,406,3.668,407,3.332,408,4.922,409,3.668,410,3.668]],["tags/24",[]],["title/8",[0,0.856,68,0.759,136,0.806]],["content/8",[0,1.229,7,1.876,9,1.569,12,0.885,15,1.657,37,1.657,60,1.876,66,1.494,68,1.506,73,1.364,74,2.107,86,1.082,87,1.163,89,0.357,93,2.107,94,1.876,109,1.256,114,0.274,136,0.613,138,1.657,139,1.364,140,1.163,141,1.009,142,1.657,143,1.082,144,1.256,145,1.876,146,1.876,147,1.876,148,1.006,149,1.876,150,1.876,151,2.004,152,0.885,153,1.876,154,1.876,155,1.657,156,1.876,157,1.657,158,1.657,216,1.876,226,1.657,260,3.539,390,2.004,397,1.876,411,3.427,412,3.127,413,3.171,414,2.82,415,2.82,416,2.207,417,2.207,418,2.207,419,3.409,420,1.876,421,2.207,422,2.207,423,1.876,424,2.207]],["tags/8",[]],["title/9",[140,1.832,144,1.978]],["content/9",[30,1.454,98,3.702,136,1.369,140,2.597,159,4.19,160,3.047,161,4.19,162,5.051,163,4.19]],["tags/9",[]],["title/10",[141,1.59,164,1.395]],["content/10",[68,1.27,89,0.618,101,3.004,114,0.603,148,1.434,152,1.95,165,2.765,166,3.291,390,2.08,425,4.861]],["tags/10",[]],["title/11",[164,1.395,168,1.978]],["content/11",[68,1.27,87,2.561,89,0.618,114,0.603,148,1.434,152,1.95,164,1.95,168,2.765,390,2.08,426,4.861]],["tags/11",[]],["title/12",[177,2.955,178,2.149]],["content/12",[68,1.219,89,0.653,101,2.882,114,0.579,148,1.375,152,1.87,165,2.653,166,3.157,179,3.962,180,3.962,390,1.995,427,4.663]],["tags/12",[]],["title/13",[182,3.685]],["content/13",[68,1.235,89,0.685,114,0.587,148,1.394,152,1.896,184,4.017,185,2.49,186,4.017,390,2.022,428,4.727]],["tags/13",[]],["title/14",[68,0.909,187,1.488]],["content/14",[9,1.1,29,1.661,30,1.239,56,2.192,68,1.406,86,1.431,88,2.192,89,0.516,91,1.977,92,1.977,93,2.596,126,1.661,139,1.804,141,2.25,143,1.431,164,2.656,165,2.39,168,2.39,178,1.804,185,1.538,187,1.249,188,1.661,190,2.481,191,2.481,192,2.192,193,2.481,226,2.192,231,2.481,232,3.57,233,2.481,234,3.57,429,2.92,430,2.92,431,2.92]],["tags/14",[]],["title/15",[68,0.909,187,1.488]],["content/15",[17,3.443,32,3.174,68,1.614,73,3.249,86,1.361,89,0.425,141,1.27,143,1.361,187,1.734,188,1.58,189,2.361,214,4.065,390,2.249,398,3.043,411,2.743,412,3.043,413,2.743,414,2.743,415,2.743,423,3.443,432,2.778,433,2.361,434,4.052,435,4.052,436,4.052,437,2.778,438,2.778,439,2.778,440,2.778,441,2.778]],["tags/15",[]],["title/16",[68,0.651,413,1.687,414,1.687,415,1.687]],["content/16",[27,2.109,86,1.672,116,1.941,141,2.448,143,1.672,148,1.579,160,2.109,164,1.369,170,2.563,194,4.083,195,2.897,196,2.9,197,2.9,198,2.109,199,2.9,200,4.55,201,2.9,202,2.9,203,2.9,204,2.9,205,2.563,206,2.563,207,3.983,208,2.563,209,2.563]],["tags/16",[]],["title/17",[68,0.759,411,1.965,442,2.903]],["content/17",[37,3.67,86,1.778,141,1.659,143,1.778,148,1.875,194,4.248,195,2.243,205,2.725,206,2.725,208,2.725,209,2.725,390,2.365,443,4.887,444,4.887]],["tags/17",[]],["title/25",[398,2.611,445,3.478]],["content/25",[0,1.741,2,1.512,3,1.512,12,1.955,26,2.44,27,1.774,29,1.633,30,1.224,38,3.527,40,1.944,61,2.44,64,2.156,65,2.44,67,1.152,68,0.75,70,1.944,71,1.016,77,1.774,79,1.774,82,1.774,84,1.774,136,1.152,139,1.774,158,2.156,411,1.944,412,2.156,413,1.944,414,1.944,415,1.944,446,2.361,447,2.156,448,2.871,449,2.871,450,2.871,451,2.871,452,2.871,453,2.871,454,2.871,455,4.15,456,2.871,457,2.871,458,2.871,459,2.871,460,2.871,461,2.871,462,2.871,463,2.871,464,2.871]],["tags/25",[]],["title/26",[3,1.832,446,1.978]],["content/26",[151,1.778,244,2.813,325,3.12,383,3.12,446,3.756,465,4.155,466,4.155,467,4.155,468,4.155,469,3.531,470,4.155,471,4.155,472,4.155,473,5.906,474,4.155,475,4.155]],["tags/26",[]],["title/27",[476,2.935]],["content/27",[0,1.414,3,2.525,40,3.245,113,3.599,151,2.051,446,2.726,476,3.245,477,4.073,478,4.793,479,4.965,480,4.793]],["tags/27",[]],["title/28",[3,1.15,118,1.639,481,1.349,482,1.639,483,1.639]],["content/28",[3,1.525,40,2.826,87,1.525,89,0.438,118,2.174,155,3.677,198,3.312,254,3.677,446,2.375,447,2.174,476,1.96,477,2.46,479,2.46,481,3.312,482,3.135,483,3.135,484,2.174,485,2.895,486,2.895,487,3.548,488,4.829,489,2.895,490,2.46,491,2.895,492,2.895,493,2.895,494,2.895,495,2.46,496,4.175,497,2.895,498,2.895,499,2.895,500,2.174,501,2.895,502,2.895,503,2.895,504,2.895,505,2.895]],["tags/28",[]],["title/29",[85,3.685]],["content/29",[0,1.604,1,2.957,2,1.853,27,2.174,89,0.369,114,0.594,151,1.505,187,2.048,188,2.001,195,2.174,198,2.957,254,3.593,407,2.381,447,2.641,481,2.957,482,2.641,483,2.641,484,2.641,487,2.989,495,2.989,506,3.517,507,4.084,508,3.517,509,2.989,510,2.641,511,2.641,512,2.641,513,3.517]],["tags/29",[]],["title/30",[386,2.679]],["content/30",[0,0.949,1,1.266,3,1.695,12,0.822,25,1.742,89,0.721,114,0.399,127,1.817,136,0.893,151,2.092,178,1.988,194,1.266,326,1.387,327,1.539,383,1.539,407,2.178,446,1.83,469,1.742,476,1.387,481,1.266,484,1.539,488,1.742,490,1.742,500,1.539,507,1.539,510,1.539,511,2.983,512,2.983,514,1.742,515,1.742,516,2.049,517,2.049,518,2.049,519,2.049,520,3.218,521,2.049,522,2.049,523,2.049,524,2.049,525,2.049,526,2.049,527,2.049,528,2.049,529,2.049,530,2.049,531,1.539,532,2.049,533,4.41,534,2.416,535,3.218,536,3.218,537,2.049,538,1.742]],["tags/30",[]],["title/31",[148,1.026,187,1.488]],["content/31",[5,2.38,29,1.593,48,2.103,89,0.662,114,0.348,116,1.593,117,1.997,136,1.132,143,1.372,148,0.826,187,1.198,188,1.593,194,3.9,195,1.731,224,2.38,326,1.896,386,1.731,531,2.103,539,2.801,540,4.076,541,2.801,542,4.805,543,5.277,544,5.277,545,2.801,546,2.801,547,2.801,548,2.801,549,2.801,550,2.801,551,2.801,552,2.801,553,2.801,554,2.801,555,2.801,556,2.801]],["tags/31",[]],["title/32",[2,1.832,257,2.611]],["content/32",[0,0.833,1,1.745,2,2.791,6,2.4,22,2.4,23,2.4,32,2.16,50,2.4,89,0.651,114,0.599,127,1.875,140,2.16,142,2.12,151,1.208,192,3.625,198,1.745,238,1.912,257,4.547,407,1.912,420,2.4,481,1.745,507,2.12,509,2.4,510,2.12,511,2.12,512,2.12,557,2.824,558,2.824,559,2.824,560,2.824,561,2.824,562,2.824,563,4.1,564,4.1,565,2.824,566,4.1]],["tags/32",[]],["title/33",[534,2.611,567,2.955]],["content/33",[0,1.308,12,0.98,48,1.834,49,2.076,89,0.67,113,2.765,114,0.303,116,1.39,136,0.678,144,1.39,151,1.576,164,0.98,188,1.39,433,2.076,500,1.834,514,3.768,515,3.768,531,1.834,533,3.768,534,4.571,538,2.076,567,4.195,568,2.443,569,2.443,570,2.443,571,2.443,572,2.443,573,2.443,574,3.683,575,2.443,576,3.683,577,2.443,578,2.443,579,2.443,580,2.443,581,4.433,582,4.433,583,4.433,584,2.443,585,2.443,586,2.443]],["tags/33",[]]],"invertedIndex":[["",{"_index":89,"title":{},"content":{"3":{},"4":{},"5":{},"6":{},"7":{},"8":{},"10":{},"11":{},"12":{},"13":{},"14":{},"15":{},"19":{},"20":{},"21":{},"22":{},"23":{},"24":{},"28":{},"29":{},"30":{},"31":{},"32":{},"33":{},"36":{},"37":{},"38":{},"39":{},"42":{},"43":{},"44":{}},"tags":{}}],["0",{"_index":290,"title":{},"content":{"42":{}},"tags":{}}],["01",{"_index":351,"title":{},"content":{"44":{}},"tags":{}}],["0pt",{"_index":295,"title":{},"content":{"42":{}},"tags":{}}],["0px;\">berlinde3600(function(i,s,o,g,r,a,m){i['googleanalyticsobject']=r;i[r]=i[r]||funct",{"_index":314,"title":{},"content":{"42":{}},"tags":{}}],["scroll",{"_index":289,"title":{},"content":{"42":{}},"tags":{}}],["search",{"_index":99,"title":{},"content":{"3":{}},"tags":{}}],["second",{"_index":562,"title":{},"content":{"32":{}},"tags":{}}],["section",{"_index":121,"title":{},"content":{"3":{}},"tags":{}}],["see",{"_index":146,"title":{},"content":{"8":{},"34":{}},"tags":{}}],["set",{"_index":216,"title":{},"content":{"8":{},"40":{}},"tags":{}}],["set=\"2020",{"_index":353,"title":{},"content":{"44":{}},"tags":{}}],["sever",{"_index":161,"title":{},"content":{"9":{},"35":{}},"tags":{}}],["sign",{"_index":10,"title":{},"content":{"1":{}},"tags":{}}],["simplexml",{"_index":475,"title":{},"content":{"26":{}},"tags":{}}],["size",{"_index":264,"title":{},"content":{"42":{}},"tags":{}}],["skip",{"_index":585,"title":{},"content":{"33":{}},"tags":{}}],["small",{"_index":307,"title":{},"content":{"42":{}},"tags":{}}],["small;\">cloud",{"_index":302,"title":{},"content":{"42":{}},"tags":{}}],["so2",{"_index":84,"title":{"7":{}},"content":{"2":{},"3":{},"7":{},"25":{}},"tags":{}}],["someth",{"_index":56,"title":{},"content":{"1":{},"14":{},"37":{}},"tags":{}}],["sometim",{"_index":5,"title":{},"content":{"1":{},"31":{}},"tags":{}}],["southwest\">more..12.73°chttps://christianflach.de/OpenWeatherMap-PHP-API/docs/api-keyweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/air-pollutionweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/current-weatherweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/uv-indexweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/apis/weather-forecastweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/getting-startedweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/docs/usageweekly0.5https://christianflach.de/OpenWeatherMap-PHP-API/weekly0.5
\ No newline at end of file