{"id":98,"date":"2020-06-30T19:25:35","date_gmt":"2020-06-30T23:25:35","guid":{"rendered":"https:\/\/blog.siliconbrane.com\/?p=98"},"modified":"2020-11-27T23:38:40","modified_gmt":"2020-11-28T03:38:40","slug":"openstreetmap-made-easy","status":"publish","type":"post","link":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/","title":{"rendered":"OpenStreetMap Made Easy"},"content":{"rendered":"\n<p class=\"has-text-align-left has-text-color has-very-dark-gray-color\">It&#8217;s been awhile that I have been trying to understand and setup an Openstreetmap server. It&#8217;s easy, one can follow the tutorial at <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/switch2osm.org\/serving-tiles\/\" target=\"_blank\">Switch2OSM<\/a><\/em> and do it and I did the same like many others. While I was setting up the Openstreetmap server I was missing a lot of the basic concepts. Although Switch2OSM will get you started I would highly suggest not to follow this tutorial as it is missing a lot of tweaks and details. I found a better tutorial written by our friend Xiao Guoan on his <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/www.linuxbabe.com\/ubuntu\/openstreetmap-tile-server-ubuntu-20-04-osm\" target=\"_blank\">blog post<\/a>.<\/em> <\/p>\n\n\n\n<p class=\"has-text-align-left has-text-color has-very-dark-gray-color\">I will also suggest, although however lucrative it is, do not attempt to import the whole planet server on the first go, rather stick with a small section and try it first. Whole planet can take a long time to import depending on the hardware used. I tried it on a 24 thread HP DL360 G7 server and it took me over 3 days to find out I will have to start over again.<\/p>\n\n\n\n<p>Most of the time we create our own map server is either for fun (like I did) or we don&#8217;t want to pay a service provider like Google Maps or we want to use the map data offline. Let&#8217;s look at the different building blocks of a map service so that we can make our own map server with some better understanding.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">OpenStreetMap Components<\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Map Server:<\/strong> More commonly known as Tile Server, provides the map data to a web client (Eg. Chrome, Firefox or an app on the phone) either in Vector tile format or as a pre-rendered PNG images. Now some tile servers can support both Vector and PNG tile and others are only supporting either vector or per-rendered PNG. Hear is a <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/github.com\/mapbox\/awesome-vector-tiles#servers\" target=\"_blank\">list<\/a> <\/em>of available tile servers.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Client side library:<\/strong> Client side libraries are used to call the tile server for map data in a more user readable format. Most common format looks like <code>http:\/\/server-domain\/zoom\/lat\/long.ext<\/code> Tile Servers don&#8217;t use the coordinate system we are familiar with. It uses a system called tile coordinate system. These coordinate system changes as the zoom level changes. Here is a <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"http:\/\/tools.geofabrik.de\/calc\/#type=geofabrik_standard&amp;bbox=5.538062,47.236312,15.371071,54.954937&amp;grid=1\" target=\"_blank\">nifty tool<\/a><\/em> if you want to play with tile coordinate system. Client side libraries will also add more common features required for using the map service like for example to put a marker on the map or make a polygon etc. Most common client side libraries are <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/leafletjs.com\/\" target=\"_blank\">Leaflet<\/a><\/em> and <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/docs.mapbox.com\/mapbox-gl-js\/api\/\" target=\"_blank\">MapBox GL JS <\/a><\/em> Both of these are open source and free to use. Hear is a<em> <a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener\" href=\"https:\/\/github.com\/mapbox\/awesome-vector-tiles#clients\" target=\"_blank\">list<\/a><\/em> of some other client side libraries.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>GeoCoding:<\/strong> In simple word its takes an address as input and spits out the Latitude and Longitude of that particular address. Now why do we need GeoCoding? Most important reason is because our computers don&#8217;t understand address but only numbers. It&#8217;s the same reason we need a DNS to keep track of a domain to a IP address. There are several open source GeoCoding project but honestly none of them are as good or detailed as Google Maps. The biggest database is available when it comes to open source is with <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/nominatim.openstreetmap.org\/\" target=\"_blank\">Nominatim<\/a><\/em>. Now as there is GeoCoding we also have Reverse Geocoding and as the name suggests it will give you the address information when a latitude and longitude is supplied. <\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong><a href=\"https:\/\/blog.siliconbrane.com\/index.php\/2020\/07\/07\/osrm-setup-with-docker\/\">Routing:<\/a><\/strong> Routing is another important aspect for a mapping service. This service will generate a route between point A to point B. These points can be generated by using Geocoding or by selecting a point on the map. <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"http:\/\/project-osrm.org\/\" target=\"_blank\">OSRM<\/a><\/em> (Open Source Routing Machine) is my favorite example along with <em><a aria-label=\"undefined (opens in a new tab)\" rel=\"noreferrer noopener nofollow\" href=\"https:\/\/www.graphhopper.com\/\" target=\"_blank\">Graphhopper<\/a><\/em> which is also a very popular choice.<\/li><\/ul>\n\n\n\n<p>That&#8217;s it for today hope OpenStreetMap Made Easy was helpful!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">References<\/h3>\n\n\n\n<p><a href=\"https:\/\/github.com\/mapbox\/awesome-vector-tiles#servers\">https:\/\/github.com\/mapbox\/awesome-vector-tiles#servers<\/a><br><a aria-label=\"undefined (opens in a new tab)\" href=\"https:\/\/switch2osm.org\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/switch2osm.org\/<\/a><br><a href=\"https:\/\/git.siliconbrane.ml\/kaushik_ray_1\/gps-data-web-server\">https:\/\/git.siliconbrane.ml\/kaushik_ray_1\/gps-data-web-server<\/a><br><a href=\"https:\/\/docs.mapbox.com\/mapbox-gl-js\/api\/\">https:\/\/docs.mapbox.com\/mapbox-gl-js\/api\/<\/a><br><a href=\"https:\/\/info.crunchydata.com\/blog\/dynamic-vector-tiles-from-postgis\">https:\/\/info.crunchydata.com\/blog\/dynamic-vector-tiles-from-postgis<\/a><br><a href=\"https:\/\/openlayers.org\/\">https:\/\/openlayers.org\/<\/a><br><a href=\"https:\/\/leafletjs.com\/\">https:\/\/leafletjs.com\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>It&#8217;s been awhile that I have been trying to understand and setup an Openstreetmap server. It&#8217;s easy, one can follow the tutorial at Switch2OSM and do it and I did the same like many others. While I was setting up the Openstreetmap server I was missing a lot of the basic concepts. Although Switch2OSM will&hellip;<\/p>\n","protected":false},"author":2,"featured_media":117,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[7,10,12,4,11,5,9],"class_list":["post-98","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articles","tag-leaflet","tag-mapbox-gl-js","tag-openlayer","tag-osm","tag-osm-concept","tag-osm-server","tag-understand-osm"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>OpenStreetMap Made Easy with basic concepts and ideas.<\/title>\n<meta name=\"description\" content=\"OpenStreetMap Made Easy is an article for beginers who are just staring out with Openstreetmap development and basic concepts.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"OpenStreetMap Made Easy with basic concepts and ideas.\" \/>\n<meta property=\"og:description\" content=\"OpenStreetMap Made Easy is an article for beginers who are just staring out with Openstreetmap development and basic concepts.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/\" \/>\n<meta property=\"og:site_name\" content=\"SiliconBrane Inc\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/siliconbraneinc\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-30T23:25:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-28T03:38:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/Capture.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1583\" \/>\n\t<meta property=\"og:image:height\" content=\"804\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kaushik Ray\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kaushik Ray\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/\"},\"author\":{\"name\":\"Kaushik Ray\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#\\\/schema\\\/person\\\/fdf84c44d9bd05d66f7206187c353cc9\"},\"headline\":\"OpenStreetMap Made Easy\",\"datePublished\":\"2020-06-30T23:25:35+00:00\",\"dateModified\":\"2020-11-28T03:38:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/\"},\"wordCount\":660,\"publisher\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.siliconbrane.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Capture.png\",\"keywords\":[\"leaflet\",\"MapBox GL JS\",\"OpenLayer\",\"OSM\",\"OSM Concept\",\"OSM Server\",\"Understand OSM\"],\"articleSection\":[\"Articles\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/\",\"url\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/\",\"name\":\"OpenStreetMap Made Easy with basic concepts and ideas.\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blog.siliconbrane.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Capture.png\",\"datePublished\":\"2020-06-30T23:25:35+00:00\",\"dateModified\":\"2020-11-28T03:38:40+00:00\",\"description\":\"OpenStreetMap Made Easy is an article for beginers who are just staring out with Openstreetmap development and basic concepts.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blog.siliconbrane.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Capture.png\",\"contentUrl\":\"https:\\\/\\\/blog.siliconbrane.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/Capture.png\",\"width\":1583,\"height\":804,\"caption\":\"OSM Made Easy\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/2020\\\/06\\\/30\\\/openstreetmap-made-easy\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blog.siliconbrane.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"OpenStreetMap Made Easy\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#website\",\"url\":\"https:\\\/\\\/blog.siliconbrane.com\\\/\",\"name\":\"SiliconBrane Inc\",\"description\":\"Live Smart!\",\"publisher\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blog.siliconbrane.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#organization\",\"name\":\"SiliconBrane Inc.\",\"url\":\"https:\\\/\\\/blog.siliconbrane.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/blog.siliconbrane.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/android-chrome-512x512-2.png\",\"contentUrl\":\"https:\\\/\\\/blog.siliconbrane.com\\\/wp-content\\\/uploads\\\/2020\\\/06\\\/android-chrome-512x512-2.png\",\"width\":512,\"height\":512,\"caption\":\"SiliconBrane Inc.\"},\"image\":{\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/siliconbraneinc\\\/\",\"https:\\\/\\\/www.instagram.com\\\/siliconbraneinc\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/organization-guest\\\/company\\\/siliconbraneinc\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blog.siliconbrane.com\\\/#\\\/schema\\\/person\\\/fdf84c44d9bd05d66f7206187c353cc9\",\"name\":\"Kaushik Ray\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd47e9b23705ad8cfafb167fd5044f3f13974fc4d2aca07ff3b03e933180e75e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd47e9b23705ad8cfafb167fd5044f3f13974fc4d2aca07ff3b03e933180e75e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fd47e9b23705ad8cfafb167fd5044f3f13974fc4d2aca07ff3b03e933180e75e?s=96&d=mm&r=g\",\"caption\":\"Kaushik Ray\"},\"sameAs\":[\"http:\\\/\\\/www.siliconbrane.com\"],\"url\":\"https:\\\/\\\/blog.siliconbrane.com\\\/index.php\\\/author\\\/kaushik_ray_1\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"OpenStreetMap Made Easy with basic concepts and ideas.","description":"OpenStreetMap Made Easy is an article for beginers who are just staring out with Openstreetmap development and basic concepts.","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:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/","og_locale":"en_US","og_type":"article","og_title":"OpenStreetMap Made Easy with basic concepts and ideas.","og_description":"OpenStreetMap Made Easy is an article for beginers who are just staring out with Openstreetmap development and basic concepts.","og_url":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/","og_site_name":"SiliconBrane Inc","article_publisher":"https:\/\/www.facebook.com\/siliconbraneinc\/","article_published_time":"2020-06-30T23:25:35+00:00","article_modified_time":"2020-11-28T03:38:40+00:00","og_image":[{"width":1583,"height":804,"url":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/Capture.png","type":"image\/png"}],"author":"Kaushik Ray","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kaushik Ray","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#article","isPartOf":{"@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/"},"author":{"name":"Kaushik Ray","@id":"https:\/\/blog.siliconbrane.com\/#\/schema\/person\/fdf84c44d9bd05d66f7206187c353cc9"},"headline":"OpenStreetMap Made Easy","datePublished":"2020-06-30T23:25:35+00:00","dateModified":"2020-11-28T03:38:40+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/"},"wordCount":660,"publisher":{"@id":"https:\/\/blog.siliconbrane.com\/#organization"},"image":{"@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/Capture.png","keywords":["leaflet","MapBox GL JS","OpenLayer","OSM","OSM Concept","OSM Server","Understand OSM"],"articleSection":["Articles"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/","url":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/","name":"OpenStreetMap Made Easy with basic concepts and ideas.","isPartOf":{"@id":"https:\/\/blog.siliconbrane.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#primaryimage"},"image":{"@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#primaryimage"},"thumbnailUrl":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/Capture.png","datePublished":"2020-06-30T23:25:35+00:00","dateModified":"2020-11-28T03:38:40+00:00","description":"OpenStreetMap Made Easy is an article for beginers who are just staring out with Openstreetmap development and basic concepts.","breadcrumb":{"@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#primaryimage","url":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/Capture.png","contentUrl":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/Capture.png","width":1583,"height":804,"caption":"OSM Made Easy"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.siliconbrane.com\/index.php\/2020\/06\/30\/openstreetmap-made-easy\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.siliconbrane.com\/"},{"@type":"ListItem","position":2,"name":"OpenStreetMap Made Easy"}]},{"@type":"WebSite","@id":"https:\/\/blog.siliconbrane.com\/#website","url":"https:\/\/blog.siliconbrane.com\/","name":"SiliconBrane Inc","description":"Live Smart!","publisher":{"@id":"https:\/\/blog.siliconbrane.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.siliconbrane.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/blog.siliconbrane.com\/#organization","name":"SiliconBrane Inc.","url":"https:\/\/blog.siliconbrane.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.siliconbrane.com\/#\/schema\/logo\/image\/","url":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/android-chrome-512x512-2.png","contentUrl":"https:\/\/blog.siliconbrane.com\/wp-content\/uploads\/2020\/06\/android-chrome-512x512-2.png","width":512,"height":512,"caption":"SiliconBrane Inc."},"image":{"@id":"https:\/\/blog.siliconbrane.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/siliconbraneinc\/","https:\/\/www.instagram.com\/siliconbraneinc\/","https:\/\/www.linkedin.com\/organization-guest\/company\/siliconbraneinc"]},{"@type":"Person","@id":"https:\/\/blog.siliconbrane.com\/#\/schema\/person\/fdf84c44d9bd05d66f7206187c353cc9","name":"Kaushik Ray","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/fd47e9b23705ad8cfafb167fd5044f3f13974fc4d2aca07ff3b03e933180e75e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fd47e9b23705ad8cfafb167fd5044f3f13974fc4d2aca07ff3b03e933180e75e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fd47e9b23705ad8cfafb167fd5044f3f13974fc4d2aca07ff3b03e933180e75e?s=96&d=mm&r=g","caption":"Kaushik Ray"},"sameAs":["http:\/\/www.siliconbrane.com"],"url":"https:\/\/blog.siliconbrane.com\/index.php\/author\/kaushik_ray_1\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/posts\/98","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/comments?post=98"}],"version-history":[{"count":38,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/posts\/98\/revisions"}],"predecessor-version":[{"id":218,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/posts\/98\/revisions\/218"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/media\/117"}],"wp:attachment":[{"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/media?parent=98"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/categories?post=98"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.siliconbrane.com\/index.php\/wp-json\/wp\/v2\/tags?post=98"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}