{"id":2061,"date":"2015-01-07T13:15:57","date_gmt":"2015-01-07T11:15:57","guid":{"rendered":"http:\/\/www.webcodegeeks.com\/?p=2061"},"modified":"2015-01-03T15:42:33","modified_gmt":"2015-01-03T13:42:33","slug":"how-the-javascript-heatmap-implementation-works","status":"publish","type":"post","link":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/","title":{"rendered":"How the JavaScript heatmap implementation works?"},"content":{"rendered":"<p>A <a href=\"http:\/\/en.wikipedia.org\/wiki\/Heat_map\">heatmap<\/a> is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is expensive in computation terms: for each grid\u2019s pixel you need to compute its colour from a set of known values. As you can thing, it is not\u00a0feasible to be implement it on the client side because map rendering would\u00a0be really slow.<\/p>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/12\/Screen-Shot-2014-12-23-at-18.25.49-300x206.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2065\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/12\/Screen-Shot-2014-12-23-at-18.25.49-300x206.png\" alt=\"Screen-Shot-2014-12-23-at-18.25.49-300x206\" width=\"300\" height=\"206\" \/><\/a><\/p>\n<p>But OpenLayers3 comes with a handy class, <code>ol.layer.Heatmap<\/code>, which allows to render vector data as a heatmap, so the question is: how it is made?<\/p>\n<p>Really, the <code>ol.layer.Heatmap<\/code> layer uses a smart approximation to the algorithm which produces great results and is really fast. The steps can be summarised as:<\/p>\n<ul>\n<li>A gradient of colors is created as a 1\u00d7256 pixel size image.<\/li>\n<li>Each known value is rendered in a canvas as a grey blurred point using some radius. This produces a canvas where the blurred points can overlap each other and create more obscure zones. <a href=\"http:\/\/jsfiddle.net\/mnmrze6k\/1\/\">Something similar to this<\/a>.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/12\/Screen-Shot-2014-12-23-at-18.27.17-300x190.png\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-2066\" src=\"http:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/12\/Screen-Shot-2014-12-23-at-18.27.17-300x190.png\" alt=\"Screen-Shot-2014-12-23-at-18.27.17-300x190\" width=\"300\" height=\"190\" \/><\/a><\/p>\n<ul>\n<li>Finally, an image is obtained from the canvas and for each pixels a color is assigned. The color is obtained from the previous 1\u00d7256 pixel image obtained the color specified by the grey value (which goes from 0..255).<\/li>\n<\/ul>\n<p>The coloured image is then rendered in the map canvas, obtaining a nice effect suited to be used for density maps.<\/p>\n<p>The <code>ol.layer.Heatmap<\/code> offers some properties we can use to play better: <code>blur<\/code>, <code>radius<\/code>, <code>gradient<\/code>, <code>shadow<\/code> and <code>weight<\/code>. This last can be configured per feature, allowing to assign a <em>level of importance<\/em> to each feature determining in more or less measure the final color.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"http:\/\/acuriousanimal.com\/blog\/2014\/12\/23\/how-the-javascript-heatmap-implementation-works\/\">How the JavaScript heatmap implementation works?<\/a> from our <a href=\"http:\/\/www.webcodegeeks.com\/wcg\/\">WCG partner<\/a> Antonio Santiago at the <a href=\"http:\/\/acuriousanimal.com\/blog\/\">A Curious Animal<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is expensive in computation terms: for each grid\u2019s pixel you need to compute its colour from a set of known values. As you can thing, it is not\u00a0feasible to &hellip;<\/p>\n","protected":false},"author":7,"featured_media":920,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[71],"class_list":["post-2061","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-javascript","tag-openlayers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How the JavaScript heatmap implementation works? - Web Code Geeks - 2026<\/title>\n<meta name=\"description\" content=\"A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How the JavaScript heatmap implementation works? - Web Code Geeks - 2026\" \/>\n<meta property=\"og:description\" content=\"A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\" \/>\n<meta property=\"og:site_name\" content=\"Web Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webcodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2015-01-07T11:15:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Antonio Santiago\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@webcodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Santiago\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\"},\"author\":{\"name\":\"Antonio Santiago\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b9ad428a9312fc720bef9ebc43421e78\"},\"headline\":\"How the JavaScript heatmap implementation works?\",\"datePublished\":\"2015-01-07T11:15:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\"},\"wordCount\":287,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"keywords\":[\"OpenLayers\"],\"articleSection\":[\"JavaScript\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\",\"name\":\"How the JavaScript heatmap implementation works? - Web Code Geeks - 2026\",\"isPartOf\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"datePublished\":\"2015-01-07T11:15:57+00:00\",\"description\":\"A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is\",\"breadcrumb\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.webcodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JavaScript\",\"item\":\"https:\/\/www.webcodegeeks.com\/category\/javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How the JavaScript heatmap implementation works?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#website\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"name\":\"Web Code Geeks\",\"description\":\"Web Developers Resource Center\",\"publisher\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.webcodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/www.webcodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webcodegeeks\",\"https:\/\/x.com\/webcodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b9ad428a9312fc720bef9ebc43421e78\",\"name\":\"Antonio Santiago\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/a6e48b7e3c6ccbf7b291a6d36f49b911f5472c409294e52ccd3d017e3faf4c2b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/a6e48b7e3c6ccbf7b291a6d36f49b911f5472c409294e52ccd3d017e3faf4c2b?s=96&d=mm&r=g\",\"caption\":\"Antonio Santiago\"},\"description\":\"A Computer Science as profession and hobby. Firm believer of Software Engineering and a lover of Agile methodologies. There is no ring to rule them all, every place needs to forge its own master ring. His main field of experience is the Java ecosystem, and he has also worked actively with many related web technologies while looking to improve the client side of web applications.\",\"sameAs\":[\"http:\/\/acuriousanimal.com\/blog\/\"],\"url\":\"https:\/\/www.webcodegeeks.com\/author\/antonio-santiago\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How the JavaScript heatmap implementation works? - Web Code Geeks - 2026","description":"A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/","og_locale":"en_US","og_type":"article","og_title":"How the JavaScript heatmap implementation works? - Web Code Geeks - 2026","og_description":"A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is","og_url":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/","og_site_name":"Web Code Geeks","article_publisher":"https:\/\/www.facebook.com\/webcodegeeks","article_published_time":"2015-01-07T11:15:57+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","type":"image\/jpeg"}],"author":"Antonio Santiago","twitter_card":"summary_large_image","twitter_creator":"@webcodegeeks","twitter_site":"@webcodegeeks","twitter_misc":{"Written by":"Antonio Santiago","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#article","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/"},"author":{"name":"Antonio Santiago","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b9ad428a9312fc720bef9ebc43421e78"},"headline":"How the JavaScript heatmap implementation works?","datePublished":"2015-01-07T11:15:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/"},"wordCount":287,"commentCount":0,"publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","keywords":["OpenLayers"],"articleSection":["JavaScript"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/","url":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/","name":"How the JavaScript heatmap implementation works? - Web Code Geeks - 2026","isPartOf":{"@id":"https:\/\/www.webcodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage"},"image":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage"},"thumbnailUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","datePublished":"2015-01-07T11:15:57+00:00","description":"A heatmap is a powerful way to visualise data. Given a matrix of data each value is represented by a color.\u00a0The implementation of the heatmap algorithm is","breadcrumb":{"@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#primaryimage","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2014\/10\/js-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.webcodegeeks.com\/javascript\/how-the-javascript-heatmap-implementation-works\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.webcodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"JavaScript","item":"https:\/\/www.webcodegeeks.com\/category\/javascript\/"},{"@type":"ListItem","position":3,"name":"How the JavaScript heatmap implementation works?"}]},{"@type":"WebSite","@id":"https:\/\/www.webcodegeeks.com\/#website","url":"https:\/\/www.webcodegeeks.com\/","name":"Web Code Geeks","description":"Web Developers Resource Center","publisher":{"@id":"https:\/\/www.webcodegeeks.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.webcodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.webcodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.webcodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.webcodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webcodegeeks","https:\/\/x.com\/webcodegeeks"]},{"@type":"Person","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/b9ad428a9312fc720bef9ebc43421e78","name":"Antonio Santiago","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.webcodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/a6e48b7e3c6ccbf7b291a6d36f49b911f5472c409294e52ccd3d017e3faf4c2b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a6e48b7e3c6ccbf7b291a6d36f49b911f5472c409294e52ccd3d017e3faf4c2b?s=96&d=mm&r=g","caption":"Antonio Santiago"},"description":"A Computer Science as profession and hobby. Firm believer of Software Engineering and a lover of Agile methodologies. There is no ring to rule them all, every place needs to forge its own master ring. His main field of experience is the Java ecosystem, and he has also worked actively with many related web technologies while looking to improve the client side of web applications.","sameAs":["http:\/\/acuriousanimal.com\/blog\/"],"url":"https:\/\/www.webcodegeeks.com\/author\/antonio-santiago\/"}]}},"_links":{"self":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/2061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/comments?post=2061"}],"version-history":[{"count":0,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/posts\/2061\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media\/920"}],"wp:attachment":[{"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/media?parent=2061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/categories?post=2061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webcodegeeks.com\/wp-json\/wp\/v2\/tags?post=2061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}