1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="ie=edge"/><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"/><meta name="generator" content="Gatsby 5.16.1"/><meta name="theme-color" content="#ebf8ff"/><meta data-react-helmet="true" name="description" content="Read interesting and informative articles about Geoapify Location Platform and GIS technologies"/><meta data-react-helmet="true" name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1"/><meta data-react-helmet="true" property="og:locale" content="en_US"/><meta data-react-helmet="true" property="og:type" content="website"/><meta data-react-helmet="true" property="og:title" content="Geoapify Blog"/><meta data-react-helmet="true" property="og:description" content="Read interesting and informative articles about Geoapify Location Platform and GIS technologies"/><meta data-react-helmet="true" property="og:url" content="https://www.geoapify.com/blog/"/><meta data-react-helmet="true" property="og:site_name" content="Geoapify"/><meta data-react-helmet="true" property="og:image:width"/><meta data-react-helmet="true" property="og:image:height"/><meta data-react-helmet="true" property="og:image:alt" content="Geoapify Blog"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:creator" content="@Geoapify"/><meta data-react-helmet="true" name="twitter:site" content="@Geoapify"/><meta data-react-helmet="true" name="twitter:title" content="Geoapify Blog"/><meta data-react-helmet="true" name="twitter:description" content="Read interesting and informative articles about Geoapify Location Platform and GIS technologies"/><meta data-react-helmet="true" property="article:publisher" content="https://www.facebook.com/pg/Geoapify"/><style data-href="/styles.ca7be5f19d4a37fd1751.css" data-identity="gatsby-global-css">span:has(.gatsby-remark-copy-button-container){float:right;margin-bottom:-1.6rem;position:relative;top:-10px}.gatsby-remark-copy-button-container{display:flex;justify-content:flex-end;pointer-events:none;touch-action:none}.gatsby-remark-copy-button{align-items:center;background-color:#358ccb;border:1px solid #fff;border-radius:4px;color:#fff;cursor:pointer;display:flex;min-height:32px;min-width:32px;padding:4px;pointer-events:auto;z-index:100}.gatsby-remark-copy-button .copy-icon,.gatsby-remark-copy-button .success-icon{animation:fadeInFromNone 1s ease-out;margin:auto}.gatsby-remark-copy-button .success-icon{display:none}@keyframes fadeInFromNone{0%{display:none;opacity:0}1%{display:block;opacity:0}to{display:block;opacity:1}} 2 3/* 4! tailwindcss v3.4.4 | MIT License | https://tailwindcss.com 5*/*,:after,:before{border:0 solid #edf2f7;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}
5button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#cbd5e0;opacity:1}input::placeholder,textarea::placeholder{color:#cbd5e0;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(66,153,225,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(66,153,225,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }a{color:hsl(272 52% 54%/var(--tw-text-opacity))}a,a:hover{--tw-text-opacity:1}a:hover{color:hsl(272 52% 49%/var(--tw-text-opacity))}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1600px){.container{max-width:1600px}}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-x-0{left:0;right:0}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.right-3{right:.75rem}.top-0{top:0}.top-10{top:2.5rem}.top-2{top:.5rem}.top-20{top:5rem}
5.top-5{top:1.25rem}.isolate{isolation:isolate}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.order-1{order:1}.order-2{order:2}.order-last{order:9999}.\!m-0{margin:0!important}.m-4{margin:1rem}.m-5{margin:1.25rem}.m-auto{margin:auto}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-10{margin-left:2.5rem;margin-right:2.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3{margin-left:.75rem;margin-right:.75rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-bottom:.25rem;margin-top:.25rem}.my-10{margin-bottom:2.5rem;margin-top:2.5rem}.my-12{margin-bottom:3rem;margin-top:3rem}.my-2{margin-bottom:.5rem;margin-top:.5rem}.my-20{margin-bottom:5rem;margin-top:5rem}.my-3{margin-bottom:.75rem;margin-top:.75rem}.my-5{margin-bottom:1.25rem;margin-top:1.25rem}.my-8{margin-bottom:2rem;margin-top:2rem}.my-auto{margin-bottom:auto;margin-top:auto}.-ml-px{margin-left:-1px}.-mt-20{margin-top:-5rem}.-mt-24{margin-top:-6rem}.-mt-28{margin-top:-7rem}.-mt-4{margin-top:-1rem}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-24{margin-bottom:6rem}.mb-3{margin-bottom:.75rem}.mb-32{margin-bottom:8rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-24{margin-left:6rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.ml-5{margin-left:1.25rem}.ml-6{margin-left:1.5rem}.mr-0{margin-right:0}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-4{margin-right:1rem}.mr-5{margin-right:1.25rem}.mr-6{margin-right:1.5rem}.mr-8{margin-right:2rem}.mt-0{margin-top:0}.mt-1{margin-top:.25rem}.mt-10{margin-top:2.5rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-20{margin-top:5rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mt-auto{margin-top:auto}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-cell{display:table-cell}.table-row{display:table-row}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-28{height:7rem}.h-4{height:1rem}.h-48{height:12rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-\[100px\]{height:100px}.h-full{height:100%}.h-screen{height:100vh}.w-1\/4{width:25%}.w-12{width:3rem}.w-14{width:3.5rem}.w-32{width:8rem}.w-4{width:1rem}.w-40{width:10rem}.w-48{width:12rem}.w-6{width:1.5rem}.w-60{width:15rem}.w-7{width:1.75rem}.w-auto{width:auto}.w-full{width:100%}.min-w-icon{min-width:3rem}.max-w-6xl{max-width:72rem}.max-w-full{max-width:100%}.max-w-icon{max-width:3rem}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-screen-lg{max-width:1024px}.max-w-screen-md{max-width:768px}.max-w-screen-sm{max-width:640px}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-50{flex:0 45%}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.table-fixed{table-layout:fixed}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.resize{resize:both}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-8{gap:2rem}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.75rem*var(--tw-space-y-reverse));margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)))}.self-center{align-self:center}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis}.truncate,.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-full{border-radius:9999px}
5.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-none{border-radius:0}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-l-none{border-bottom-left-radius:0;border-top-left-radius:0}.rounded-r-none{border-bottom-right-radius:0;border-top-right-radius:0}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.\!border-gray-300{--tw-border-opacity:1!important;border-color:rgb(226 232 240/var(--tw-border-opacity))!important}.border-\[\#10B981\]{--tw-border-opacity:1;border-color:rgb(16 185 129/var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgb(237 242 247/var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity))}.border-gray-400{--tw-border-opacity:1;border-color:rgb(203 213 224/var(--tw-border-opacity))}.border-gray-700{--tw-border-opacity:1;border-color:rgb(74 85 104/var(--tw-border-opacity))}.border-indigo-300{--tw-border-opacity:1;border-color:rgb(163 191 250/var(--tw-border-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgb(235 248 255/var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgb(247 250 252/var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgb(237 242 247/var(--tw-bg-opacity))}.bg-gray-300{--tw-bg-opacity:1;background-color:rgb(226 232 240/var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgb(113 128 150/var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(240 255 244/var(--tw-bg-opacity))}.bg-indigo-100{--tw-bg-opacity:1;background-color:rgb(235 244 255/var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity:1;background-color:rgb(255 250 240/var(--tw-bg-opacity))}.bg-primary{--tw-bg-opacity:1;background-color:hsl(272 52% 54%/var(--tw-bg-opacity))}.bg-primary-light{--tw-bg-opacity:1;background-color:hsl(274 70% 96%/var(--tw-bg-opacity))}.bg-purple-500{--tw-bg-opacity:1;background-color:rgb(159 122 234/var(--tw-bg-opacity))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(255 245 245/var(--tw-bg-opacity))}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(245 101 101/var(--tw-bg-opacity))}.bg-secondary{--tw-bg-opacity:1;background-color:hsl(202 92% 69%/var(--tw-bg-opacity))}.bg-teal-500{--tw-bg-opacity:1;background-color:rgb(56 178 172/var(--tw-bg-opacity))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.via-white{--tw-gradient-to:hsla(0,0%,100%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),#fff var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-gray-100{--tw-gradient-to:#f7fafc var(--tw-gradient-to-position)}.\!p-0{padding:0!important}.\!p-6{padding:1.5rem!important}.p-0{padding:0}.p-1{padding:.25rem}.p-20{padding:5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.\!px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-1{padding-left:.25rem;padding-right:.25rem}.px-12{padding-left:3rem;padding-right:3rem}.px-16{padding-left:4rem;padding-right:4rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-32{padding-bottom:8rem;padding-top:8rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-5{padding-bottom:1.25rem;padding-top:1.25rem}.pb-10{padding-bottom:2.5rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-24{padding-bottom:6rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pr-0{padding-right:0}.pr-2{padding-right:.5rem}.pr-3{padding-right:.75rem}.pr-60{padding-right:15rem}.pr-8{padding-right:2rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-24{padding-top:6rem}.pt-28{padding-top:7rem}.pt-3{padding-top:.75rem}.pt-32{padding-top:8rem}.pt-36{padding-top:9rem}.pt-4{padding-top:1rem}.pt-40{padding-top:10rem}.pt-5{padding-top:1.25rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}
5.text-justify{text-align:justify}.align-baseline{vertical-align:baseline}.text-2xl{font-size:1.5rem;line-height:2rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[35px\]{font-size:35px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-10{line-height:2.5rem}.leading-5{line-height:1.25rem}.leading-loose{line-height:2}.leading-none{line-height:1}.tracking-normal{letter-spacing:0}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.text-\[\#10B981\]{--tw-text-opacity:1;color:rgb(16 185 129/var(--tw-text-opacity))}.text-blue-300{--tw-text-opacity:1;color:rgb(144 205 244/var(--tw-text-opacity))}.text-blue-400{--tw-text-opacity:1;color:rgb(99 179 237/var(--tw-text-opacity))}.text-gray-200{--tw-text-opacity:1;color:rgb(237 242 247/var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgb(160 174 192/var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgb(26 32 44/var(--tw-text-opacity))}.text-green-600{--tw-text-opacity:1;color:rgb(56 161 105/var(--tw-text-opacity))}.text-indigo-700{--tw-text-opacity:1;color:rgb(76 81 191/var(--tw-text-opacity))}.text-primary{--tw-text-opacity:1;color:hsl(272 52% 54%/var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgb(245 101 101/var(--tw-text-opacity))}.text-red-600{--tw-text-opacity:1;color:rgb(229 62 62/var(--tw-text-opacity))}.text-secondary{--tw-text-opacity:1;color:hsl(202 92% 69%/var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.text-yellow-400{--tw-text-opacity:1;color:rgb(246 224 94/var(--tw-text-opacity))}.underline{text-decoration-line:underline}.line-through{text-decoration-line:line-through}.no-underline{text-decoration-line:none}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);
5--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)}.shadow,.shadow-lg{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-md,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
5dow,0 0 #0000)}.grayscale{--tw-grayscale:grayscale(100%)}.filter,.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-150,.transition-colors{transition-duration:.15s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}.\[out\:json\]{out:json}.first\:ml-auto:first-child{margin-left:auto}.first\:rounded-l-md:first-child{border-bottom-left-radius:.375rem;border-top-left-radius:.375rem}.last\:rounded-r-md:last-child{border-bottom-right-radius:.375rem;border-top-right-radius:.375rem}.focus-within\:\!border-secondary:focus-within{--tw-border-opacity:1!important;border-color:hsl(202 92% 69%/var(--tw-border-opacity))!important}.hover\:\!border-gray-500:hover{--tw-border-opacity:1!important;border-color:rgb(160 174 192/var(--tw-border-opacity))!important}.hover\:border-blue-500:hover{--tw-border-opacity:1;border-color:rgb(66 153 225/var(--tw-border-opacity))}.hover\:border-indigo-500:hover{--tw-border-opacity:1;border-color:rgb(102 126 234/var(--tw-border-opacity))}.hover\:bg-\[\#10B981\]:hover{--tw-bg-opacity:1;background-color:rgb(16 185 129/var(--tw-bg-opacity))}.hover\:bg-blue-100:hover{--tw-bg-opacity:1;background-color:rgb(235 248 255/var(--tw-bg-opacity))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(247 250 252/var(--tw-bg-opacity))}.hover\:bg-gray-400:hover{--tw-bg-opacity:1;background-color:rgb(203 213 224/var(--tw-bg-opacity))}.hover\:bg-primary:hover{--tw-bg-opacity:1;background-color:hsl(272 52% 54%/var(--tw-bg-opacity))}.hover\:bg-secondary:hover{--tw-bg-opacity:1;background-color:hsl(202 92% 69%/var(--tw-bg-opacity))}.hover\:text-\[\#052E26\]:hover{--tw-text-opacity:1;color:rgb(5 46 38/var(--tw-text-opacity))}.hover\:text-gray-200:hover{--tw-text-opacity:1;color:rgb(237 242 247/var(--tw-text-opacity))}.hover\:text-primary-darker:hover{--tw-text-opacity:1;color:hsl(272 52% 49%/var(--tw-text-opacity))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:backdrop-brightness-125:hover{--tw-backdrop-brightness:brightness(1.25);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-sha
5dow,0 0 #0000)}.focus-visible\:ring-inset:focus-visible{--tw-ring-inset:inset}.focus-visible\:ring-secondary:focus-visible{--tw-ring-opacity:1;--tw-ring-color:hsl(202 92% 69%/var(--tw-ring-opacity))}@media (min-width:640px){.sm\:flex-50{flex:0 45%}.sm\:flex-row{flex-direction:row}.sm\:flex-wrap{flex-wrap:wrap}}@media (min-width:768px){.md\:mx-auto{margin-left:auto;margin-right:auto}.md\:mr-64{margin-right:16rem}.md\:h-auto{height:auto}.md\:w-full{width:100%}.md\:max-w-xs{max-width:20rem}.md\:flex-1{flex:1 1 0%}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-nowrap{flex-wrap:nowrap}.md\:\!p-8{padding:2rem!important}.md\:p-20{padding:5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:pr-10{padding-right:2.5rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:order-first{order:-9999}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mx-10{margin-left:2.5rem;margin-right:2.5rem}.lg\:mx-auto{margin-left:auto;margin-right:auto}.lg\:mt-0{margin-top:0}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:w-60{width:15rem}.lg\:w-80{width:20rem}.lg\:flex-50{flex:0 45%}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:flex-row{flex-direction:row}.lg\:items-center{align-items:center}.lg\:justify-start{justify-content:flex-start}.lg\:justify-center{justify-content:center}.lg\:gap-3{gap:.75rem}.lg\:self-start{align-self:flex-start}.lg\:rounded-3xl{border-radius:1.5rem}.lg\:px-32{padding-left:8rem;padding-right:8rem}.lg\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.lg\:py-20{padding-bottom:5rem;padding-top:5rem}.lg\:pl-10{padding-left:2.5rem}.lg\:pr-0{padding-right:0}.lg\:pr-10{padding-right:2.5rem}.lg\:pr-40{padding-right:10rem}.lg\:pt-52{padding-top:13rem}.lg\:text-left{text-align:left}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1280px){.xl\:-right-20{right:-5rem}.xl\:-right-24{right:-6rem}.xl\:ml-64{margin-left:16rem}.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.xl\:pl-5{padding-left:1.25rem}.xl\:pr-5{padding-right:1.25rem}}@media (min-width:1600px){.\32xl\:ml-72{margin-left:18rem}.\32xl\:flex{display:flex}.\32xl\:hidden{display:none}}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-6 ol{padding-left:1.5rem}@font-face{font-family:Linearicons-Free;font-style:normal;font-weight:400;src:url(/static/Linearicons-Free-eb992e965197b4672140386c78da592f.eot);src:url(/static/Linearicons-Free-eb992e965197b4672140386c78da592f.eot?#iefixw118d) format("embedded-opentype"),url(/static/Linearicons-Free-857c65d6452680b4f3b162d37a1197f2.woff2) format("woff2"),url(/static/Linearicons-Free-a78a26fb0b18bc4cde289816914dd390.woff) format("woff"),url(/static/Linearicons-Free-5cbe0a85581dc42087ac6646f579502e.ttf) format("truetype"),url(/static/Linearicons-Free-638c6c05cd657465ff11bc3712e39063.svg#Linearicons-Free) format("svg")}.lnr{speak:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Linearicons-Free;font-style:normal;font-variant:normal;font-weight:400;line-height:1;text-transform:none}.lnr-home:before{content:"\e800"}.lnr-apartment:before{content:"\e801"}.lnr-pencil:before{content:"\e802"}.lnr-magic-wand:before{content:"\e803"}.lnr-drop:before{content:"\e804"}.lnr-lighter:before{content:"\e805"}.lnr-poop:before{content:"\e806"}.lnr-sun:before{content:"\e807"}.lnr-moon:before{content:"\e808"}.lnr-cloud:before{content:"\e809"}.lnr-cloud-upload:before{content:"\e80a"}.lnr-cloud-download:before{content:"\e80b"}.lnr-cloud-sync:before{content:"\e80c"}.lnr-cloud-check:before{content:"\e80d"}.lnr-database:before{content:"\e80e"}.lnr-lock:before{content:"\e80f"}.lnr-cog:before{content:"\e810"}.lnr-trash:before{content:"\e811"}.lnr-dice:before{content:"\e812"}.lnr-heart:before{content:"\e813"}.lnr-star:before{content:"\e814"}.lnr-star-half:before{content:"\e815"}.lnr-star-empty:before{content:"\e816"}.lnr-flag:before{content:"\e817"}.lnr-envelope:before{content:"\e818"}.lnr-paperclip:before{content:"\e819"}.lnr-inbox:before{content:"\e81a"}.lnr-eye:before{content:"\e81b"}.lnr-printer:before{content:"\e81c"}.lnr-file-empty:before{content:"\e81d"}.lnr-file-add:before{content:"\e81e"}.lnr-enter:before{content:"\e81f"}.lnr-exit:before{content:"\e820"}.lnr-graduation-hat:before{content:"\e821"}.lnr-license:before{content:"\e822"}.lnr-music-note:before{content:"\e823"}.lnr-film-play:before{content:"\e824"}.lnr-camera-video:before{content:"\e825"}.lnr-camera:before{content:"\e826"}.lnr-picture:before{content:"\e827"}.lnr-book:before{content:"\e828"}.lnr-bookmark:before{content:"\e829"}.lnr-user:before{content:"\e82a"}.lnr-users:before{content:"\e82b"}.lnr-shirt:before{content:"\e82c"}.lnr-store:before{content:"\e82d"}.lnr-cart:before{content:"\e82e"}.lnr-tag:before{content:"\e82f"}.lnr-phone-handset:before{content:"\e830"}.lnr-phone:before{content:"\e831"}.lnr-pushpin:before{content:"\e832"}.lnr-map-marker:before{content:"\e833"}.lnr-map:before{content:"\e834"}.lnr-location:before{content:"\e835"}.lnr-calendar-full:before{content:"\e836"}.lnr-keyboard:before{content:"\e837"}.lnr-spell-check:before{content:"\e838"}.lnr-screen:before{content:"\e839"}.lnr-smartphone:before{content:"\e83a"}.lnr-tablet:before{content:"\e83b"}.lnr-laptop:before{content:"\e83c"}.lnr-laptop-phone:before{content:"\e83d"}.lnr-power-switch:before{content:"\e83e"}.lnr-bubble:before{content:"\e83f"}.lnr-heart-pulse:before{content:"\e840"}.lnr-construction:before{content:"\e841"}.lnr-pie-chart:before{content:"\e842"}.lnr-chart-bars:before{content:"\e843"}.lnr-gift:before{content:"\e844"}.lnr-diamond:before{content:"\e845"}.lnr-linearicons:before{content:"\e846"}.lnr-dinner:before{content:"\e847"}.lnr-coffee-cup:before{content:"\e848"}.lnr-leaf:before{content:"\e849"}.lnr-paw:before{content:"\e84a"}.lnr-rocket:before{content:"\e84b"}.lnr-briefcase:before{content:"\e84c"}.lnr-bus:before{content:"\e84d"}.lnr-car:before{content:"\e84e"}.lnr-train:before{content:"\e84f"}.lnr-bicycle:before{content:"\e850"}.lnr-wheelchair:before{content:"\e851"}.lnr-select:before{content:"\e852"}.lnr-earth:before{content:"\e853"}.lnr-smile:before{content:"\e854"}.lnr-sad:before{content:"\e855"}.lnr-neutral:before{content:"\e856"}.lnr-mustache:before{content:"\e857"}.lnr-alarm:before{content:"\e858"}.lnr-bullhorn:before{content:"\e859"}.lnr-volume-high:before{content:"\e85a"}.lnr-volume-medium:before{content:"\e85b"}.lnr-volume-low:before{content:"\e85c"}.lnr-volume:before{content:"\e85d"}.lnr-mic:before{content:"\e85e"}.lnr-hourglass:before{content:"\e85f"}.lnr-undo:before{content:"\e860"}.lnr-redo:before{content:"\e861"}.lnr-sync:before{content:"\e862"}.lnr-history:before{content:"\e863"}.lnr-clock:before{content:"\e864"}.lnr-download:before{content:"\e865"}.lnr-upload:before{content:"\e866"}.lnr-enter-down:before{content:"\e867"}.lnr-exit-up:before{content:"\e868"}.lnr-bug:before{content:"\e869"}.lnr-code:before{content:"\e86a"}.lnr-link:before{content:"\e86b"}.lnr-unlink:before{content:"\e86c"}.lnr-thumbs-up:before{content:"\e86d"}.lnr-thumbs-down:before{content:"\e86e"}.lnr-magnifier:before{content:"\e86f"}.lnr-cross:before{content:"\e870"}.lnr-menu:before{content:"\e871"}.lnr-list:before{content:"\e872"}.lnr-chevron-up:before{content:"\e873"}.lnr-chevron-down:before{content:"\e874"}.lnr-chevron-left:before{content:"\e875"}.lnr-chevron-right:before{content:"\e876"}.lnr-arrow-up:before{content:"\e877"}.lnr-arrow-down:before{content:"\e878"}.lnr-arrow-left:before{content:"\e879"}.lnr-arrow-right:before{content:"\e87a"}.lnr-move:before{content:"\e87b"}.lnr-warning:before{content:"\e87c"}.lnr-question-circle:before{content:"\e87d"}.lnr-menu-circle:before{content:"\e87e"}.lnr-checkmark-circle:before{content:"\e87f"}.lnr-cross-circle:before{content:"\e880"}.lnr-plus-circle:before{content:"\e881"}.lnr-circle-minus:before{content:"\e882"}.lnr-arrow-up-circle:before{content:"\e883"}.lnr-arrow-down-circle:before{content:"\e884"}.lnr-arrow-left-circle:before{content:"\e885"}.lnr-arrow-right-circle:before{content:"\e886"}.lnr-chevron-up-circle:before{content:"\e887"}.lnr-chevron-down-circle:before{content:"\e888"}.lnr-chevron-left-circle:before{content:"\e889"}.lnr-chevron-right-circle:before{content:"\e88a"}.lnr-crop:before{content:"\e88b"}.lnr-frame-expand:before{content:"\e88c"}.lnr-frame-contract:before{content:"\e88d"}.lnr-layers:before{content:"\e88e"}.lnr-funnel:before{content:"\e88f"}.lnr-text-format:before{content:"\e890"}.lnr-text-format-remove:before{content:"\e891"}.lnr-text-size:before{content:"\e892"}.lnr-bold:before{content:"\e893"}.lnr-italic:before{content:"\e894"}.lnr-underline:before{content:"\e895"}.lnr-strikethrough:before{content:"\e896"}.lnr-highlight:before{content:"\e897"}.lnr-text-align-left:before{content:"\e898"}.lnr-text-align-center:before{content:"\e899"}.lnr-text-align-right:before{content:"\e89a"}.lnr-text-align-justify:before{content:"\e89b"}.lnr-line-spacing:before{content:"\e89c"}.lnr-indent-increase:before{content:"\e89d"}.lnr-indent-decrease:before{content:"\e89e"}.lnr-pilcrow:before{content:"\e89f"}.lnr-direction-ltr:before{content:"\e8a0"}.lnr-direction-rtl:before{content:"\e8a1"}.lnr-page-break:before{content:"\e8a2"}.lnr-sort-alpha-asc:before{content:"\e8a3"}.lnr-sort-amount-asc:before{content:"\e8a4"}.lnr-hand:before{content:"\e8a5"}.lnr-pointer-up:before{content:"\e8a6"}.lnr-pointer-right:before{content:"\e8a7"}.lnr-pointer-down:before{content:"\e8a8"}.lnr-pointer-left:before{content:"\e8a9"}.geoapify-cookie-consent{--tw-bg-opacity:1;--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);
5--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);background-color:rgb(235 244 255/var(--tw-bg-opacity));border-radius:.25rem;bottom:5px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);left:5px;max-width:600px;padding:1.25rem;right:auto;top:auto;z-index:100}.geoapify-cookie-consent .react-cookie-law-msg{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity));font-size:1rem;line-height:1.5rem;margin-bottom:20px}.geoapify-cookie-consent .react-cookie-law-option-wrapper label{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem;margin-left:1.25rem}.geoapify-cookie-consent .react-cookie-law-policy{font-size:.875rem;line-height:1.25rem}.geoapify-cookie-consent .react-cookie-law-manage-btn,.geoapify-cookie-consent .react-cookie-law-save-btn{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem;margin-right:1.25rem}.geoapify-cookie-consent .react-cookie-law-accept-btn{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:hsl(272 52% 54%/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(255 255 255/var(--tw-text-opacity));padding:.5rem 1rem}.geoapify-cookie-consent .react-cookie-law-accept-btn:hover{--tw-bg-opacity:1;background-color:hsl(272 52% 49%/var(--tw-bg-opacity))}.geoapify-post .geoapify-post-header{margin-left:auto;margin-right:auto;max-width:72rem}.geoapify-post h1{margin-left:.5rem;margin-right:.5rem}.geoapify-post .geoapify-post-featured-image{border-radius:5px;margin-left:auto;margin-right:auto;margin-top:1.25rem;overflow:hidden;width:100%}.geoapify-post .geoapify-post-meta{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-style:italic;margin:2.5rem .5rem .5rem}.post-navigation{--tw-border-opacity:1;border-bottom:3px dotted;border-top:3px dotted;border-color:rgb(237 242 247/var(--tw-border-opacity));margin-bottom:1.25rem;margin-top:3rem;padding:1.25rem}.post-navigation-buttons{margin:auto;max-width:72rem}.post-navigation .next-post,.post-navigation .previous-post{flex:1 1 0%}.post-navigation .next,.post-navigation .previous{display:flex}.post-navigation .next{justify-content:flex-end}.post-navigation .title{display:flex;flex-direction:column;max-width:28rem}.post-navigation .next .title{align-items:flex-end}.post-navigation .title .meta{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.875rem;font-style:italic;line-height:1.25rem}.post-navigation .title .post-title{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity));font-weight:500;letter-spacing:.05em;margin-bottom:.75rem;margin-top:.75rem}.post-navigation .chevron{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(235 244 255/var(--tw-bg-opacity));border-radius:50%;color:rgb(45 55 72/var(--tw-text-opacity));display:block;height:48px;padding:1rem;width:48px}.post-navigation .previous .chevron{margin-right:1.25rem}.post-navigation .next .chevron{margin-left:1.25rem}.post-navigation .chevron:hover,.post-navigation .title .post-title:hover{--tw-text-opacity:1;color:hsl(272 52% 49%/var(--tw-text-opacity))}.tag-list{display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:1.25rem;margin-top:1.25rem;max-width:72rem}.tag-list .tag{--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(235 244 255/var(--tw-bg-opacity));border-radius:.25rem;color:rgb(74 85 104/var(--tw-text-opacity));display:block;font-weight:500;letter-spacing:.05em;margin-right:1.25rem;margin-top:1.25rem;padding:.75rem}.tag-list .tag:hover{--tw-text-opacity:1;color:hsl(272 52% 49%/var(--tw-text-opacity))}.geoapify-post-body .image-caption,.geoapify-post-body .text-caption,.geoapify-post-body blockquote,.geoapify-post-body h1,.geoapify-post-body h2,.geoapify-post-body h3,.geoapify-post-body h4,.geoapify-post-body h5,.geoapify-post-body h6,.geoapify-post-body ol,.geoapify-post-body p,.geoapify-post-body table,.geoapify-post-body ul{margin-left:auto;margin-right:auto;max-width:calc(100% - 5rem)}.geoapify-post-body .width-default ol,.geoapify-post-body .width-default ul{max-width:none}
5.geoapify-post .width-default-video,.geoapify-post .width-default-wider,.geoapify-post-body .width-default{margin-left:auto;margin-right:auto;max-width:calc(100% - 5rem)}@media (min-width:1024px){.geoapify-post-body .image-caption,.geoapify-post-body .text-caption,.geoapify-post-body .width-default,.geoapify-post-body blockquote,.geoapify-post-body h1,.geoapify-post-body h2,.geoapify-post-body h3,.geoapify-post-body h4,.geoapify-post-body h5,.geoapify-post-body h6,.geoapify-post-body ol,.geoapify-post-body p,.geoapify-post-body table,.geoapify-post-body ul{max-width:1024px}}.geoapify-post-body .width-full{margin-left:auto;margin-right:auto;max-width:calc(100% - 5rem);width:100%}.geoapify-post-body h1{margin-bottom:1.5rem}.geoapify-post-body h2{margin-bottom:1rem;margin-top:2rem}.geoapify-post-body h2,.geoapify-post-body h4{text-align:center}.geoapify-post-body ul{color:rgb(45 55 72/var(--tw-text-opacity));list-style-type:disc}.geoapify-post-body ol,.geoapify-post-body ul{--tw-text-opacity:1;line-height:1.75;margin-bottom:1.25rem;padding-left:1.25rem}.geoapify-post-body ol{color:rgb(74 85 104/var(--tw-text-opacity));list-style-type:decimal}.geoapify-post-body img{margin:auto}@media (min-width:1280px){.geoapify-post .width-default-wider{max-width:1280px}}@media (min-width:768px){.geoapify-post-body .width-default-video{max-width:768px}}.geoapify-post table th{padding:10px 15px}.geoapify-post table td{padding:8px 10px}.geoapify-page .h1-subheader,.geoapify-page .h2-subheader,.geoapify-page .h3-subheader,.geoapify-page .h4-subheader,.geoapify-page blockquote,.geoapify-page h1,.geoapify-page h2,.geoapify-page h3,.geoapify-page h4,.geoapify-page h5,.geoapify-page h6,.geoapify-page ol,.geoapify-page p,.geoapify-page ul{margin-left:auto;margin-right:auto;max-width:calc(100% - 5rem)}.geoapify-page .width-default ol,.geoapify-page .width-default ul{max-width:none}.geoapify-page .width-default,.geoapify-page .width-default-wider{margin-left:auto;margin-right:auto;max-width:calc(100% - 5rem)}@media (min-width:1024px){.geoapify-page .h1-subheader,.geoapify-page .h2-subheader,.geoapify-page .h3-subheader,.geoapify-page .h4-subheader,.geoapify-page .width-default,.geoapify-page blockquote,.geoapify-page h1,.geoapify-page h2,.geoapify-page h3,.geoapify-page h4,.geoapify-page h5,.geoapify-page h6,.geoapify-page ol,.geoapify-page p,.geoapify-page ul{max-width:1024px}}@media (min-width:1280px){.geoapify-page .width-default-wider{max-width:1024px}}@media (min-width:1750px){.geoapify-page .width-default-wider{max-width:1280px}}.geoapify-page .width-full{margin-left:auto;margin-right:auto;max-width:calc(100% - 5rem);width:100%}.geoapify-page h1{margin-bottom:1.5rem}.geoapify-page h2{margin-bottom:1rem}.geoapify-page .h2-subheader,.geoapify-page .h4-subheader,.geoapify-page h2,.geoapify-page h4{text-align:center}.geoapify-page .h2-subheader.left,.geoapify-page .h3-subheader,.geoapify-page .h3-subheader.left,.geoapify-page .h4-subheader.left,.geoapify-page h2.left,.geoapify-page h4.left{text-align:left}.geoapify-page ul{list-style-type:disc}.geoapify-page ol,.geoapify-page ul{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity));line-height:1.75;margin-bottom:1.25rem;padding-left:1.25rem}.geoapify-page ol{list-style-type:decimal}.place-delimiter{margin-top:3.5rem}.blog-pagination{margin:2.5rem auto;max-width:72rem;text-align:center}.blog-pagination .page-label,.blog-pagination .page-placeholder{margin:.5rem;padding:.5rem .75rem}.blog-pagination .page-label{--tw-text-opacity:1;--tw-bg-opacity:1;--tw-border-opacity:1;background-color:rgb(45 55 72/var(--tw-bg-opacity));border-color:rgb(45 55 72/var(--tw-border-opacity));border-style:solid;border-width:1px;color:rgb(226 232 240/var(--tw-text-opacity));transition-duration:.1s;transition-property:background-color,border-color,color,fill,stroke}.blog-pagination .page-label.current,.blog-pagination .page-label:hover{--tw-text-opacity:1;background-color:transparent;color:rgb(45 55 72/var(--tw-text-opacity))}.blog-header{max-width:72rem;padding-bottom:.75rem;padding-top:.75rem}.blog-header,.blog-posts2{margin-left:auto;margin-right:auto}.blog-posts2{max-width:56rem}.blog-posts{margin-left:auto;margin-right:auto;max-width:72rem}.blog-posts .tutorial-post .tutorial-post-image{aspect-ratio:2/1;height:auto}.blog-posts .tutorial-post .tutorial-post-image .image{transform:none;transition:filter .25s ease,opacity .25s ease}.blog-posts .tutorial-post:hover .tutorial-post-image .image{filter:brightness(.9) saturate(1.15);opacity:.95;transform:none}.blog-post .blog-post-image{height:14rem}.blog-post .blog-post-button,.blog-post .blog-post-categories,.blog-post .blog-post-meta,.blog-post .blog-post-tags,.blog-post .blog-post-text,.tutorial-post .blog-post-title{padding-left:.75rem;padding-right:.75rem}.tutorial-post .blog-post-title a{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity))}.tutorial-post .blog-post-title h2{font-size:1.25rem;letter-spacing:.025em;line-height:1.75rem;line-height:1.2}.tutorial-post .blog-post-meta h6{font-size:.75rem;font-weight:400;line-height:1rem}.tutorial-post .blog-post-text{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity))}.tutorial-post .blog-post-button{margin-bottom:.75rem;margin-top:.75rem}.tutorial-post .blog-post-button a{--tw-text-opacity:1;--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity));border-style:solid;border-width:1px;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.75rem;line-height:1rem;padding:.5rem .75rem}.tutorial-post .blog-post-categories{margin-bottom:.75rem;margin-top:.75rem}.tutorial-post .blog-post-categories a{--tw-text-opacity:1;--tw-bg-opacity:1;background-color:rgb(45 55 72/var(--tw-bg-opacity));color:rgb(226 232 240/var(--tw-text-opacity));font-size:.75rem;line-height:1rem;margin-right:.5rem;padding:.25rem .5rem;text-transform:uppercase}.tutorial-post .blog-post-tags{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.875rem;line-height:1.25rem}.blog-post .blog-post-tags .delimiter,.tutorial-post .blog-post-tags .label{margin-right:.5rem}.tutorial-post .blog-post-tags a{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-style:italic;letter-spacing:.025em}.tutorial-header{margin-left:auto;margin-right:auto;max-width:72rem;padding:.75rem}.tutorial-filters,.tutorial-groups{margin-left:auto;margin-right:auto;max-width:72rem;padding-left:.75rem;padding-right:.75rem}.tutorial-post{--tw-border-opacity:1;--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);
5--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-color:rgb(226 232 240/var(--tw-border-opacity));border-style:solid;border-width:1px;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);height:100%;padding-bottom:.75rem;position:relative}.tutorial-post .tutorial-post-image{height:10rem;overflow:hidden}.tutorial-post .tutorial-post-image .image{transform:scale(1);transition:.3s ease-in-out}.tutorial-post:hover .tutorial-post-image .image{transform:scale(1.5)}.tutorial-post .tutorial-post-meta,.tutorial-post .tutorial-post-text,.tutorial-post .tutorial-post-title{padding-left:1.25rem;padding-right:1.25rem}.tutorial-post .tutorial-post-title h3{font-size:1.25rem;letter-spacing:.025em;line-height:1.75rem;line-height:1.2;margin-bottom:1.25rem;margin-top:1.25rem}.tutorial-post .tutorial-post-meta h6{font-size:.75rem;font-weight:400;line-height:1rem}.tutorial-post .tutorial-post-text{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.875rem;line-height:1.5rem;margin-bottom:1.25rem;text-align:justify}.tutorial-post .tutorial-post-languages{position:absolute;right:5px;text-align:right;top:10px}.tutorial-post .tutorial-post-language{--tw-border-opacity:1;--tw-bg-opacity:1;--tw-text-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-color:rgb(226 232 240/var(--tw-border-opacity));border-radius:.25rem;border-style:solid;border-width:1px;color:rgb(45 55 72/var(--tw-text-opacity));opacity:.8;padding:5px}.h1,h1{font-size:2.5rem;letter-spacing:.05em;margin-top:.75rem}.h1,.h2,h1,h2{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity));font-weight:500;line-height:1.25;margin-bottom:.75rem}.h2,h2{font-size:2.2rem;margin-top:.5rem}.h1-subheader,.h3,h3{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity));font-size:1.7rem;font-weight:500;letter-spacing:.025em;line-height:1.25;margin-bottom:1rem;margin-top:.5rem}.h2-subheader,.h4,.h4-subheader,h4{font-size:1.4rem;margin-bottom:.5rem}.h2-subheader,.h3-subheader,.h4,.h4-subheader,.h5,h4,h5{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity));font-weight:500;margin-top:.5rem}.h3-subheader,.h5,h5{font-size:1.2rem;letter-spacing:.05em;margin-bottom:.25rem}.h6,h6{font-size:.9rem;font-weight:500;letter-spacing:.05em;margin-bottom:.5rem;margin-top:.5rem;text-transform:uppercase}.h6,h6,p{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity))}p{line-height:1.75;margin-bottom:1rem}.geoapify-button:hover{transition:background-color .1s linear}.bordered-image{border:1px solid rgba(0,0,0,.2);border-radius:5px;padding:5px}.image-caption{text-align:center}.image-caption,.text-caption{--tw-text-opacity:1;color:rgb(113 128 150/var(--tw-text-opacity));font-size:.875rem;font-style:italic;line-height:1.25rem;margin-bottom:1.25rem;word-break:break-word}.text-caption{text-align:left}blockquote{background-color:#f9fafb;border-left:4px solid #d0d7de;color:#2c3847;font-size:1rem;font-style:italic;line-height:1.6;margin:2.5rem 0;padding:1rem 1.5rem;position:relative}.h6,blockquote h6{color:#707070;display:inline-block;font-size:.95rem;font-style:normal;font-weight:500;margin-top:1rem;text-transform:uppercase}table{border-collapse:collapse;margin-bottom:20px;margin-top:20px;text-align:left;width:100%}table td,table th{--tw-border-opacity:1;border:1px solid;border-color:rgb(226 232 240/var(--tw-border-opacity));padding:1.3em}table tbody tr:nth-child(odd){--tw-bg-opacity:1;background-color:rgb(237 242 247/var(--tw-bg-opacity))}table thead th{--tw-text-opacity:1;color:rgb(74 85 104/var(--tw-text-opacity));font-size:15px;font-size:1.125rem;font-weight:500;line-height:1.75rem;text-align:left;text-transform:uppercase}@media screen and (max-width:768px){table{table-layout:fixed}table thead{display:none}table td{display:flex;text-overflow:ellipsis;word-break:break-word}table td:before{content:attr(label);font-weight:700;min-width:120px;padding-right:10px;width:120px}}.image-center img,.image-center p>img{margin:auto}.video-wrapper{height:0;padding-bottom:56.25%;padding-top:25px;position:relative}.video-wrapper iframe{height:100%;left:0;position:absolute;top:0;width:100%}.geoapify-structured-question ol{list-style-position:inside;list-style-type:decimal}.geoapify-structured-question h3{font-size:1.2rem;font-weight:500;margin-bottom:.25rem;margin-top:1.5rem}.filter-grayscale{filter:grayscale(1)}.highlighted-text{font-size:1.25rem;font-weight:300;line-height:1.75rem}.iframe-container{overflow:hidden;padding-top:56.25%;position:relative}.iframe-container iframe{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.sticky-anchor{margin-top:-5rem!important;padding-top:7rem!important}.sticky-anchor-wider{margin-top:-5rem!important;padding-top:9rem!important}.tabs .nav-tabs{border-bottom:1px solid #dee2e6}.tabs .nav{display:flex;flex-wrap:wrap;list-style:none;margin-bottom:0;padding-left:0}.tabs ul{margin-top:0}.tabs .nav-tabs .nav-item{margin-bottom:-1px}.tabs .nav-link{--tw-text-opacity:1;color:rgb(45 55 72/var(--tw-text-opacity));display:block;padding:.5rem 1rem}.tabs .nav-link:hover{--tw-text-opacity:1;color:hsl(272 52% 54%/var(--tw-text-opacity));cursor:pointer}.tabs .nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.tabs .nav-tabs .nav-link.active{background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.tabs .tab-content{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));border-bottom:1px solid #dee2e6;border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;border-left:1px solid #dee2e6;border-right:1px solid #dee2e6;padding:.75rem 1.25rem}.gatsby-remark-copy-button{background-color:#a3a3a3;max-height:30px;max-width:30px;min-height:30px;min-width:30px;opacity:80%;padding:3px;transform:translateX(1px);z-index:10}span:has(.gatsby-remark-copy-button-container){right:3px;top:3px;width:0}.__react_component_tooltip{border-radius:3px;display:inline-block;font-size:13px;left:-999em;opacity:0;padding:8px 21px;pointer-events:none;position:fixed;top:-999em;transition:opacity .3s ease-out;visibility:hidden;z-index:999}.__react_component_tooltip.allow_click,.__react_component_tooltip.allow_hover{pointer-events:auto}.__react_component_tooltip:after,.__react_component_tooltip:before{content:"";height:0;position:absolute;width:0}.__react_component_tooltip.show{margin-left:0;margin-top:0;opacity:.9;visibility:visible}.__react_component_tooltip.place-top:before{bottom:-8px}.__react_component_tooltip.place-bottom:before,.__react_component_tooltip.place-top:before{border-left:10px solid transparent;border-right:10px solid transparent;left:50%;margin-left:-10px}.__react_component_tooltip.place-bottom:before{top:-8px}.__react_component_tooltip.place-left:before{right:-8px}.__react_component_tooltip.place-left:before,.__react_component_tooltip.place-right:before{border-bottom:6px solid transparent;border-top:6px solid transparent;margin-top:-5px;top:50%}.__react_component_tooltip.place-right:before{left:-8px}.__react_component_tooltip .multi-line{display:block;padding:2px 0;text-align:center}.__react_component_tooltip{background:#222;border:1px solid transparent;color:#fff}.__react_component_tooltip.place-top{margin-top:-10px!important}.__react_component_tooltip.place-top:before{border-top:8px solid transparent}
5.__react_component_tooltip.place-top:after{border-left:8px solid transparent;border-right:8px solid transparent;border-top:6px solid #222;bottom:-6px;left:50%;margin-left:-8px!important}.__react_component_tooltip.place-bottom{margin-top:10px!important}.__react_component_tooltip.place-bottom:before{border-bottom:8px solid transparent}.__react_component_tooltip.place-bottom:after{border-bottom:6px solid #222;border-left:8px solid transparent;border-right:8px solid transparent;left:50%;margin-left:-8px!important;top:-6px}.__react_component_tooltip.place-left{margin-left:-10px!important}.__react_component_tooltip.place-left:before{border-left:8px solid transparent}.__react_component_tooltip.place-left:after{border-bottom:5px solid transparent;border-left:6px solid #222;border-top:5px solid transparent;margin-top:-4px!important;right:-6px;top:50%}.__react_component_tooltip.place-right{margin-left:10px!important}.__react_component_tooltip.place-right:before{border-right:8px solid transparent}.__react_component_tooltip.place-right:after{border-bottom:5px solid transparent;border-right:6px solid #222;border-top:5px solid transparent;left:-6px;margin-top:-4px!important;top:50%}.segment-key{color:#393a34!important}.segment-type-boolean>.segment-main>.segment-value{color:#36acaa!important}.segment-type-string>.segment-main>.segment-value{color:#a31515!important}.segment-type-number>.segment-main>.segment-value{color:#36acaa!important}code[class*=language-],pre[class*=language-]{color:#393a34;direction:ltr;font-family:Consolas,Bitstream Vera Sans Mono,Courier New,Courier,monospace;font-size:.9em;hyphens:none;line-height:1.2em;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre>code[class*=language-]{font-size:.9em}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{background:#c1def1}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{background:#c1def1}pre[class*=language-]{background-color:#fff;background-color:#f7f7f7;border:1px solid #ddd;margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-]{background:#f8f8f8;border:1px solid #ddd;padding:1px .2em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:green;font-style:italic}.token.namespace{opacity:.7}.token.string{color:#a31515}.token.operator,.token.punctuation{color:#393a34}.token.boolean,.token.constant,.token.inserted,.token.number,.token.symbol,.token.url,.token.variable{color:#36acaa}.language-autohotkey .token.selector,.language-json .token.boolean,.language-json .token.number,.token.atrule,.token.attr-value,.token.keyword,code[class*=language-css]{color:#00f}.token.function{color:#393a34}.language-autohotkey .token.tag,.token.deleted{color:#9a050f}.language-autohotkey .token.keyword,.token.selector{color:#00009f}.token.important{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.language-json .token.property,.token.class-name{color:#2b91af}.token.selector,.token.tag{color:maroon}.token.attr-name,.token.entity,.token.property,.token.regex{color:red}.token.directive.tag .tag{background:#ff0;color:#393a34}.line-numbers.line-numbers .line-numbers-rows{border-right-color:#a5a5a5}.line-numbers .line-numbers-rows>span:before{color:#2b91af}.line-highlight.line-highlight{background:rgba(193,222,241,.2);background:linear-gradient(90deg,rgba(193,222,241,.2) 70%,rgba(221,222,241,0))}.gatsby-remark-prismjs-copy-button-container1{display:flex;justify-content:flex-end;left:8px;margin-top:-28px;pointer-events:none;position:relative;top:37px;touch-action:none;z-index:1}.gatsby-remark-prismjs-copy-button1{border-radius:3px;color:hsla(0,0%,100%,.88);cursor:pointer;font-size:13px;padding:3px 5px 2px;pointer-events:auto}.react-tabs{-webkit-tap-highlight-color:transparent}.react-tabs__tab-list{border-bottom:1px solid #aaa;margin:0 0 10px;padding:0}.react-tabs__tab{border:1px solid transparent;border-bottom:none;bottom:-1px;cursor:pointer;display:inline-block;list-style:none;padding:6px 12px;position:relative}.react-tabs__tab--selected{background:#fff;border-color:#aaa;border-radius:5px 5px 0 0;color:#000}.react-tabs__tab--disabled{color:GrayText;cursor:default}.react-tabs__tab:focus{outline:none}.react-tabs__tab:focus:after{background:#fff;bottom:-5px;content:"";height:5px;left:-4px;position:absolute;right:-4px}.react-tabs__tab-panel{display:none}.react-tabs__tab-panel--selected{display:block}.main-button{background:#007aff;color:#fff}.main-button:hover{background:#1384ff}
5.dropdown-menu-container .sub-menu-list{position:fixed;top:65px;z-index:99999}.dropdown-menu-container .sub-menu-list.multicolumn{left:50vw;transform:translateX(-50%)}.dropdown-menu-container .sub-menu-list.multicolumn.right-0{left:auto;position:absolute;right:0;top:49px;transform:none}.dropdown-menu-container .active,.dropdown-menu-container .menu-button:hover,.dropdown-menu-container .menu-link:hover{--tw-text-opacity:1;color:hsl(272 52% 54%/var(--tw-text-opacity))}.dropdown-menu-container .sub-menu-item{width:250px}.dropdown-menu-container .sub-menu-multicolumn{width:-moz-max-content;width:max-content}.sub-menu-multicolumn-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sub-menu-multicolumn-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sub-menu-multicolumn-4{grid-template-columns:repeat(4,minmax(0,1fr))}.dropdown-menu-container .sub-menu-multicolumn .sub-menu-item{width:220px}.small-screen-menu-items .active,.small-screen-menu-items .menu-button:hover,.small-screen-menu-items .menu-link:hover,.small-screen-menu-items .open-button:hover{--tw-text-opacity:1;color:hsl(272 52% 54%/var(--tw-text-opacity))}.small-screen-menu-items{max-width:325px}.type-selectors{display:flex;flex-direction:row}.type-selector{display:flex;flex:1;flex-direction:column}.type-selector svg{height:50px}.back-button-container button{align-items:center;display:flex;flex-direction:row}.back-button-container svg{height:20px}.file-drop{--tw-border-opacity:1;border-color:rgb(203 213 224/var(--tw-border-opacity));border-style:dashed;border-width:2px;height:200px;position:relative;width:100%}.file-drop>.file-drop-target{align-content:center;align-items:center;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;position:absolute;text-align:center;top:0;width:100%}.file-drop>.file-drop-target.file-drop-dragging-over-target{--tw-bg-opacity:1;background-color:rgb(235 248 255/var(--tw-bg-opacity))}
5.CodeMirror pre.CodeMirror-placeholder{color:#999}.geoapify-section h1,.geoapify-section h2,.geoapify-section h3,.geoapify-section h4,.geoapify-section h5,.geoapify-section h6,.geoapify-section p{max-width:none;text-align:left}.geoapify-input{border:1px solid #ccc;border-radius:2px;min-height:32px;padding:2px 5px;width:100%}.geoapify-input:focus,.geoapify-input:hover{border:1px solid #007aff}.geoapify-input:focus{box-shadow:0 0 0 3px #c9e1f8;outline:none}.geoapify-input-checkbox-container{display:inline-block;position:relative}.geoapify-input-checkbox-container label{cursor:pointer;display:block;padding-left:30px;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none}.geoapify-input-checkbox-container input{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.geoapify-input-checkbox-container .checkmark{border:1px solid #ccc;border-radius:2px;height:25px;left:0;position:absolute;top:0;width:25px}.geoapify-input-checkbox-container:hover input~.checkmark{background-color:#ccc}.geoapify-input-c
5heckbox-container input:checked~.checkmark{background-color:#007aff;border:1px solid #007aff}.geoapify-input-checkbox-container .checkmark:after{content:"";display:none;position:absolute}.geoapify-input-checkbox-container input:checked~.checkmark:after{display:block}.geoapify-input-checkbox-container .checkmark:after{border:solid #fff;border-width:0 3px 3px 0;height:12px;left:8px;top:4px;transform:rotate(45deg);width:7px}.geoapify-card h1,.geoapify-card h2,.geoapify-card h3,.geoapify-card h4,.geoapify-card h5,.geoapify-card h6,.geoapify-card p,.geoapify-card ul{margin-left:0;margin-right:0;max-width:none}.credits-calculator-slider{-webkit-appearance:none;background:#d3d3d3;border-radius:5px;height:15px;opacity:.7;outline:none;transition:opacity .2s;width:100%}.credits-calculator-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#4caf50;border-radius:50%;cursor:pointer;height:25px;width:25px}.credits-calculator-slider::-moz-range-thumb{background:#4caf50;border-radius:50%;cursor:pointer;height:25px;width:25px}.credits-calculator-slider:hover{opacity:1}.pricing-plans{align-items:stretch;cursor:pointer;display:flex;flex-direction:row;flex-wrap:nowrap;margin:auto;overflow-x:auto;overflow-y:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pricing-plans.optional{margin-bottom:30px;margin-top:30px}.pricing-plans::-webkit-scrollbar{background:transparent;width:0}.pricing-plan{border:1px solid #d3d3d3;border-radius:3px;flex-basis:auto;margin:5px;max-width:240px;min-width:240px;padding:5px 15px}.custom-plan-contaner{text-align:center}.pricing-plans-container{display:flex;position:relative}.nav-button{position:absolute;top:50%}.nav-button.left{left:10px}.nav-button.right{right:10px}.nav-button button{background-color:#8f4ec7;border-radius:50%;box-shadow:0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);color:hsla(0,0%,100%,.8);height:40px;width:40px}.nav-button button svg{height:50%;margin:auto}.nav-button .ripple{background-position:50%;transition:background .8s}.nav-button .ripple:hover{background:#9051c8 radial-gradient(circle,transparent 1%,#9051c8 0) 50%/15000%}.nav-button .ripple:active{background-color:#9d64ce;background-size:100%;transition:background 0s}@media only screen and (max-width:600px){.pricing-plans{justify-content:flex-start;white-space:nowrap}.pricing-plan{max-width:calc(100% - 5px);min-width:calc(100% - 5px);white-space:normal}}@media only screen and (min-width:601px) and (max-width:768px){.pricing-plans{justify-content:flex-start;white-space:nowrap}.pricing-plan{max-width:calc(50% - 10px);min-width:calc(50% - 10px);white-space:normal}}.pricing-plan-container{height:100%}.pricing-plan-container .header{height:110px;margin:5px 0;text-align:center}.pricing-plan-container .header .price{color:rgba(0,0,0,.8);font-size:20px}.pricing-plan-container .header .name{color:#3f51b5;font-size:24px;font-weight:600;margin-bottom:5px;margin-top:20px}.pricing-plan-container .header .name.custom{color:#ff4081}.pricing-plan-container .header .name.onlyTitle{margin-top:50px}.pricing-plan-container .header .name.purple{color:#8f4ec7}.pricing-plan-container .divider{margin:5px 0}.pricing-plan-container .content{overflow:auto}.pricing-plan-container .content .items{padding:10px;text-align:center}.pricing-plan-container .actions{height:36px;margin:10px 0;text-align:center}.pricing-plan-container .actions .current{color:rgba(0,0,0,.8)}.pricing-plan-container .conditions{margin:20px 10px}.pricing-plan-container .conditions .icon{display:inline-block;height:19px;text-align:center;width:40px}.pricing-plan-container .conditions .icon svg{height:100%}.pricing-plan-container .flat-button{border:none;border-radius:3px;box-shadow:0 0 4px #999;color:#fff;cursor:pointer;font-size:14px;font-weight:500;outline:none;padding:12px 18px;text-transform:uppercase}.pricing-plan-container .flat-button.purple-button{background-color:#8f4ec7;color:hsla(0,0%,100%,.9)}.pricing-plan-container .flat-button.purple-button:hover{background-color:#68c5f9}.pricing-plan-container .flat-button.blue-button{background-color:#68c5f9;color:hsla(0,0%,100%,.9)}.pricing-plan-container .flat-button.blue-button:hover{background-color:#8f4ec7}.pricing-plan-container .divider{border-bottom:1px solid #ddd}.pricing-plan-container .price{height:70px}.swiper-container{height:100%;width:100%}.swiper-slide{background:#fff;font-size:18px;height:auto;padding:20px;text-align:center}.slide-icon{height:30px}.slide-icon svg{height:100%;margin:auto}.vertical-timeline *{-webkit-box-sizing:border-box;box-sizing:border-box}.vertical-timeline{margin:0 auto;max-width:1170px;padding:2em 0;position:relative;width:95%}.vertical-timeline:after{clear:both;content:"";display:table}.vertical-timeline:before{background:var(--line-color);content:"";height:100%;left:18px;position:absolute;top:0;width:4px}.vertical-timeline.vertical-timeline--one-column-right:before{left:unset;right:18px}@media only screen and (min-width:1170px){.vertical-timeline.vertical-timeline--two-columns{width:90%}.vertical-timeline.vertical-timeline--two-columns:before{left:50%;margin-left:-2px}}.vertical-timeline-element{margin:2em 0;position:relative}.vertical-timeline-element>div{min-height:1px}.vertical-timeline-element:after{clear:both;content:"";display:table}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}@media only screen and (min-width:1170px){.vertical-timeline-element{margin:4em 0}.vertical-timeline-element:first-child{margin-top:0}.vertical-timeline-element:last-child{margin-bottom:0}}.vertical-timeline-element-icon{border-radius:50%;height:40px;left:0;position:absolute;top:0;width:40px}.vertical-timeline-element-icon.shadow-size-small{-webkit-box-shadow:0 0 0 2px #fff,inset 0 1px 0 rgba(0,0,0,.08),0 2px 0 4px rgba(0,0,0,.05);box-shadow:0 0 0 2px #fff,inset 0 1px 0 rgba(0,0,0,.08),0 2px 0 4px rgba(0,0,0,.05)}.vertical-timeline-element-icon.shadow-size-medium{-webkit-box-shadow:0 0 0 3px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 3px 0 5px rgba(0,0,0,.05);box-shadow:0 0 0 3px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 3px 0 5px rgba(0,0,0,.05)}.vertical-timeline-element-icon.shadow-size-large{-webkit-box-shadow:0 0 0 4px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 4px 0 6px rgba(0,0,0,.05);box-shadow:0 0 0 4px #fff,inset 0 2px 0 rgba(0,0,0,.08),0 4px 0 6px rgba(0,0,0,.05)}.vertical-timeline--one-column-right .vertical-timeline-element-icon{left:unset;right:0}.vertical-timeline-element-icon svg{display:block;height:24px;left:50%;margin-left:-12px;margin-top:-12px;position:relative;top:50%;width:24px}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-icon{height:60px;left:50%;margin-left:-30px;width:60px}}.vertical-timeline-element-icon{-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0)}.vertical-timeline--animate .vertical-timeline-element-icon.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-icon.bounce-in{-webkit-animation:cd-bounce-1 .6s;animation:cd-bounce-1 .6s;visibility:visible}@-webkit-keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2)}to{-webkit-transform:scale(1)}}@keyframes cd-bounce-1{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}60%{opacity:1;-webkit-transform:scale(1.2);transform:scale(1.2)}to{-webkit-transform:scale(1);transform:scale(1)}}.vertical-timeline-element-content{background:#fff;border-radius:.25em;-webkit-box-shadow:0 3px 0 #ddd;box-shadow:0 3px 0 #ddd;margin-left:60px;padding:1em;position:relative}.vertical-timeline--one-column-right .vertical-timeline-element-content{margin-left:unset;margin-right:60px}.vertical-timeline-element--no-children .vertical-timeline-element-content{background:0 0;-webkit-box-shadow:none;box-shadow:none}.vertical-timeline-element-content:after{clear:both;content:"";display:table}.vertical-timeline-element-content h2{color:#303e49}.vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline-element-content p{font-size:13px;font-size:.8125rem;font-weight:500}.vertical-timeline-element-content .vertical-timeline-element-date{display:inline-block}.vertical-timeline-element-content p{line-height:1.6;margin:1em 0 0}.vertical-timeline-element-subtitle,.vertical-timeline-element-title{margin:0}.vertical-timeline-element-content .vertical-timeline-element-date{float:left;opacity:.7;padding:.8em 0}.vertical-timeline-element-content-arrow{border:7px solid transparent;border-right-color:#fff;content:"";height:0;position:absolute;right:100%;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content-arrow{border:7px solid transparent;border-left-color:#fff;content:"";height:0;left:100%;position:absolute;right:unset;top:16px;width:0}.vertical-timeline--one-column-right .vertical-timeline-element-content:before{border-left:7px solid #fff;border-right:unset;left:100%}.vertical-timeline-element--no-children .vertical-timeline-element-content-arrow,.vertical-timeline-element--no-children .vertical-timeline-element-content:before{display:none}@media only screen and (min-width:768px){.vertical-timeline-element-content h2{font-size:20px;font-size:1.25rem}.vertical-timeline-element-content p{font-size:16px;font-size:1rem}.vertical-timeline-element-content .vertical-timeline-element-date{font-size:14px;font-size:.875rem}}@media only screen and (min-width:1170px){.vertical-timeline--two-columns .vertical-timeline-element-content{margin-left:0;padding:1.5em;width:44%}.vertical-timeline--two-columns .vertical-timeline-element-content-arrow{left:100%;top:24px;-webkit-transform:rotate(180deg);transform:rotate(180deg)}.vertical-timeline--two-columns .vertical-timeline-element-content .vertical-timeline-element-date{font-size:16px;font-size:1rem;left:124%;position:absolute;top:6px;width:100%}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content{float:right}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:auto;right:100%;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--one-column-right .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content-arrow,.vertical-timeline--one-column-right .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content-arrow{left:100%;right:auto;top:24px;-webkit-transform:rotate(0);transform:rotate(0)}.vertical-timeline--two-columns .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content .vertical-timeline-element-date,.vertical-timeline--two-columns .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content .vertical-timeline-element-date{left:auto;right:124%;text-align:right}}.vertical-timeline--animate .vertical-timeline-element-content.is-hidden{visibility:hidden}.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2 .6s;animation:cd-bounce-2 .6s;visibility:visible}@media only screen and (min-width:1170px){.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element.vertical-timeline-element--right .vertical-timeline-element-content.bounce-in,.vertical-timeline--two-columns.vertical-timeline--animate .vertical-timeline-element:nth-child(2n):not(.vertical-timeline-element--left) .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s}}@media only screen and (max-width:1169px){.vertical-timeline--animate .vertical-timeline-element-content.bounce-in{-webkit-animation:cd-bounce-2-inverse .6s;animation:cd-bounce-2-inverse .6s;visibility:visible}}@-webkit-keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2{0%{opacity:0;-webkit-transform:translateX(-100px);transform:translateX(-100px)}60%{opacity:1;-webkit-transform:translateX(20px);transform:translateX(20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px)}to{-webkit-transform:translateX(0)}}@keyframes cd-bounce-2-inverse{0%{opacity:0;-webkit-transform:translateX(100px);transform:translateX(100px)}60%{opacity:1;-webkit-transform:translateX(-20px);transform:translateX(-20px)}to{-webkit-transform:translateX(0);transform:translateX(0)}}
5.background-divider{left:0;max-height:100%;overflow:hidden;position:absolute;right:0;z-index:1}.background-divider.is-bottom-divider{bottom:0}.background-divider.is-top-divider{top:0}.background-divider.is-bottom-divider .divider-svg{transform:translateX(-50%) rotate(180deg) translateY(-1px)}.background-divider .divider-svg{display:block;left:50%;position:relative;transform:translateX(-50%) translateY(-1px);width:calc(100% + 2px)}.geoapify-page-card-image{border-bottom:1px solid #e5e7eb;display:block;margin:-1.25rem -1.25rem 1rem}.geoapify-page-card-image .gatsby-image-wrapper{height:140px;width:100%}.geoapify-page-card-image .gatsby-image-wrapper img{-o-object-fit:cover!important;object-fit:cover!important}.table-of-content{background:hsla(0,0%,100%,.8);border:1px solid rgba(0,0,0,.1);border-bottom-left-radius:10px;border-right:none;border-top-left-radius:10px;display:none;font-size:14px;padding:20px 10px 20px 20px;position:fixed;right:0;top:150px;width:230px;z-index:10}.table-of-content .selected{font-weight:600}@media (min-width:1500px){.table-of-content{display:block}}@font-face{font-family:swiper-icons;font-style:normal;font-weight:400;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA")}:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:content-box;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px}.swiper-3d .swiper-cube-shadow,.swiper-3d .swiper-slide{transform-style:preserve-3d}.swiper-css-mode>.swiper-wrapper{-ms-overflow-style:none;overflow:auto;scrollbar-width:none}.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-css-mode.swiper-horizontal>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-css-mode.swiper-vertical>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-css-mode.swiper-free-mode>.swiper-wrapper{scroll-snap-type:none}.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}.swiper-css-mode.swiper-centered>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}.swiper-3d .swiper-slide-shadow,.swiper-3d .swiper-slide-shadow-bottom,.swiper-3d .swiper-slide-shadow-left,.swiper-3d .swiper-slide-shadow-right,.swiper-3d .swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-3d .swiper-slide-shadow{background:rgba(0,0,0,.15)}.swiper-3d .swiper-slide-shadow-left{background-image:linear-gradient(270deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-right{background-image:linear-gradient(90deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-top{background-image:linear-gradient(0deg,rgba(0,0,0,.5),transparent)}.swiper-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent)}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid transparent;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode .swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;margin-top:calc(0px - var(--swiper-navigation-size)/2);position:absolute;top:var(--swiper-navigation-top-offset,50%);width:calc(var(--swiper-navigation-size)/44*27);z-index:10}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}.swiper-button-next.swiper-button-hidden,.swiper-button-prev.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled .swiper-button-next,.swiper-navigation-disabled .swiper-button-prev{display:none!important}.swiper-button-next svg,.swiper-button-prev svg{height:100%;-o-object-fit:contain;object-fit:contain;transform-origin:center;width:100%}.swiper-rtl .swiper-button-next svg,.swiper-rtl .swiper-button-prev svg{transform:rotate(180deg)}.swiper-button-prev,.swiper-rtl .swiper-button-next{left:var(--swiper-navigation-sides-offset,10px
5);right:auto}.swiper-button-lock{display:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);font-variant:normal;letter-spacing:0;line-height:1;text-transform:none!important}.swiper-button-prev:after,.swiper-rtl .swiper-button-next:after{content:"prev"}.swiper-button-next,.swiper-rtl .swiper-button-prev{left:auto;right:var(--swiper-navigation-sides-offset,10px)}.swiper-button-next:after,.swiper-rtl .swiper-button-prev:after{content:"next"}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-pagination-disabled>.swiper-pagination,.swiper-pagination.swiper-pagination-disabled{display:none!important}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active,.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px))}button.swiper-pagination-bullet{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet:only-child{display:none!important}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0)}.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,left .2s}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,rgba(0,0,0,.25));position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));
5height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-horizontal>.swiper-pagination-progressbar,.swiper-pagination-progressbar.swiper-pagination-horizontal,.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,.swiper-pagination-progressbar.swiper-pagination-vertical,.swiper-vertical>.swiper-pagination-progressbar{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,rgba(0,0,0,.1));border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none}.swiper-scrollbar-disabled>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-disabled{display:none!important}.swiper-horizontal>.swiper-scrollbar,.swiper-scrollbar.swiper-scrollbar-horizontal{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}.swiper-scrollbar.swiper-scrollbar-vertical,.swiper-vertical>.swiper-scrollbar{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,rgba(0,0,0,.5));border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-height:100%;max-width:100%;-o-object-fit:contain;object-fit:contain}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade.swiper-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-fade .swiper-slide-active,.swiper-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube{overflow:visible}.swiper-cube .swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1}.swiper-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-cube.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-cube .swiper-slide-active,.swiper-cube .swiper-slide-next,.swiper-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube .swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0}.swiper-cube .swiper-cube-shadow:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}.swiper-cube .swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}.swiper-flip{overflow:visible}.swiper-flip .swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1}.swiper-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-flip .swiper-slide-active,.swiper-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}.swiper-creative .swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}.swiper-cards{overflow:visible}.swiper-cards .swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}</style><style>.gatsby-image-wrapper{position:relative;overflow:hidden}.gatsby-image-wrapper picture.object-fit-polyfill{position:static!important}.gatsby-image-wrapper img{bottom:0;height:100%;left:0;margin:0;max-width:none;padding:0;position:absolute;right:0;top:0;width:100%;object-fit:cover}.gatsby-image-wrapper [data-main-image]{opacity:0;transform:translateZ(0);transition:opacity .25s linear;will-change:opacity}.gatsby-image-wrapper-constrained{display:inline-block;vertical-align:top}</style><noscript><style>.gatsby-image-wrapper noscript [data-main-image]{opacity:1!important}.gatsby-image-wrapper [data-placeholder-image]{opacity:0!important}</style></noscript>
5<script type="module">const e="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;e&&document.body.addEventListener("load",(function(e){const t=e.target;if(void 0===t.dataset.mainImage)return;if(void 0===t.dataset.gatsbyImageSsr)return;let a=null,n=t;for(;null===a&&n;)void 0!==n.parentNode.dataset.gatsbyImageWrapper&&(a=n.parentNode),n=n.parentNode;const o=a.querySelector("[data-placeholder-image]"),r=new Image;r.src=t.currentSrc,r.decode().catch((()=>{})).then((()=>{t.style.opacity=1,o&&(o.style.opacity=0,o.style.transition="opacity 500ms linear")}))}),!0);</script>
5<link rel="icon" href="/favicon-32x32.png?v=2c47dac95e540181ec657d633b8ad641" type="image/png"/><link rel="manifest" href="/manifest.webmanifest" crossorigin="anonymous"/><link rel="apple-touch-icon" sizes="48x48" href="/icons/icon-48x48.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="72x72" href="/icons/icon-72x72.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="96x96" href="/icons/icon-96x96.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="144x144" href="/icons/icon-144x144.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="192x192" href="/icons/icon-192x192.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="256x256" href="/icons/icon-256x256.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="384x384" href="/icons/icon-384x384.png?v=2c47dac95e540181ec657d633b8ad641"/><link rel="apple-touch-icon" sizes="512x512" href="/icons/icon-512x512.png?v=2c47dac95e540181ec657d633b8ad641"/><title data-react-helmet="true">Geoapify Blog</title><link data-react-helmet="true" rel="canonical" href="https://www.geoapify.com/blog/" data-baseprotocol="https:" data-basehost="www.geoapify.com"/>
5<script data-react-helmet="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"How to Use Geoapify OpenAPI Specifications with AI Coding Tools and API Clients","item":"https://www.geoapify.com/geoapify-openapi-specifications-ai-coding-tools/"},{"@type":"ListItem","position":2,"name":"Beyond Web Mercator: How Ready Are Web Maps for Other Projections?","item":"https://www.geoapify.com/beyond-web-mercator-web-map-projections/"},{"@type":"ListItem","position":3,"name":"How to Use Maps, Geocoding and Routing APIs in a GDPR-Compliant Application","item":"https://www.geoapify.com/maps-geocoding-routing-apis-gdpr-compliant-application/"},{"@type":"ListItem","position":4,"name":"MCP vs. REST APIs: Which Should You Use for AI Applications?","item":"https://www.geoapify.com/mcp-vs-rest-apis-ai-applications/"},{"@type":"ListItem","position":5,"name":"ZIP Code vs Postal Code: Whatâs the Difference?","item":"https://www.geoapify.com/zip-code-vs-postal-code/"},{"@type":"ListItem","position":6,"name":"How to Verify an Address with USPS (And When You Need an Address Validation API)","item":"https://www.geoapify.com/address-ver
5ification-methods-usps-api-alternatives/"}]}</script>
5<script data-react-helmet="true" src="/addLabelsToTables.js" type="text/javascript"></script>
5<link rel="sitemap" type="application/xml" href="/sitemap-index.xml"/><link rel="alternate" type="application/rss+xml" title="Geoapify Location Platform" href="/rss.xml"/></head><body><div id="___gatsby"><div style="outline:none" tabindex="-1" id="gatsby-focus-wrapper"><header class="sticky top-0 bg-white shadow z-20"><div class="container flex flex-row justify-between items-center mx-auto py-4 px-2 md:px-8 max-w-full"><div><a class="flex items-center" href="/"><div class="w-12 mr-3"><svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" class="" viewBox="0 0 66.145832 66.145835" version="1.1"><g transform="translate(0,-230.85415)"><g id="g1644" transform="matrix(7.218137,0,0,7.218137,737.87653,1482.3405)"><g transform="matrix(0.36807926,0,0,0.36807926,-36.510506,-111.70966)" style="fill:#6d62c7;fill-opacity:1" id="g7894"><g id="g7150-8" style="fill:#6d62c7;fill-opacity:1"><path id="use7148-2" d="m -171.43659,-150.59598 h 2.80723 l 0.16139,0.23812 0.24871,0.36777 0.254,0.37307 0.25929,0.38629 0.2593,0.39158 0.26458,0.39952 0.26987,0.41011 0.27252,0.42068 0.27517,0.42863 0.27781,0.43656 0.27782,-0.43656 0.27516,-0.42863 0.27252,-0.42068 0.26723,-0.41011 0.26723,-0.39952 0.25929,-0.39158 0.2593,-0.38629 0.254,-0.37307 0.2487,-0.36777 0.1614,-0.23812 h 2.80723 l 3.30464,4.29419 -8.65452,2.65377 v 0 l -8.65452,-2.65377 z" style="fill:#6d62c7;fill-opacity:1;stroke-width:0.26458332"></path></g><g id="g7154-0" style="fill:#6d62c7;fill-opacity:1"><path id="use7152-2" d="m -165.58665,-166.53448 0.2487,0.0291 0.24078,0.0344 0.24077,0.045 0.23812,0.0556 0.23548,0.0661 0.22754,0.0741 0.22754,0.0847 0.21961,0.0926 0.21696,0.10054 0.21431,0.10848 0.20637,0.11906 0.20373,0.127 0.19579,0.1323 0.19315,0.14287 0.18521,0.14552 0.18256,0.15611 0.17463,0.16404 0.16933,0.16933 0.16404,0.17463 0.15346,0.1852 0.15346,0.18786 0.14023,0.19579 0.13758,0.20108 0.127,0.20638 0.11906,0.20902 0.11377,0.21696 0.10584,0.22225 0.0979,0.22489 0.0873,0.23284 0.0794,0.23548 0.0741,0.24077 0.0582,0.24341 0.0556,0.24607 0.045,0.25135 0.0344,0.254 0.0265,0.25665 0.0132,0.25929 0.005,0.26193 -0.005,0.26459 -0.0132,0.25929 -0.0265,0.25929 -0.0344,0.25929 -0.045,0.254 -0.0556,0.25665 -0.0582,0.25135 -0.0741,0.25665 -0.0794,0.25135 -0.0873,0.254 -0.0979,0.254 -0.10584,0.25665 -0.11377,0.254 -0.11906,0.25929 -0.127,0.25929 -0.13758,0.25929 -0.14023,0.26459 -0.15346,0.26458 -0.15346,0.26988 -0.16404,0.26987 -0.16933,0.27517 -0.17463,0.28046 -0.18256,0.2831 -0.18521,0.2884 -0.19315,0.29368 -0.39952,0.59796 -0.20637,0.30956 -0.21431,0.31221 -0.21696,0.32279 -0.21961,0.32544 -0.22754,0.33338 -0.22754,0.33866 -0.23548,0.34925 -0.23812,0.35455 -0.24077,0.36247 -0.24078,0.37042 -0.2487,0.38365 -0.24871,0.38629 -0.25136,0.39952 -0.254,-0.39952 -0.24606,-0.38629 -0.24871,-0.38365 -0.24077,-0.37042 -0.24077,-0.36247 -0.23812,-0.35455 -0.23548,-0.34925 -0.22755,-0.33866 -0.22754,-0.33338 -0.2196,-0.32544 -0.21696,-0.32279 -0.21431,-0.31221 -0.20638,-0.30956 -0.39952,-0.59796 -0.19314,-0.29368 -0.18786,-0.2884 -0.17991,-0.2831 -0.17463,-0.28046 -0.16933,-0.27517 -0.16404,-0.26987 -0.15611,-0.26988 -0.15081,-0.26458 -0.14023,-0.26459 -0.13758,-0.25929 -0.127,-0.25929 -0.12171,-0.25929 -0.11377,-0.254 -0.10319,-0.25665 -0.0979,-0.254 -0.0873,-0.254 -0.0794,-0.25135 -0.0741,-0.25665 -0.0609,-0.25135 -0.0556,-0.25665 -0.0423,-0.254 -0.0344,-0.25929 -0.0265,-0.25929 -0.0159,-0.25929 -0.003,-0.26459 0.003,-0.26193 0.0159,-0.25929 0.0265,-0.25665 0.0344,-0.254 0.0423,-0.25135 0.0556,-0.24607 0.0609,-0.24341 0.0741,-0.24077 0.0794,-0.23548 0.0873,-0.23284 0.0979,-0.22489 0.10319,-0.22225 0.11377,-0.21696 0.12171,-0.20902 0.127,-0.20638 0.13758,-0.20108 0.14023,-0.19579 0.15081,-0.18786 0.15611,-0.1852 0.16404,-0.17463 0.16933,-0.16933 0.17463,-0.16404 0.17991,-0.15611 0.18786,-0.14552 0.19314,-0.14287 0.19579,-0.1323 0.20373,-0.127 0.20638,-0.11906 0.21431,-0.10848 0.21696,-0.10054 0.2196,-0.0926 0.22754,-0.0847 0.22755,-0.0741 0.23548,-0.0661 0.23812,-0.0556 0.24077,-0.045 0.24077,-0.0344 0.24871,-0.0291 0.24606,-0.0132 0.254,-0.005 0.25136,0.005 z m -0.73819,3.01096 -0.11642,0.0132 -0.11642,0.0132 -0.11377,0.0238 -0.11112,0.0238 -0.11113,0.0344 -0.10847,0.0344 -0.10584,0.0397 -0.10583,0.045 -0.10319,0.0476 -0.10054,0.0503 -0.0979,0.0556 -0.0952,0.0608 -0.0953,0.0635 -0.0926,0.0661 -0.0873,0.0688 -0.0873,0.0741 -0.0794,0.0794 -0.082,0.0794 -0.0767,0.0847 -0.0741,0.0847 -0.0714,0.09 -0.0688,0.0926 -0.0609,0.0952 -0.0608,0.0979 -0.0582,0.10055 -0.0529,0.10054 -0.0979,0.21166 -0.
50397,0.11113 -0.037,0.11112 -0.037,0.11377 -0.0265,0.11378 -0.0265,0.11906 -0.0212,0.11906 -0.0159,0.11906 -0.0132,0.12436 -0.008,0.12171 -0.003,0.12435 0.003,0.12435 0.008,0.12436 0.0132,0.12171 0.0159,0.11906 0.0212,0.11906 0.0265,0.11642 0.0265,0.11377 0.037,0.11377 0.037,0.11112 0.0397,0.11113 0.0979,0.21431 0.0529,0.10054 0.0582,0.10055 0.0608,0.0979 0.0609,0.0952 0.0688,0.0926 0.0714,0.0873 0.0741,0.0873 0.0767,0.082 0.082,0.082 0.0794,0.0794 0.0873,0.0714 0.0873,0.0714 0.0926,0.0661 0.0953,0.0635 0.0952,0.0608 0.0979,0.0556 0.10054,0.0529 0.10319,0.045 0.10583,0.045 0.10584,0.037 0.10847,0.037 0.11113,0.0317 0.11112,0.0265 0.11377,0.0212 0.11642,0.0185 0.11642,0.0106 0.11906,0.008 0.11906,0.003 0.11907,-0.003 0.11906,-0.008 0.11642,-0.0106 0.11641,-0.0185 0.11377,-0.0212 0.11113,-0.0265 0.11112,-0.0317 0.10848,-0.037 0.10584,-0.037 0.10583,-0.045 0.10319,-0.045 0.10054,-0.0529 0.0979,-0.0556 0.0952,-0.0608 0.0953,-0.0635 0.0926,-0.0661 0.0873,-0.0714 0.0847,-0.0714 0.082,-0.0794 0.082,-0.082 0.0767,-0.082 0.0741,-0.0873 0.0714,-0.0873 0.0661,-0.0926 0.0635,-0.0952 0.0609,-0.0979 0.0582,-0.10055 0.0529,-0.10054 0.0952,-0.21431 0.0423,-0.11113 0.037,-0.11112 0.0344,-0.11377 0.0291,-0.11377 0.0265,-0.11642 0.0212,-0.11906 0.0159,-0.11906 0.0132,-0.12171 0.005,-0.12436 0.003,-0.12435 -0.003,-0.12435 -0.005,-0.12171 -0.0132,-0.12436 -0.0159,-0.11906 -0.0212,-0.11906 -0.0265,-0.11906 -0.0291,-0.11378 -0.0344,-0.11377 -0.037,-0.11112 -0.0423,-0.11113 -0.0952,-0.21166 -0.0529,-0.10054 -0.0582,-0.10055 -0.0609,-0.0979 -0.0635,-0.0952 -0.0661,-0.0926 -0.0714,-0.09 -0.0741,-0.0847 -0.0767,-0.0847 -0.082,-0.0794 -0.082,-0.0794 -0.0847,-0.0741 -0.0873,-0.0688 -0.0926,-0.0661 -0.0953,-0.0635 -0.0952,-0.0608 -0.0979,-0.0556 -0.10054,-0.0503 -0.10319,-0.0476 -0.10583,-0.045 -0.10584,-0.0397 -0.10848,-0.0344 -0.11112,-0.0344 -0.11113,-0.0238 -0.11377,-0.0238 -0.11641,-0.0132 -0.11642,-0.0132 -0.11906,-0.008 -0.11907,-0.003 -0.11906,0.003 z" style="fill:#6d62c7;fill-opacity:1;stroke-width:0.26458332"></path></g></g></g></g></svg></div><span class="text-2xl font-semibold text-gray-700 md:text-3xl">Geoapify</span></a></div><div class="flex-1 ml-24 xl:ml-64 2xl:ml-72 flex-row items-center justify-center hidden lg:flex"><div class="dropdown-menu-container font-medium tracking-wider pt-4 pb-4 pr-3 pl-3 xl:pr-5 xl:pl-5 relative"><a class="menu-link inline-block text-gray-900 " href="/">Home</a></div><div class="dropdown-menu-container font-medium tracking-wider pt-4 pb-4 pr-3 pl-3 xl:pr-5 xl:pl-5 relative"><a class="menu-link inline-block text-gray-900 " href="/products-and-services/">Products & Services<span class="menu-link-arrow lnr lnr-chevron-down ml-3 text-xs"></span></a></div><div class="dropdown-menu-container font-medium tracking-wider pt-4 pb-4 pr-3 pl-3 xl:pr-5 xl:pl-5 relative"><a class="menu-link inline-block text-gray-900 " href="/solutions/">Solutions<span class="menu-link-arrow lnr lnr-chevron-down ml-3 text-xs"></span></a></div><div class="dropdown-menu-container font-medium tracking-wider pt-4 pb-4 pr-3 pl-3 xl:pr-5 xl:pl-5 relative"><a class="menu-link inline-block text-gray-900 " href="/tutorials/">Developers<span class="menu-link-arrow lnr lnr-chevron-down ml-3 text-xs"></span></a></div><div class="dropdown-menu-container font-medium tracking-wider pt-4 pb-4 pr-3 pl-3 xl:pr-5 xl:pl-5 relative"><a class="menu-link inline-block text-gray-900 " href="/pricing/">Pricing</a></div><div class="dropdown-menu-container font-medium tracking-wider pt-4 pb-4 pr-3 pl-3 xl:pr-5 xl:pl-5 relative"><a class="menu-link inline-block text-gray-900 " href="/blog/">Blog</a></div></div><div class="flex mx-5 lg:mx-0 flex-row items-center justify-end"><div class="inline-block hidden 2xl:flex truncate"><a class="font-medium" href="https://myprojects.geoapify.com/"><button type="button" class=" 6 py-2 px-5 7 bg-secondary hover:bg-primary text-gray-200 hover:text-gray-200 8 9 rounded-lg 10 outline-none 11 focus:outline-none 12 uppercase 13 tracking-wider 14 font-medium 15 text-sm 16 geoapify-button 17 w-full 18 ">
18Log in / sign up</button></a></div><div class="inline-block 2xl:hidden truncate"><a class="font-medium" href="https://myprojects.geoapify.com/"><button type="button" class=" 19 py-2 px-5 20 bg-secondary hover:bg-primary text-gray-200 hover:text-gray-200 21 22 rounded-lg 23 outline-none 24 focus:outline-none 25 uppercase 26 tracking-wider 27 font-medium 28 text-sm 29 geoapify-button 30 w-full 31 ">Log in</button></a></div></div><div class="flex-1 flex flex-row items-center justify-end lg:hidden"><button class="outline-none focus:outline-none text-4xl text-gray-900" type="button"><span class="lnr lnr-menu"></span></button></div></div></header><main class="text-gray-900"><header class="blog-header"><h1>Blog</h1></header><div class="blog-posts grid grig-cols-1 md:grid-cols-2 lg:grid-cols-3 my-10 gap-4"><div class="tutorial-post"><div class="tutorial-post-image"><a href="/geoapify-openapi-specifications-ai-coding-tools/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained image h-full"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='300'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:transparent;position:absolute;top:0;left:0;bottom:0;right:0" decoding="async" src="data:image/webp;base64,UklGRr4AAABXRUJQVlA4ILIAAABwBACdASoUAAoAPjEUiEKiISEYBAAgAwSygE6DtAAmDGva8h463r/z9BmZAAD+/kcXkKtt6WDYkXRXtgaAxnqURf9I3bbTki640Lk/2PH+m//+Tb/9qGLqOZcN/U3ceZgMIeH1BnNn/0E/+DWU4dPwfLYTh3bsj7TOsPyDBDTUi/EIGd6YFIuRMxeTKThksDeO0flnmfhNN36qTiFW2Q4ui3el9GOWgU03xF+tsG4+vAAA" alt=""/><picture><source type="image/webp" data-srcset="/static/a9a7f3b573a9c1c5d756c298f2ff46c7/81479/geoapify-openapi-ai-coding-tools.webp 300w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/3a802/geoapify-openapi-ai-coding-tools.webp 450w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/06a3e/geoapify-openapi-ai-coding-tools.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" data-src="/static/a9a7f3b573a9c1c5d756c298f2ff46c7/c89fc/geoapify-openapi-ai-coding-tools.png" data-srcset="/static/a9a7f3b573a9c1c5d756c298f2ff46c7/830f0/geoapify-openapi-ai-coding-tools.png 300w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/61373/geoapify-openapi-ai-coding-tools.png 450w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/c89fc/geoapify-openapi-ai-coding-tools.png 600w" alt="Geoapify OpenAPI JSON spec flowing to AI coding agents, API clients, and typed TypeScript client cards"/></picture><noscript><picture><source type="image/webp" srcSet="/static/a9a7f3b573a9c1c5d756c298f2ff46c7/81479/geoapify-openapi-ai-coding-tools.webp 300w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/3a802/geoapify-openapi-ai-coding-tools.webp 450w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/06a3e/geoapify-openapi-ai-coding-tools.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" src="/static/a9a7f3b573a9c1c5d756c298f2ff46c7/c89fc/geoapify-openapi-ai-coding-tools.png" srcSet="/static/a9a7f3b573a9c1c5d756c298f2ff46c7/830f0/geoapify-openapi-ai-coding-tools.png 300w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/61373/geoapify-openapi-ai-coding-tools.png 450w,/static/a9a7f3b573a9c1c5d756c298f2ff46c7/c89fc/geoapify-openapi-ai-coding-tools.png 600w" alt="Geoapify OpenAPI JSON spec flowing to AI coding agents, API clients, and typed TypeScript client cards"/></picture></noscript>
31<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
31</div></a></div><div class="blog-post-categories px-3"><a href="/category/ai-integrations/">AI Integrations</a></div><div class="blog-post-title"><h2><a href="/geoapify-openapi-specifications-ai-coding-tools/">How to Use Geoapify OpenAPI Specifications with AI Coding Tools and API Clients</a></h2></div><div class="blog-post-meta px-3"><h6>By Geoapify / <!-- -->01 October, 2026</h6></div><div class="blog-post-text px-3">Give AI coding tools and API clients the real Geoapify endpoints, parameters, and schemas with OpenAPI specifications.<!-- -->...</div><div class="blog-post-button px-3"><a href="/geoapify-openapi-specifications-ai-coding-tools/">Read More</a></div><div class="blog-post-tags px-3"><span class="label">Tags:</span><div class="inline-block"><a href="/tag/code-sample/">Code sample</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/front-end/">Front End</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/address-autocomplete/">Address Autocomplete</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/geocoding/">Geocoding</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/routing-api/">Routing API</a></div></div></div><div class="tutorial-post"><div class="tutorial-post-image"><a href="/beyond-web-mercator-web-map-projections/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained image h-full"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='300'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:transparent;position:absolute;top:0;left:0;bottom:0;right:0" decoding="async" src="data:image/webp;base64,UklGRjABAABXRUJQVlA4ICQBAADwBQCdASoUAAoAPjEUiEKiISEYBAAgAwSyAE6ZQOwAviDeGKwBwlZ498pbrADhIkZijeui0uojwAD+9Qcy2h5tj9P22O8p7LfF2yNAUGSP2sm+C/9N2QMetr7EINGmPUUif/Yw/77o/YjJS412s//lrMzVR9W9vLRENsT17eaXP+I7Od/CLwfMmLOn8hjoOLF8PrW+MjIK/Cl/4ystHpCMuWk+JoLRY38fpXwOW1218g9va5gpzkw7Djb/8nqfSqn7OXMWouKpIPh82msEzjOfzQ/Wxw//u/4hX+45DR6Yq//6WHH+C/kKuPJg4HT/rWkqbE7G9cyDtOQiWgw/gl8fj/3r3Ph3sLuSOX+AtBAJ8f/VjJv7MSmFTwZW/97+EDrSAAAA" alt=""/><picture><source type="image/webp" data-srcset="/static/c32d3ad1bea3f7c417d6474e4df28695/81479/map-projections.webp 300w,/static/c32d3ad1bea3f7c417d6474e4df28695/3a802/map-projections.webp 450w,/static/c32d3ad1bea3f7c417d6474e4df28695/06a3e/map-projections.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" data-src="/static/c32d3ad1bea3f7c417d6474e4df28695/c89fc/map-projections.png" data-srcset="/static/c32d3ad1bea3f7c417d6474e4df28695/830f0/map-projections.png 300w,/static/c32d3ad1bea3f7c417d6474e4df28695/61373/map-projections.png 450w,/static/c32d3ad1bea3f7c417d6474e4df28695/c89fc/map-projections.png 600w" alt="Beyond Web Mercator: comparing world map projections and web mapping libraries"/></picture><noscript><picture><source type="image/webp" srcSet="/static/c32d3ad1bea3f7c417d6474e4df28695/81479/map-projections.webp 300w,/static/c32d3ad1bea3f7c417d6474e4df28695/3a802/map-projections.webp 450w,/static/c32d3ad1bea3f7c417d6474e4df28695/06a3e/map-projections.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" src="/static/c32d3ad1bea3f7c417d6474e4df28695/c89fc/map-projections.png" srcSet="/static/c32d3ad1bea3f7c417d6474e4df28695/830f0/map-projections.png 300w,/static/c32d3ad1bea3f7c417d6474e4df28695/61373/map-projections.png 450w,/static/c32d3ad1bea3f7c417d6474e4df28695/c89fc/map-projections.png 600w" alt="Bey
31ond Web Mercator: comparing world map projections and web mapping libraries"/></picture></noscript>
31<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
31</div></a></div><div class="blog-post-categories px-3"><a href="/category/maps-api/">Maps API</a></div><div class="blog-post-title"><h2><a href="/beyond-web-mercator-web-map-projections/">Beyond Web Mercator: How Ready Are Web Maps for Other Projections?</a></h2></div><div class="blog-post-meta px-3"><h6>By Geoapify / <!-- -->21 September, 2026</h6></div><div class="blog-post-text px-3">How ready are web maps for other projections? Compare coordinate transformations, vector rendering, and tiled basemaps.<!-- -->...</div><div class="blog-post-button px-3"><a href="/beyond-web-mercator-web-map-projections/">Read More</a></div><div class="blog-post-tags px-3"><span class="label">Tags:</span><div class="inline-block"><a href="/tag/code-sample/">Code sample</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/leaflet/">Leaflet</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/maplibre-gl/">MapLibre Gl</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/map-tiles/">Map tiles</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/map-library/">Map library</a></div></div></div><div class="tutorial-post"><div class="tutorial-post-image"><a href="/maps-geocoding-routing-apis-gdpr-compliant-application/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained image h-full"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='300'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:transparent;position:absolute;top:0;left:0;bottom:0;right:0" decoding="async" src="data:image/webp;base64,UklGRkQBAABXRUJQVlA4IDgBAADQBgCdASoUAAoAPjEUiEKiISEYBAAgAwSgCdMoR3FyZ/wCpH1Ugxkabo+OX5N9gP9Ov9SLgQUL5pdtZWp3OAAA/v26xP78BmrpG109h88kubQd/v1DqlNDci/ZXDxj/zYedb8FpP92posev/PQUVAe20iXE/25Kp9ZTL3cjHyTPP0H7nuYncsIaP1Qb2GQfWL8j/a6wrOZ//USCr6nLvP+GvqQZFbmwzSLgxx5xRDX9w/QKwxEbYYLJun8zDIKaXkHHEUM/jyRn8Ns+sXiYGv9IiXThHCEhX+bSl5IH1GFjRzIGn//Hj+nv5SbFvf9R0e6Qa7/pEL+aeQt91nVfIq0GqjU+kf+zWYAEkAHVLcGFdROdsrc1Vefy9iXZ+Zgov+BK5Ng2uDsf78/X7RE/h9Rg2/9NkQsQAA=" alt=""/><picture><source type="image/webp" data-srcset="/static/ace474e72d97e102d34ebc06d6bb1ca4/81479/localtion-apis-and-gdpr.webp 300w,/static/ace474e72d97e102d34ebc06d6bb1ca4/3a802/localtion-apis-and-gdpr.webp 450w,/static/ace474e72d97e102d34ebc06d6bb1ca4/06a3e/localtion-apis-and-gdpr.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" data-src="/static/ace474e72d97e102d34ebc06d6bb1ca4/c89fc/localtion-apis-and-gdpr.png" data-srcset="/static/ace474e72d97e102d34ebc06d6bb1ca4/830f0/localtion-apis-and-gdpr.png 300w,/static/ace474e72d97e102d34ebc06d6bb1ca4/61373/localtion-apis-and-gdpr.png 450w,/static/ace474e72d97e102d34ebc06d6bb1ca4/c89fc/localtion-apis-and-gdpr.png 600w" alt="Location APIs and GDPR guide for maps, geocoding, and routing applications"/></picture><noscript><picture><source type="image/webp" srcSet="/static/ace474e72d97e102d34ebc06d6bb1ca4/81479/localtion-apis-and-gdpr.webp 300w,/static/ace474e72d97e102d34ebc06d6bb1ca4/3a802/localtion-apis-and-gdpr.webp 450w,/static/ace474e72d97e102d34ebc06d6bb1ca4/06a3e/localtion-apis-and-gdpr.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" src="/static/ace474e72d97e102d34ebc06d6bb1ca4/c89fc/localtion-apis-and-gdpr.png" srcSet="/static/ace474e72d97e102d34ebc06d6bb1ca4/830f0/localtion-apis-and-gdpr.png 300w,/static/ace474e72d97e102d34ebc06d6bb1ca4/61373/localtion-apis-and-gdpr.png 450w,/static/ace474e72d97e102d34ebc06d6bb1ca4/c89fc/localtion-apis-and-gdpr.png 600w" alt="Location APIs and GDPR guide for maps, geocoding, and routing applications"/></picture></noscript>
31<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
31</div></a></div><div class="blog-post-categories px-3"><a href="/category/maps-api/">Maps API</a></div><div class="blog-post-title"><h2><a href="/maps-geocoding-routing-apis-gdpr-compliant-application/">How to Use Maps, Geocoding and Routing APIs in a GDPR-Compliant Application</a></h2></div><div class="blog-post-meta px-3"><h6>By Geoapify / <!-- -->27 August, 2026</h6></div><div class="blog-post-text px-3">Understand GDPR responsibilities for location APIs and compare default and EU-focused Geoapify endpoints<!-- -->...</div><div class="blog-post-button px-3"><a href="/maps-geocoding-routing-apis-gdpr-compliant-application/">Read More</a></div><div class="blog-post-tags px-3"><span class="label">Tags:</span><div class="inline-block"><a href="/tag/location-intelligence/">Location intelligence</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/map-tiles/">Map tiles</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/geocoding/">Geocoding</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/routing-api/">Routing API</a></div></div></div><div class="tutorial-post"><div class="tutorial-post-image"><a href="/mcp-vs-rest-apis-ai-applications/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained image h-full"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='300'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:transparent;position:absolute;top:0;left:0;bottom:0;right:0" decoding="async" src="data:image/webp;base64,UklGRgIBAABXRUJQVlA4IPYAAADwBACdASoUAAoAPjEUiEKiISEYBAAgAwS0AE6ZQBQwHmD+UBicu8PpwtojTAKpSBgA/v+04+qU5dwOfup7m4uHGh/9556oDP1gMDF/tWPndX++DdO9edO//XGg9tdXPIX8JY+3kVsy6WPdGUFJW+3gjsJ/Fr2/8LM3eFX8kVpIAIN8tj/XJm2l0PIQ+bsF7sRezezAux3uf9dvf44kk79/X3FXn/6ln+PKWT81HJX0NPGd//Ko2/4k/l9We3Od1XLadthD+PFC+q1w+ne3K5GSzhOvc+8/zV50raHR4Mv/D9o6PsPjlbeBxat1/tsRhKQlrBygwAA=" alt=""/><picture><source type="image/webp" data-srcset="/static/7aa7faaf202dd0df0be0b7524354272d/81479/mcp-vs-api.webp 300w,/static/7aa7faaf202dd0df0be0b7524354272d/3a802/mcp-vs-api.webp 450w,/static/7aa7faaf202dd0df0be0b7524354272d/06a3e/mcp-vs-api.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" data-src="/static/7aa7faaf202dd0df0be0b7524354272d/c89fc/mcp-vs-api.png" data-srcset="/static/7aa7faaf202dd0df0be0b7524354272d/830f0/mcp-vs-api.png 300w,/static/7aa7faaf202dd0df0be0b7524354272d/61373/mcp-vs-api.png 450w,/static/7aa7faaf202dd0df0be0b7524354272d/c89fc/mcp-vs-api.png 600w" alt="MCP tools versus REST API for AI applications and Geoapify location services"/></picture><noscript><picture><source type="image/webp" srcSet="/static/7aa7faaf202dd0df0be0b7524354272d/81479/mcp-vs-api.webp 300w,/static/7aa7faaf202dd0df0be0b7524354272d/3a802/mcp-vs-api.webp 450w,/static/7aa7faaf202dd0df0be0b7524354272d/06a3e/mcp-vs-api.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" src="/static/7aa7faaf202dd0df0be0b7524354272d/c89fc/mcp-vs-api.png" srcSet="/static/7aa7faaf202dd0df0be0b7524354272d/830f0/mcp-vs-api.png 300w,/static/7aa7faaf202dd0df0be0b7524354272d/61373/mcp-vs-api.png 450w,/static/7aa7faaf202dd0df0be0b7524354272d/c89fc/mcp-vs-api.png 600w" alt="MCP tools versus REST API for AI applications and Geoapify location services"/></picture></noscript>
31<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
31</div></a></div><div class="blog-post-categories px-3"><a href="/category/ai-integrations/">AI Integrations</a></div><div class="blog-post-title"><h2><a href="/mcp-vs-rest-apis-ai-applications/">MCP vs. REST APIs: Which Should You Use for AI Applications?</a></h2></div><div class="blog-post-meta px-3"><h6>By Geoapify / <!-- -->06 August, 2026</h6></div><div class="blog-post-text px-3">Compare MCP and REST APIs for AI applications and learn when each approach is the better fit<!-- -->...</div><div class="blog-post-button px-3"><a href="/mcp-vs-rest-apis-ai-applications/">Read More</a></div><div class="blog-post-tags px-3"><span class="label">Tags:</span><div class="inline-block"><a href="/tag/code-sample/">Code sample</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/location-intelligence/">Location intelligence</a></div></div></div><div class="tutorial-post"><div class="tutorial-post-image"><a href="/zip-code-vs-postal-code/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained image h-full"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='300'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:transparent;position:absolute;top:0;left:0;bottom:0;right:0" decoding="async" src="data:image/webp;base64,UklGRgABAABXRUJQVlA4IPQAAABwBQCdASoUAAoAPjEUiEKiISEYBAAgAwSgCdMoGv/2Rge4Ca5eNb2dFyBXdTh/zH9cfdEAAP71+z8a9oN/fT+FOJB/0FiN3PgKQkATN1XhXP/91N97hun+Sv31F//tGmy/WObHvTF+670TRZ/UpZ7ISX2S6FwHC/6R54GWcO6PwYLv6S4PJIpbiEVHti62W209uHa74TSuQ5HVrB3/xGTof+bJey7c+u41/I4x4pcv5I9C72XP6Gu2VIj9O4JKYoL4nY26NFhzr8andr/xiCf1Bi5ti6ca0z/oGaX//ah1238Ip4YOW55yXvZJqbgh7djIBGAA" alt=""/><picture><source type="image/webp" data-srcset="/static/0d1ca542e1b8a108e019c83e9c287c41/81479/zipcode-vs-postalcode.webp 300w,/static/0d1ca542e1b8a108e019c83e9c287c41/3a802/zipcode-vs-postalcode.webp 450w,/static/0d1ca542e1b8a108e019c83e9c287c41/06a3e/zipcode-vs-postalcode.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" data-src="/static/0d1ca542e1b8a108e019c83e9c287c41/c89fc/zipcode-vs-postalcode.png" data-srcset="/static/0d1ca542e1b8a108e019c83e9c287c41/830f0/zipcode-vs-postalcode.png 300w,/static/0d1ca542e1b8a108e019c83e9c287c41/61373/zipcode-vs-postalcode.png 450w,/static/0d1ca542e1b8a108e019c83e9c287c41/c89fc/zipcode-vs-postalcode.png 600w" alt="ZIP Code vs postal code comparison"/></picture><noscript><picture><source type="image/webp" srcSet="/static/0d1ca542e1b8a108e019c83e9c287c41/81479/zipcode-vs-postalcode.webp 300w,/static/0d1ca542e1b8a108e019c83e9c287c41/3a802/zipcode-vs-postalcode.webp 450w,/static/0d1ca542e1b8a108e019c83e9c287c41/06a3e/zipcode-vs-postalcode.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" src="/static/0d1ca542e1b8a108e019c83e9c287c41/c89fc/zipcode-vs-postalcode.png" srcSet="/static/0d1ca542e1b8a108e019c83e9c287c41/830f0/zipcode-vs-postalcode.png 300w,/static/0d1ca542e1b8a108e019c83e9c287c41/61373/zipcode-vs-postalcode.png 450w,/static/0d1ca542e1b8a108e019c83e9c287c41/c89fc/zipcode-vs-postalcode.png 600w" alt="ZIP Code vs postal code comparison"/></picture></noscript>
31<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
31</div></a></div><div class="blog-post-categories px-3"><a href="/category/solutions/">Solutions</a><a href="/category/geospatial/">Geospatial</a></div><div class="blog-post-title"><h2><a href="/zip-code-vs-postal-code/">ZIP Code vs Postal Code: Whatâs the Difference?</a></h2></div><div class="blog-post-meta px-3"><h6>By Geoapify / <!-- -->06 July, 2026</h6></div><div class="blog-post-text px-3">Learn whether a postal code is the same as a ZIP code, how the terms differ, and when each one is used in addresses<!-- -->...</div><div class="blog-post-button px-3"><a href="/zip-code-vs-postal-code/">Read More</a></div><div class="blog-post-tags px-3"><span class="label">Tags:</span><div class="inline-block"><a href="/tag/geocoding/">Geocoding</a><span class="delimiter mr-2">,</span></div><div class="inline-block"><a href="/tag/data-analysis/">Data analysis</a></div></div></div><div class="tutorial-post"><div class="tutorial-post-image"><a href="/address-verification-methods-usps-api-alternatives/"><div data-gatsby-image-wrapper="" class="gatsby-image-wrapper gatsby-image-wrapper-constrained image h-full"><div style="max-width:600px;display:block"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height='300'%20width='600'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E" style="max-width:100%;display:block;position:static"/></div><img aria-hidden="true" data-placeholder-image="" style="opacity:1;transition:opacity 500ms linear;background-color:transparent;position:absolute;top:0;left:0;bottom:0;right:0" decoding="async" src="data:image/webp;base64,UklGRuwAAABXRUJQVlA4IOAAAADQBACdASoUAAoAPjEUiEKiISEYBAAgAwSygFYZQIpErABsn0XA2M2G0rkY4qdYIAD++9jze/0sP7F/wwvbCOiUZJFgK9v+I/OJDSlSP2ltQnliYNkOWmvAPD0hp+Ruj3dyfzaSHzv6fo5MTBx9C7+7h7zvJPkRlc+lba/SIv9nGxgdO3P9GJTkOkNiDLgYx7xTZmo7VZi+0DACU/Zfqdvca5dSr9X/MbUhjAuT6/1c/S9AEVYFK/EHSTQBtdHT7HlV7aS14w2sBX12gx6NLhyuMDS7g8dFdhZFBVC8J/SAAA==" alt=""/><picture><source type="image/webp" data-srcset="/static/7820165052433a18471cb8b3992b2707/81479/usps-verify-addresses.webp 300w,/static/7820165052433a18471cb8b3992b2707/3a802/usps-verify-addresses.webp 450w,/static/7820165052433a18471cb8b3992b2707/06a3e/usps-verify-addresses.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" data-src="/static/7820165052433a18471cb8b3992b2707/c89fc/usps-verify-addresses.png" data-srcset="/static/7820165052433a18471cb8b3992b2707/830f0/usps-verify-addresses.png 300w,/static/7820165052433a18471cb8b3992b2707/61373/usps-verify-addresses.png 450w,/static/7820165052433a18471cb8b3992b2707/c89fc/usps-verify-addresses.png 600w" alt="Validate and verify addresses with API to check user input"/></picture><noscript><picture><source type="image/webp" srcSet="/static/7820165052433a18471cb8b3992b2707/81479/usps-verify-addresses.webp 300w,/static/7820165052433a18471cb8b3992b2707/3a802/usps-verify-addresses.webp 450w,/static/7820165052433a18471cb8b3992b2707/06a3e/usps-verify-addresses.webp 600w" sizes="(min-width: 600px) 600px, 100vw"/><img data-gatsby-image-ssr="" data-main-image="" style="opacity:0" sizes="(min-width: 600px) 600px, 100vw" decoding="async" loading="lazy" src="/static/7820165052433a18471cb8b3992b2707/c89fc/usps-verify-addresses.png" srcSet="/static/7820165052433a18471cb8b3992b2707/830f0/usps-verify-addresses.png 300w,/static/7820165052433a18471cb8b3992b2707/61373/usps-verify-addresses.png 450w,/static/7820165052433a18471cb8b3992b2707/c89fc/usps-verify-addresses.png 600w" alt="Validate and verify addresses with API to check user input"/></picture></noscript>
31<script type="module">const t="undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;if(t){const t=document.querySelectorAll("img[data-main-image]");for(let e of t){e.dataset.src&&(e.setAttribute("src",e.dataset.src),e.removeAttribute("data-src")),e.dataset.srcset&&(e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset"));const t=e.parentNode.querySelectorAll("source[data-srcset]");for(let e of t)e.setAttribute("srcset",e.dataset.srcset),e.removeAttribute("data-srcset");e.complete&&(e.style.opacity=1,e.parentNode.parentNode.querySelector("[data-placeholder-image]").style.opacity=0)}}</script>
31</div></a></div><div class="blog-post-categories px-3"><a href="/category/maps-api/">Maps API</a><a href="/category/use-cases/">Use cases</a></div><div class="blog-post-title"><h2><a href="/address-verification-methods-usps-api-alternatives/">How to Verify an Address with USPS (And When You Need an Address Validation API)</a></h2></div><div class="blog-post-meta px-3"><h6>By Geoapify / <!-- -->21 June, 2026</h6></div><div class="blog-post-text px-3">Learn how USPS address verification works, when it is enough, and when to use geocoding or address autocomplete instead.<!-- -->...</div><div class="blog-post-button px-3"><a href="/address-verification-methods-usps-api-alternatives/">Read More</a></div><div class="blog-post-tags px-3"><span class="label">Tags:</span><div class="inline-block"><a href="/tag/geocoding/">Geocoding</a></div></div></div></div><div class="blog-pagination"><a class="page-label current" href="/blog/">1</a><a class="page-label " href="/blog/2/">2</a><a class="page-label " href="/blog/3/">3</a><span class="page-placeholder">...</span><a class="page-label " href="/blog/2/">Next</a></div></main><footer class="container mx-auto py-5 px-3 mt-24 text-gray-800"><div class="flex mx-3 mb-24 justify-between flex-col lg:flex-row"><div class="flex-1 max-w-md px-4 mb-5"><svg xmlns="http://www.w3.org/2000/svg" width="250" height="65" viewBox="0 0 500 129.99999" version="1.1"><g transform="translate(182.92275,32.702956)"><g id="g1703"><g transform="translate(7.5657826,90.787048)" id="g1685"><g id="g1661" transform="matrix(3.7795209,0,0,3.7795209,223.14875,562.62739)"><text style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444494px;line-height:1.25;font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;stroke-width:0.26458335" x="-81.577644" y="-162.15517" id="text7757"><tspan id="tspan7755" x="-81.577644" y="-162.15517" style="font-style:normal;font-variant:normal;font-weight:500;font-sretch:normal;font-size:19.75555611px;font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";fill:#4d4d4d;stroke-width:0.26458335">Geoapify</tspan></text><text style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444494px;line-height:1.25;font-family:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458335" x="-81.020912" y="-152.67488" id="text7771"><tspan id="tspan7769" x="-81.020912" y="-152.67488" style="fill:#808080;stroke-width:0.26458335">Digital maps and components</tspan></text></g><g id="g1644" transform="matrix(14.284892,0,0,14.284892,1257.1053,2352.7838)"><g transform="matrix(0.36807926,0,0,0.36807926,-36.510506,-111.70966)" style="fill:#6d62c7;fill-opacity:1" id="g7894"><g id="g7150-8" style="fill:#6d62c7;fill-opacity:1"><path id="use7148-2" d="m -171.43659,-150.59598 h 2.80723 l 0.16139,0.23812 0.24871,0.36777 0.254,0.37307 0.25929,0.38629 0.2593,0.39158 0.26458,0.39952 0.26987,0.41011 0.27252,0.42068 0.27517,0.42863 0.27781,0.43656 0.27782,-0.43656 0.27516,-0.42863 0.27252,-0.42068 0.26723,-0.41011 0.26723,-0.39952 0.25929,-0.39158 0.2593,-0.38629 0.254,-0.37307 0.2487,-0.36777 0.1614,-0.23812 h 2.80723 l 3.30464,4.29419 -8.65452,2.65377 v 0 l -8.65452,-2.65377 z" style="fill:#6d62c7;fill-opacity:1;stroke-width:0.26458332"></path></g><g id="g7154-0" style="fill:#6d62c7;fill-opacity:1"><path id="use7152-2" d="m -165.58665,-166.53448 0.2487,0.0291 0.24078,0.0344 0.24077,0.045 0.23812,0.0556 0.23548,0.0661 0.22754,0.0741 0.22754,0.0847 0.21961,0.0926 0.21696,0.10054 0.21431,0.10848 0.20637,0.11906 0.20373,0.127 0.19579,0.1323 0.19315,0.14287 0.18521,0.14552 0.18256,0.15611 0.17463,0.16404 0.16933,0.16933 0.16404,0.17463 0.15346,0.1852 0.15346,0.18786 0.14023,0.19579 0.13758,0.20108 0.127,0.20638 0.11906,0.20902 0.11377,0.21696 0.10584,0.22225 0.0979,0.22489 0.0873,0.23284 0.0794,0.23548 0.0741,0.24077 0.0582,0.24341 0.0556,0.24607 0.045,0.25135 0.0344,0.254 0.0265,0.25665 0.0132,0.25929 0.005,0.26193 -0.005,0.26459 -0.0132,0.25929 -0.0265,0.25929 -0.0344,0.25929 -0.045,0.254 -0.0556,0.25665 -0.0582,0.25135 -0.0741,0.25665 -0.0794,0.25135 -0.0873,0.254 -0.0979,0.254 -0.10584,0.25665 -0.11377,0.254 -0.11906,0.25929 -0.127,0.25929 -0.13758,0.25929 -0.14023,0.26459 -0.15346,0.26458 -0.15346,0.26988 -0.16404,0.26987 -0.16933,0.27517 -0.17463,0.28046 -0.18256,
310.2831 -0.18521,0.2884 -0.19315,0.29368 -0.39952,0.59796 -0.20637,0.30956 -0.21431,0.31221 -0.21696,0.32279 -0.21961,0.32544 -0.22754,0.33338 -0.22754,0.33866 -0.23548,0.34925 -0.23812,0.35455 -0.24077,0.36247 -0.24078,0.37042 -0.2487,0.38365 -0.24871,0.38629 -0.25136,0.39952 -0.254,-0.39952 -0.24606,-0.38629 -0.24871,-0.38365 -0.24077,-0.37042 -0.24077,-0.36247 -0.23812,-0.35455 -0.23548,-0.34925 -0.22755,-0.33866 -0.22754,-0.33338 -0.2196,-0.32544 -0.21696,-0.32279 -0.21431,-0.31221 -0.20638,-0.30956 -0.39952,-0.59796 -0.19314,-0.29368 -0.18786,-0.2884 -0.17991,-0.2831 -0.17463,-0.28046 -0.16933,-0.27517 -0.16404,-0.26987 -0.15611,-0.26988 -0.15081,-0.26458 -0.14023,-0.26459 -0.13758,-0.25929 -0.127,-0.25929 -0.12171,-0.25929 -0.11377,-0.254 -0.10319,-0.25665 -0.0979,-0.254 -0.0873,-0.254 -0.0794,-0.25135 -0.0741,-0.25665 -0.0609,-0.25135 -0.0556,-0.25665 -0.0423,-0.254 -0.0344,-0.25929 -0.0265,-0.25929 -0.0159,-0.25929 -0.003,-0.26459 0.003,-0.26193 0.0159,-0.25929 0.0265,-0.25665 0.0344,-0.254 0.0423,-0.25135 0.0556,-0.24607 0.0609,-0.24341 0.0741,-0.24077 0.0794,-0.23548 0.0873,-0.23284 0.0979,-0.22489 0.10319,-0.22225 0.11377,-0.21696 0.12171,-0.20902 0.127,-0.20638 0.13758,-0.20108 0.14023,-0.19579 0.15081,-0.18786 0.15611,-0.1852 0.16404,-0.17463 0.16933,-0.16933 0.17463,-0.16404 0.17991,-0.15611 0.18786,-0.14552 0.19314,-0.14287 0.19579,-0.1323 0.20373,-0.127 0.20638,-0.11906 0.21431,-0.10848 0.21696,-0.10054 0.2196,-0.0926 0.22754,-0.0847 0.22755,-0.0741 0.23548,-0.0661 0.23812,-0.0556 0.24077,-0.045 0.24077,-0.0344 0.24871,-0.0291 0.24606,-0.0132 0.254,-0.005 0.25136,0.005 z m -0.73819,3.01096 -0.11642,0.0132 -0.11642,0.0132 -0.11377,0.0238 -0.11112,0.0238 -0.11113,0.0344 -0.10847,0.0344 -0.10584,0.0397 -0.10583,0.045 -0.10319,0.0476 -0.10054,0.0503 -0.0979,0.0556 -0.0952,0.0608 -0.0953,0.0635 -0.0926,0.0661 -0.0873,0.0688 -0.0873,0.0741 -0.0794,0.0794 -0.082,0.0794 -0.0767,0.0847 -0.0741,0.0847 -0.0714,0.09 -0.0688,0.0926 -0.0609,0.0952 -0.0608,0.0979 -0.0582,0.10055 -0.0529,0.10054 -0.0979,0.21166 -0.0397,0.11113 -0.037,0.11112 -0.037,0.11377 -0.0265,0.11378 -0.0265,0.11906 -0.0212,0.11906 -0.0159,0.11906 -0.0132,0.12436 -0.008,0.12171 -0.003,0.12435 0.003,0.12435 0.008,0.12436 0.0132,0.12171 0.0159,0.11906 0.0212,0.11906 0.0265,0.11642 0.0265,0.11377 0.037,0.11377 0.037,0.11112 0.0397,0.11113 0.0979,0.21431 0.0529,0.10054 0.0582,0.10055 0.0608,0.0979 0.0609,0.0952 0.0688,0.0926 0.0714,0.0873 0.0741,0.0873 0.0767,0.082 0.082,0.082 0.0794,0.0794 0.0873,0.0714 0.0873,0.0714 0.0926,0.0661 0.0953,0.0635 0.0952,0.0608 0.0979,0.0556 0.10054,0.0529 0.10319,0.045 0.10583,0.045 0.10584,0.037 0.10847,0.037 0.11113,0.0317 0.11112,0.0265 0.11377,0.0212 0.11642,0.0185 0.11642,0.0106 0.11906,0.008 0.11906,0.003 0.11907,-0.003 0.11906,-0.008 0.11642,-0.0106 0.11641,-0.0185 0.11377,-0.0212 0.11113,-0.0265 0.11112,-0.0317 0.10848,-0.037 0.10584,-0.037 0.10583,-0.045 0.10319,-0.045 0.10054,-0.0529 0.0979,-0.0556 0.0952,-0.0608 0.0953,-0.0635 0.0926,-0.0661 0.0873,-0.0714 0.0847,-0.0714 0.082,-0.0794 0.082,-0.082 0.0767,-0.082 0.0741,-0.0873 0.0714,-0.0873 0.0661,-0.0926 0.0635,-0.0952 0.0609,-0.0979 0.0582,-0.10055 0.0529,-0.10054 0.0952,-0.21431 0.0423,-0.11113 0.037,-0.11112 0.0344,-0.11377 0.0291,-0.11377 0.0265,-0.11642 0.0212,-0.11906 0.0159,-0.11906 0.0132,-0.12171 0.005,-0.12436 0.003,-0.12435 -0.003,-0.12435 -0.005,-0.12171 -0.0132,-0.12436 -0.0159,-0.11906 -0.0212,-0.11906 -0.0265,-0.11906 -0.0291,-0.11378 -0.0344,-0.11377 -0.037,-0.11112 -0.0423,-0.11113 -0.0952,-0.21166 -0.0529,-0.10054 -0.0582,-0.10055 -0.0609,-0.0979 -0.0635,-0.0952 -0.0661,-0.0926 -0.0714,-0.09 -0.0741,-0.0847 -0.0767,-0.0847 -0.082,-0.0794 -0.082,-0.0794 -0.0847,-0.0741 -0.0873,-0.0688 -0.0926,-0.0661 -0.0953,-0.0635 -0.0952,-0.0608 -0.0979,-0.0556 -0.10054,-0.0503 -0.10319,-0.0476 -0.10583,-0.045 -0.10584,-0.0397 -0.10848,-0.0344 -0.11112,-0.0344 -0.11113,-0.0238 -0.11377,-0.0238 -0.11641,-0.0132 -0.11642,-0.0132 -0.11906,-0.008 -0.11907,-0.003 -0.11906,0.003 z" style="fill:#6d62c7;fill-opacity:1;stroke-width:0.26458332"></path></g></g></g></g><rect y="-32.578259" x="-182.79805" height="129.75061" width="409.75061" id="rect1669" style="opacity:0.13399999;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffd5d5;stroke-width:0.24939427;stroke-linecap:butt;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"></rect></g></g></svg><p class="mt-5 text-gray-600">We offer maps, API, and tools to build a custom map for your website. Create an attractive and interactive map for your business!</p></div><div class="px-4 mb-5"><div class="mb-10"><div class="text-2xl font-medium tracking-wide">Platform</div><ul class="mt-4"><li class="my-3"><a class="text-gray-600" href="https://myprojects.geoapify.com/" target="_blank" rel="noopener noreferrer">My projects / API keys</a></li><li class="my-3"><a class="text-gray-600" href="https://apidocs.geoapify.com/docs/" target="_blank" rel="noopener noreferrer">Documentation</a></li><li class="my-3"><a class="text-gray-600" href="https://apidocs.geoapify.com/open-api/" target="_blank" rel="noopener noreferrer">OpenAPI Specifications</a></li><li class="my-3"><a class="text-gray-600" href="https://apidocs.geoapify.com/mcp/" target="_blank" rel="noopener noreferrer">MCP Tools</a></li><li class="my-3"><a class="text-gray-600" href="https://apidocs.geoapify.com/docs/mcp/" target="_blank" rel="noopener noreferrer">MCP Documentation</a></li><li class="my-3"><a class="text-gray-600" href="/blog/">Blog</a></li><li class="my-3"><a class="text-gray-600" href="/news-and-updates/">News and Updates</a></li><li class="my-3"><a class="text-gray-600" href="/open-geospatial-program/">Open Geospatial Program</a></li></ul></div></div><div class="px-4 mb-5"><div class="mb-10"><div class="text-2xl font-medium tracking-wide">Products</div><ul class="mt-4"><li class="my-3"><a class="text-gray-600" href="/maps-api/">APIs</a></li><li class="my-3"><a class="text-gray-600" href="/mapifator/">
31Mapifator</a></li><li class="my-3"><a class="text-gray-600" href="/mcp/">Geoapify MCP Server</a></li><li class="my-3"><a class="text-gray-600" href="/pricing/">Pricing</a></li><li class="my-3"><a class="text-gray-600" href="/terms-and-conditions/">Terms and Conditions</a></li></ul></div></div><div class="px-4 mb-5"><div class="mb-10"><div class="text-2xl font-medium tracking-wide">Downloads</div><ul class="mt-4"><li class="my-3"><a class="text-gray-600" href="/downloads/">All Downloads</a></li><li class="my-3"><a class="text-gray-600" href="/download-all-the-cities-towns-villages/">Cities, towns, villages</a></li><li class="my-3"><a class="text-gray-600" href="/download-postal-codes/">Postcodes (ZIP codes)</a></li><li class="my-3"><a class="text-gray-600" href="/download-timezones/">Timezones and boundaries</a></li></ul></div><div class="mb-10"><div class="text-2xl font-medium tracking-wide">Free tools</div><ul class="mt-4"><li class="my-3"><a class="text-gray-600" href="/tools/geocoding-online/">Online Geocoding</a></li><li class="my-3"><a class="text-gray-600" href="/tools/reverse-geocoding-online/">Online Reverse Geocoding</a></li><li class="my-3"><a class="text-gray-600" href="/tools/address-validation/">Bulk Address Validation</a></li><li class="my-3"><a class="text-gray-600" href="/tools/address-standardization/">Bulk Address Standardization</a></li></ul></div></div><div class="px-4 mb-5"><div class="mb-10"><div class="text-2xl font-medium tracking-wide">Company</div><ul class="mt-4"><li class="my-3"><a class="text-gray-600" href="/about-us/">About us</a></li><li class="my-3"><a class="text-gray-600" href="/privacy-policy/">Privacy policy</a></li><li class="my-3"><a class="text-gray-600" href="/cookie-policy/">Cookie policy</a></li><li class="my-3"><a class="text-gray-600" href="/credits/">Credits</a></li><li class="my-3"><a class="text-gray-600" href="/imprint/">Imprint</a></li></ul></div></div></div><div class="text-center italic text-gray-500">Copyright © <!-- -->2026<!-- -->. All Rights Reserved.</div></footer></div><div id="gatsby-announcer" style="position:absolute;top:0;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0" aria-live="assertive" aria-atomic="true"></div></div>
31<script id="gatsby-script-loader">/*<![CDATA[*/window.pagePath="/blog/";/*]]>*/</script>
31<!-- slice-start id="_gatsby-scripts-1" --> 32
32<script 33 id="gatsby-chunk-mapping" 34 > 35 window.___chunkMapping="{\"app\":[\"/app-1bb91ed244bf0fb57037.js\"],\"component---src-template-academy-js\":[\"/component---src-template-academy-js-2c3a1a4183a9d2a9a616.js\"],\"component---src-template-blog-js\":[\"/component---src-template-blog-js-0ccd21e22cdaa60227c2.js\"],\"component---src-template-page-js-content-file-path-src-pages-404-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-404-index-mdx-557cc4513df1e8371351.js\"],\"component---src-template-page-js-content-file-path-src-pages-about-us-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-about-us-index-mdx-6bcc81cb30472742bf05.js\"],\"component---src-template-page-js-content-file-path-src-pages-address-autocomplete-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-address-autocomplete-index-mdx-beeb5c7254ecc3e04b29.js\"],\"component---src-template-page-js-content-file-path-src-pages-address-lookup-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-address-lookup-index-mdx-eccd3d20456d59d5e8a6.js\"],\"component---src-template-page-js-content-file-path-src-pages-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-api-index-mdx-79a934cbbfc8d48905e9.js\"],\"component---src-template-page-js-content-file-path-src-pages-batch-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-batch-api-index-mdx-8048d1b11d9d9dd8cd61.js\"],\"component---src-template-page-js-content-file-path-src-pages-batch-geocoding-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-batch-geocoding-index-mdx-7b47958cea6340f26ca9.js\"],\"component---src-template-page-js-content-file-path-src-pages-boundaries-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-boundaries-api-index-mdx-60e9c2cfce0dd91536a8.js\"],\"component---src-template-page-js-content-file-path-src-pages-cloud-aws-paas-geocoding-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-cloud-aws-paas-geocoding-index-mdx-ffba8c40e0e48960e02c.js\"],\"component---src-template-page-js-content-file-path-src-pages-consulting-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-consulting-index-mdx-f929caf55693119e450a.js\"],\"component---src-template-page-js-content-file-path-src-pages-cookie-policy-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-cookie-policy-index-mdx-44887c6ab59a47b0302f.js\"],\"component---src-template-page-js-content-file-path-src-pages-credits-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-credits-index-mdx-31b0aa8a1ab5fd6a79a6.js\"],\"component---src-template-page-js-content-file-path-src-pages-data-processing-agreement-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-data-processing-agreement-index-mdx-1e11b635d21761336e67.js\"],\"component---src-template-page-js-content-file-path-src-pages-download-cities-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-download-cities-index-mdx-69a40ca71079484df068.js\"],\"component---src-template-page-js-content-file-path-src-pages-download-postcodes-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-download-postcodes-index-mdx-37fa9c513e7ce272c596.js\"],\"component---src-template-page-js-content-file-path-src-pages-download-timezones-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-download-timezones-index-mdx-6bffdeda7e67ffb19726.js\"],\"component---src-template-page-js-content-file-path-src-pages-downloads-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-downloads-index-mdx-c473770a0793cb6a496d.js\"],\"component---src-template-page-js-content-file-path-src-pages-education-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-education-index-mdx-eaabd299e48555cd9b45.js\"],\"component---src-template-page-js-content-file-path-src-pages-elevation-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-elevation-api-index-mdx-057d4cbf635b1a5a10f4.js\"],\"component---src-template-page-js-content-file-path-src-pages-european-alternative-to-google-maps-eu-hosting-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-european-alternative-to-google-maps-eu-hosting-index-mdx-4d2882a1e0b278670cb1.js\"],\"component---src-template-page-js-content-file-path-src-pages-evrouting-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-evrouting-index-mdx-0f58a6157afcf35f6617.js\"],\"component---src-template-page-js-content-file-path-src-pages-geocoding-address-standardization-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-geocoding-address-standardization-index-mdx-30d7d50af2926095e885.js\"],\"component---src-template-page-js-content-file-path-src-pages-geocoding-address-validation-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-geocoding-address-validation-index-mdx-1a4c81ed51bcd224fd49.js\"],\"component---src-template-page-js-content-file-path-src-pages-geocoding-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-geocoding-api-index-mdx-6ae4f410347181a13aac.js\"],\"component---src-template-page-js-content-file-path-src-pages-geocoding-online-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-geocoding-online-index-mdx-34f11b5a9c732de5592b.js\"],\"component---src-template-page-js-content-file-path-src-pages-geocoding-online-reverse-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-geocoding-online-reverse-index-mdx-e22c011460c66ac3bc79.js\"],\"component---src-template-page-js-content-file-path-src-pages-geomarketing-geotargeting-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-geomarketing-geotargeting-index-mdx-91bc115b0e4682127e5d.js\"],\"component---src-template-page-js-content-file-path-src-pages-get-started-with-ma
35ps-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-get-started-with-maps-api-index-mdx-5d6cef64d16155c6509c.js\"],\"component---src-template-page-js-content-file-path-src-pages-google-maps-alternative-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-google-maps-alternative-index-mdx-b3580054c13d528238c9.js\"],\"component---src-template-page-js-content-file-path-src-pages-healthcare-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-healthcare-index-mdx-f340f2fb8b6763126a82.js\"],\"component---src-template-page-js-content-file-path-src-pages-home-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-home-index-mdx-3f00fbf367f0c70c64f8.js\"],\"component---src-template-page-js-content-file-path-src-pages-imprint-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-imprint-index-mdx-47e79f297c7a3d2e6f00.js\"],\"component---src-template-page-js-content-file-path-src-pages-industries-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-industries-index-mdx-e9a865cafeb17c0bade6.js\"],\"component---src-template-page-js-content-file-path-src-pages-ip-geolocation-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-ip-geolocation-api-index-mdx-3cf990d365a5a20f4218.js\"],\"component---src-template-page-js-content-file-path-src-pages-isoline-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-isoline-api-index-mdx-3d28ba61d751527f0b24.js\"],\"component---src-template-page-js-content-file-path-src-pages-location-intelligence-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-location-intelligence-index-mdx-641580175eb2cb4d855b.js\"],\"component---src-template-page-js-content-file-path-src-pages-logistics-and-delivery-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-logistics-and-delivery-index-mdx-cf7bd69e5419daa1fcbe.js\"],\"component---src-template-page-js-content-file-path-src-pages-managed-installations-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-managed-installations-index-mdx-4b73c920bc3f69d93f3d.js\"],\"component---src-template-page-js-content-file-path-src-pages-map-marker-icon-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-map-marker-icon-index-mdx-600d9f9366409d0ea7c6.js\"],\"component---src-template-page-js-content-file-path-src-pages-map-matching-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-map-matching-api-index-mdx-45a8c53394704004f2f5.js\"],\"component---src-template-page-js-content-file-path-src-pages-map-tiles-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-map-tiles-index-mdx-5200af0ba01baec87f23.js\"],\"component---src-template-page-js-content-file-path-src-pages-map-with-pins-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-map-with-pins-index-mdx-919093b1c5d024803046.js\"],\"component---src-template-page-js-content-file-path-src-pages-mapifator-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-mapifator-index-mdx-68afbc2269be8c5a8d71.js\"],\"component---src-template-page-js-content-file-path-src-pages-mcp-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-mcp-index-mdx-e90845b6676a99c3dd2d.js\"],\"component---src-template-page-js-content-file-path-src-pages-open-geospatial-program-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-open-geospatial-program-index-mdx-ad118008385156dd188e.js\"],\"component---src-template-page-js-content-file-path-src-pages-place-details-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-place-details-api-index-mdx-d44f5416b0b2a62d2752.js\"],\"component---src-template-page-js-content-file-path-src-pages-places-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-places-api-index-mdx-59b50f5b2961c0627a6c.js\"],\"component---src-template-page-js-content-file-path-src-pages-postcode-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-postcode-api-index-mdx-97df14e18f4b97fc
35a5ea.js\"],\"component---src-template-page-js-content-file-path-src-pages-pricing-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-pricing-api-index-mdx-d80c8aa47459b1967727.js\"],\"component---src-template-page-js-content-file-path-src-pages-pricing-details-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-pricing-details-index-mdx-6dbec18fa42964435f3f.js\"],\"component---src-template-page-js-content-file-path-src-pages-privacy-policy-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-privacy-policy-index-mdx-dc8a873a2950a7d90742.js\"],\"component---src-template-page-js-content-file-path-src-pages-products-and-services-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-products-and-services-index-mdx-8737d92360effbf5a822.js\"],\"component---src-template-page-js-content-file-path-src-pages-real-estate-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-real-estate-index-mdx-90dab59708f94130fead.js\"],\"component---src-template-page-js-content-file-path-src-pages-reverse-geocoding-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-reverse-geocoding-api-index-mdx-eece77f5df4bf7391482.js\"],\"component---src-template-page-js-content-file-path-src-pages-route-matrix-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-route-matrix-api-index-mdx-c4b0edd8e99ab27cabed.js\"],\"component---src-template-page-js-content-file-path-src-pages-route-optimization-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-route-optimization-index-mdx-013391bafe1382653a99.js\"],\"component---src-template-page-js-content-file-path-src-pages-route-optimization-solutions-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-route-optimization-solutions-index-mdx-f34d17b4a1cf92b0a06d.js\"],\"component---src-template-page-js-content-file-path-src-pages-route-planner-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-route-planner-api-index-mdx-118063b2020d7126d78f.js\"],\"component---src-template-page-js-content-file-path-src-pages-routing-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-routing-api-index-mdx-8ea6ecf82437fdeb778d.js\"],\"component---src-template-page-js-content-file-path-src-pages-smart-city-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-smart-city-index-mdx-410fdeaadda60a21743f.js\"],\"component---src-template-page-js-content-file-path-src-pages-smart-city-portal-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-smart-city-portal-index-mdx-cbf7f877b912b98f5e96.js\"],\"component---src-template-page-js-content-file-path-src-pages-solutions-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-solutions-index-mdx-7a58e6d7b4f073c94de4.js\"],\"component---src-template-page-js-content-file-path-src-pages-static-maps-api-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-static-maps-api-index-mdx-0668c73dbf80735f5d59.js\"],\"component---src-template-page-js-content-file-path-src-pages-terms-and-conditions-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-terms-and-conditions-index-mdx-b876a5473d6524c97aec.js\"],\"component---src-template-page-js-content-file-path-src-pages-tourism-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-tourism-index-mdx-2ce89b3051cf809cd129.js\"],\"component---src-template-page-js-content-file-path-src-pages-travel-time-maps-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-travel-time-maps-index-mdx-9cac8f7746cbabf035f4.js\"],\"component---src-template-page-js-content-file-path-src-pages-whats-new-index-mdx\":[\"/component---src-template-page-js-content-file-path-src-pages-whats-new-index-mdx-509bfd61a3115f4ca472.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-03-26-travel-time-map-or-isochrone-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-03-26-travel-time-map-or-isochrone-index-mdx-99a234581e6b3bf2f28d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-03-31-administrative-vs-postcode-boundaries-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-03-31-administrative-vs-postcode-boundaries-index-mdx-44b84802350657fedb50.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-02-from-gis-to-geospatial-intelligence-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-02-from-gis-to-geospatial-intelligence-index-mdx-2416707655ada71751cc.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-03-raster-vs-vector-map-tiles-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-03-raster-vs-vector-map-tiles-index-mdx-99231394bed9622a5823.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-05-free-map-icons-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-05-free-map-icons-index-mdx-d433279aa9d9eda5de3d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-09-create-custom-map-marker-icon-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-09-create-custom-map-marker-icon-index-mdx-8643d0a57e79f02240c6.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-12-leaflet-vs-openlayers-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-12-leaflet-vs-openlayers-index-mdx-83bfb40ebc7b2318c99d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-17-openstreetmap-is-more-than-just-a-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-17-openstreetmap-is-more-than-just-a-map-index-mdx-ddebaa0b426bc81a0113.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-04-27-open-gis-data-by-copernicus-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-04-27-open-gis-data-by-copernicus-index-mdx-9c783e9fa50189cbb4a1.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-05-02-how-to-call-http-get-request-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-05-02-how-to-call-http-get-request-index-mdx-b589e836b35b59c8d44c.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-05-03-location-autocomplete-with-angular-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-05-03-location-autocomplete-with-angular-index-mdx-8c28031c3bf905959018.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-05-10-create-a-map-with-location-intelligence-components-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-05-10-create-a-map-with-location-intelligence-components-index-mdx-765229bbbf85e9f9e929.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-05-24-map-animation-with-ma
35pbox-gl-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-05-24-map-animation-with-mapbox-gl-index-mdx-c5e57694064e25c1a353.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-05-31-travel-time-map-top-10-use-cases-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-05-31-travel-time-map-top-10-use-cases-index-mdx-622d023ae4e9560b674f.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-06-06-how-to-make-the-location-search-more-relevant-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-06-06-how-to-make-the-location-search-more-relevant-index-mdx-4ff3b5280a6e240260f4.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-06-12-why-do-need-more-interactive-maps-if-we-have-google-maps-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-06-12-why-do-need-more-interactive-maps-if-we-have-google-maps-index-mdx-6135d699a8acfdee5f38.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-06-19-customer-pain-points-road-trip-planner-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-06-19-customer-pain-points-road-trip-planner-index-mdx-85a121dd1b418f31b49d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-07-02-what-is-openstreetmap-and-how-it-is-better-than-google-maps-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-07-02-what-is-openstreetmap-and-how-it-is-better-than-google-maps-index-mdx-1b22bb8884bc57bf7f90.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-10-08-tell-your-map-story-with-mapifator-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-10-08-tell-your-map-story-with-mapifator-index-mdx-deb958917683f4daba32.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-11-13-nominatim-vs-photon-geocoder-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-11-13-nominatim-vs-photon-geocoder-index-mdx-25ebe37e0fd61a934d47.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-11-19-5-steps-to-create-a-map-with-pins-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-11-19-5-steps-to-create-a-map-with-pins-index-mdx-2b8f3962e459addbc3c6.js\"],\"component---src-template-post-js-content-file-path-src-posts-2019-12-16-nominatim-geocoder-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2019-12-16-nominatim-geocoder-index-mdx-48b0d85d75c914c12880.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-02-01-visualizing-time-series-data-on-the-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-02-01-visualizing-time-series-data-on-the-map-index-mdx-3001b6a0145ead27ea8d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-02-07-create-a-map-from-excel-data-with-mapifator-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-02-07-create-a-map-from-excel-data-with-mapifator-index-mdx-28531ec850bc363bbdab.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-03-12-how-did-we-create-a-thematic-map-of-ski-resorts-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-03-12-how-did-we-create-a-thematic-map-of-ski-resorts-index-mdx-20d0dc4c331c2957fafa.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-03-30-react-leaflet-project-template-and-step-by-step-tutorial-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-03-30-react-leaflet-project-template-and-step-by-step-tutorial-index-mdx-a7cd78dbb06882c605a8.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-04-01-angular-leaflet-step-by-step-tutorial-to-add-a-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-04-01-angular-leaflet-step-by-step-tutorial-to-add-a-map-index-mdx-7e383890b4e055084799.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-04-02-map-libraries-comparison-leaflet-vs-mapbox-gl-vs-openlayers-trends-and-statistics-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-04-02-map-libraries-comparison-leaflet-vs-mapbox-gl-vs-openlayers-trends-and-statistics-index-mdx-ba965d1a405008b23664.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-04-11-address-field-with-autocomplete-step-by-step-tutorial-with-jsfiddle-example-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-04-11-address-field-with-autocomplete-step-by-step-tutorial-with-jsfiddle-example-index-mdx-677a9a276430dfe10121.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-04-18-address-autocomplete-component-npm-package-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-04-18-address-autocomplete-component-npm-package-index-mdx-8047ed8c16b7955f71aa.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-05-09-map-marker-icons-generator-create-beautiful-icons-for-your-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-05-09-map-marker-icons-generator-create-beautiful-icons-for-your-map-index-mdx-1e16a749364ad2dd556f.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-09-14-smart-place-search-to-satisfy-your-customers-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-09-14-smart-place-search-to-satisfy-your-customers-index-mdx-b58ec57b49fefc8a9c6e.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-11-17-graphhopper-routing-engine-isolines-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-11-17-graphhopper-routing-engine-isolines-index-mdx-8c32cd7b67f72131cdd9.js\"],\"component---src-template-post-js-content-file-path-src-posts-2020-12-08-time-distance-matrix-and-three-ways-to-use-it-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2020-12-08-time-distance-matrix-and-three-ways-to-use-it-index-mdx-6bebc933e3a7acad4ccf.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-01-11-pricing-update-january-2021-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-01-11-pricing-update-january-2021-index-mdx-ae28015b1a516da8a1be.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-01-18-developing-location-based-app-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-01-18-developing-location-based-app-index-mdx-a26c8bd6f1f14a242855.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-01-20-how-to-make-travel-time-maps-for-public-transport-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-01-20-how-to-make-travel-time-maps-for-public-transport-index-mdx-1e5ad3d15e36d3c79259.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-02-12-mapbox-gl-new-license-and-6-free-alternatives-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-02-12-mapbox-gl-new-license-and-6-free-alternatives-index-mdx-cf0a7a5993e5e50ebd1c.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-03-20-styling-a-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-03-20-styling-a-map-index-mdx-7eca3d91f6aaef2f0373.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-03-21-localizing-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-03-21-localizing-map-index-mdx-83a0a19edb8676debc5d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-04-12-delivery-route-optimization-example-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-04-12-delivery-route-optimization-example-index-mdx-9f4c003d3d5ee0d14593.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-04-14-route-and-schedule-optimization-example-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-04-14-route-and-schedule-optimization-example-index-mdx-8ac4f98e61cf6f046a82.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-04-16-bus-route-optimization-example-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-04-16-bus-route-optimization-example-index-mdx-b7eb1018c1abe578258c.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-05-11-address-validation-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-05-11-address-validation-index-mdx-16cb8db825e5d2a6c085.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-05-18-parse-postal-address-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-05-18-parse-postal-address-index-mdx-c38493c79706be2090d4.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-07-05-openstreetmap-geocoding-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-07-05-openstreetmap-geocoding-index-mdx-797c32d411d30ed7c23f.js\"],\"component---src-template-post-js-content-file-path-src-posts-2021-08-30-geocoding-services-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2021-08-30-geocoding-services-index-mdx-6e47295c786a92c6c9e0.js\"],\"component---src-template-post-js-content-file-path-src-posts-2022-01-17-leaflet-geocoding-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2022-01-17-leaflet-geocoding-index-mdx-5cedad1a00e1351aef76.js\"],\"component---src-template-post-js-content-file-path-src-posts-2022-01-19-openstreetmap-routing-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2022-01-19-openstreetmap-routing-index-mdx-ece5a724791060fa2281.js\"],\"component---src-template-post-js-content-file-path-src-posts-2022-03-07-geocode-millions-of-records-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2022-03-07-geocode-millions-of-records-index-mdx-c5ec818be17e5207e1f8.js\"],\"component---src-template-post-js-content-file-path-src-posts-2022-05-24-openstreetmap-data-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2022-05-24-openstreetmap-data-index-mdx-2122a0f6bd9d2c890812.js\"],\"component---src-template-post-js-content-file-path-src-posts-2022-09-19-getting-timezones-by-coords-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2022-09-19-getting-timezones-by-coords-index-mdx-8da9e9ebabd1066bdce4.js\"],\"component---src-template-post-js-content-file-path-src-posts-2022-11-09-python-sdk-from-3-d-party-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2022-11-09-python-sdk-from-3-d-party-index-mdx-233bd7c6c310e74d21ab.
35js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-01-30-how-geospatial-help-businesses-plan-for-disasters-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-01-30-how-geospatial-help-businesses-plan-for-disasters-index-mdx-7968d23b60de376495a4.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-02-15-google-maps-rate-limit-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-02-15-google-maps-rate-limit-index-mdx-5045327b952755ac883a.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-03-05-why-is-gis-important-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-03-05-why-is-gis-important-index-mdx-44fa50560437e44e3917.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-03-29-isochrone-maps-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-03-29-isochrone-maps-index-mdx-deae78ca365a80baeaf5.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-04-11-what-is-geolocation-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-04-11-what-is-geolocation-index-mdx-8438d86ef277649ea307.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-04-27-get-user-location-javascript-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-04-27-get-user-location-javascript-index-mdx-8be224fcaa19567e5662.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-05-15-truck-routing-api-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-05-15-truck-routing-api-index-mdx-f197aa84a3056d23a53f.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-06-04-geojson-and-javascript-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-06-04-geojson-and-javascript-index-mdx-0fd01beab119b7d01510.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-06-22-google-plus-codes-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-06-22-google-plus-codes-index-mdx-296cd5e7e61c7cdb4ad5.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-07-07-most-populated-cities-in-the-world-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-07-07-most-populated-cities-in-the-world-index-mdx-d55bbcf30ebfd43eb0e5.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-08-15-osm-for-local-marketing-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-08-15-osm-for-local-marketing-index-mdx-828c27d3f39932935970.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-10-26-cities-towns-villages-for-data-analysts-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-10-26-cities-towns-villages-for-data-analysts-index-mdx-9ead10fe59df21013203.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-11-22-us-postcodes-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-11-22-us-postcodes-index-mdx-5d1829cda35db629b911.js\"],\"component---src-template-post-js-content-file-path-src-posts-2023-12-13-postcode-formats-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2023-12-13-postcode-formats-index-mdx-0994ba6d008630398631.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-01-19-address-formats-by-country-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-01-19-address-formats-by-country-index-mdx-294d1eac5995a91c750d.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-02-07-speed-limits-worldwide-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-02-07-speed-limits-worldwide-index-mdx-cd05bef85e1b4aa14fec.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-03-12-noise-pollution-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-03-12-noise-pollution-index-mdx-fa86612dac63316b9d2e.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-05-01-places-chat-gpt-api-to-generate-place-descriptions-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-05-01-places-chat-gpt-api-to-generate-place-descriptions-index-mdx-afb90dbdbc0034d32f9a.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-06-07-uk-postcodes-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-06-07-uk-postcodes-index-mdx-f8a7b1587214606a5775.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-08-01-choropleth-maps-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-08-01-choropleth-maps-index-mdx-a9fc10278876182b6eb7.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-09-30-what-is-reverse-geocoding-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-09-30-what-is-reverse-geocoding-index-mdx-6a8081c8478ce8233441.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-11-02-how-to-avoid-429-too-many-requests-with-npm-rate-limiting-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-11-02-how-to-avoid-429-too-many-requests-with-npm-rate-limiting-index-mdx-de5a4b04e6bddc825e91.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-11-06-geocoding-vs-reverse-geocoding-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-11-06-geocoding-vs-reverse-geocoding-index-mdx-eec708ba124ef601ece9.js\"],\"component---src-template-post-js-content-file-path-src-posts-2024-12-04-what-is-an-isoline-map-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2024-12-04-what-is-an-isoline-map-index-mdx-e02d2fc20bb013463e2c.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-03-05-google-places-api-alternative-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-03-05-google-places-api-alternative-index-mdx-e40594042d843e101612.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-03-12-geospatical-analytics-guide-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-03-12-geospatical-analytics-guide-index-mdx-8d02f7c115f3b41753a8.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-03-13-geospatial-data-and-use-cases-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-03-13-geospatial-data-and-use-cases-index-mdx-502668a4ee0aff5e810a.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-06-02-thematic-maps-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-06-02-thematic-maps-index-mdx-821cacc70753c8c01bb2.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-09-01-address-standardization-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-09-01-address-standardization-index-mdx-b7711d035ace54a3e66e.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-09-19-python-geospatial-data-analysis-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-09-19-python-geospatial-data-analysis-index-mdx-41c70fa075c4ebc5dfbc.js\"],\"component---src-template-post-js-content-file-path-src-posts-2025-11-14-geoapify-as-an-alternative-to-google-maps-api-distance-matrix-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2025-11-14-geoapify-as-an-alternative-to-google-maps-api-distance-matrix-index-mdx-e8f2d3c5ce5a8f7f46ab.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-01-08-address-autocomplete-places-support-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-01-08-address-autocomplete-places-support-index-mdx-50212b4f8826e4e
351d1eb.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-06-16-custom-map-marker-icons-google-maps-leaflet-maplibre-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-06-16-custom-map-marker-icons-google-maps-leaflet-maplibre-index-mdx-741d3132c6330c51807f.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-06-21-address-verification-methods-usps-api-alternatives-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-06-21-address-verification-methods-usps-api-alternatives-index-mdx-80aa31aab92f3f49ac9a.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-07-06-zip-code-vs-postal-code-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-07-06-zip-code-vs-postal-code-index-mdx-46ede0510ac133c86c70.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-08-06-mcp-vs-rest-apis-ai-applications-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-08-06-mcp-vs-rest-apis-ai-applications-index-mdx-c5db8c9322de4c4067b8.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-08-27-location-api-and-gdpr-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-08-27-location-api-and-gdpr-index-mdx-a19845573a6f978f1744.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-09-21-beyond-web-mercator-web-map-projections-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-09-21-beyond-web-mercator-web-map-projections-index-mdx-b47b23f96a93170982f7.js\"],\"component---src-template-post-js-content-file-path-src-posts-2026-10-01-geoapify-openapi-specifications-ai-coding-tools-index-mdx\":[\"/component---src-template-post-js-content-file-path-src-posts-2026-10-01-geoapify-openapi-specifications-ai-coding-tools-index-mdx-23e781ac58ecf41613ae.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-boundaries-getting-administrative-divisions-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-boundaries-getting-administrative-divisions-index-mdx-5bdb676c31ba61f43daa.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-address-collection-forms-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-address-collection-forms-index-mdx-b27beabea0d93d2f98ee.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-address-input-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-address-input-index-mdx-33e51ca160db109210a9.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-batch-nocode-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-batch-nocode-index-mdx-b91bdb6ce274cf1da15a.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-batch-with-rate-limit-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-batch-with-rate-limit-index-mdx-cf2cecee42f46b653c1b.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-javascript-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-javascript-index-mdx-fc06088661184b4bd590.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-python-batch-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-python-batch-index-mdx-ed17de5c3535b779e3c0.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-python-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-python-index-mdx-564151c3769cbd646bff.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-reverse-javascript-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-reverse-javascript-index-mdx-0726c146ce26988fb091.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-reverse-python-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-geocoding-reverse-python-index-mdx-760199f1bbe2018072ed.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-how-to-get-osm-places-by-category-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-how-to-get-osm-places-by-category-index-mdx-10d16cab0692ef25e061.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-how-to-use-route-directions-api-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-how-to-use-route-directions-api-index-mdx-f70c7198c03ce8eb921c.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-isoline-leaflet-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-isoline-leaflet-index-mdx-0b1c8d85e76a9eb54059.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-map-localize-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-map-localize-index-mdx-df58e5cc6cef488819d8.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-map-styling-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-map-styling-index-mdx-93789a7535755bf17d32.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-angular-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-angular-index-mdx-808d38e31d301306af8e.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-heatmap-us-population-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-heatmap-us-population-index-mdx-84263c366c1002504fdb.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-how-to-create-choropleth-maps-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-how-to-create-choropleth-maps-index-mdx-d28397e707663abae21f.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-react-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-react-index-mdx-99a53eae9c917b96f80d.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-wordpress-map-with-autocomplete-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-maps-wordpress-map-with-autocomplete-index-mdx-7941b8b605913a57f0b5.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-creating-a-printable-version-of-driving-directions-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-creating-a-printable-version-of-driving-directions-index-mdx-d7b1d535fe6058f9c215.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-elevation-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-elevation-index-mdx-0f4496caeff1084f8050.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-route-on-the-map-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-route-on-the-map-index-mdx-4280cf0b650cad78f877.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-to-wordpress-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-routing-to-wordpress-index-mdx-49946eb63abe0857495d.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-static-maps-
35how-to-use-post-requests-with-static-maps-api-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-static-maps-how-to-use-post-requests-with-static-maps-api-index-mdx-5a4320ebe0dacc59028c.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-static-maps-printable-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-static-maps-printable-index-mdx-c260dfe404daebf40070.js\"],\"component---src-template-tutorial-post-js-content-file-path-src-tutorials-static-maps-url-examples-index-mdx\":[\"/component---src-template-tutorial-post-js-content-file-path-src-tutorials-static-maps-url-examples-index-mdx-6eca0c8329db6b595570.js\"]}"; 36 </script>
36 37
37<script>window.___webpackCompilationHash="ad9b88e8fc4608a9eb6c";</script>
37<script src="/webpack-runtime-6966afb6de7334baa969.js" async></script>
37<script src="/framework-9778817f8118a362ebbf.js" async></script>
37<script src="/app-1bb91ed244bf0fb57037.js" async></script>
37<!-- slice-end id="_gatsby-scripts-1" --></body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.