urn:noticeable:projects:G29QS3M0aRz4dY8JYHrrCS50 Changelogcs50.harvard.edu2020-06-04T00:32:52.087ZCopyright © CS50Noticeable#1e88e5urn:noticeable:publications:RWKPgjpMBipv94UmhdQF2020-06-03T18:00:00.001Z2020-06-04T00:32:52.087ZAn API for Harvard's MapYears ago, CS50 had an API (application programming interface) for Harvard's map, so that students could integrate maps of campus into their own final projects. The API eventually fell by the wayside as CS50's infrastructure evolved, but...<p>Years ago, CS50 had an API (application programming interface) for <a href="https://map.harvard.edu/?utm_source=noticeable&amp;utm_campaign=cs50.an-api-for-harvard-s-map&amp;utm_content=publication+link&amp;utm_id=G29QS3M0aRz4dY8JYHrr.y7erYtgTxQBTyiQkmye8.RWKPgjpMBipv94UmhdQF&amp;utm_medium=newspage" target="_blank" rel="noopener">Harvard’s map</a>, so that students could integrate maps of campus into their own final projects. The API eventually fell by the wayside as CS50’s infrastructure evolved, but, now, that <a href="https://cs50.readthedocs.io/api/map/?utm_source=noticeable&amp;utm_campaign=cs50.an-api-for-harvard-s-map&amp;utm_content=publication+link&amp;utm_id=G29QS3M0aRz4dY8JYHrr.y7erYtgTxQBTyiQkmye8.RWKPgjpMBipv94UmhdQF&amp;utm_medium=newspage" target="_blank" rel="noopener">API is back</a>!</p> <p>Via a simple HTTP-based API can students now search for buildings like Wigglesworth Hall via simple GET requests. For instance, <a href="https://cs50.readthedocs.io/api/map/?utm_source=noticeable&amp;utm_campaign=cs50.an-api-for-harvard-s-map&amp;utm_content=publication+link&amp;utm_id=G29QS3M0aRz4dY8JYHrr.y7erYtgTxQBTyiQkmye8.RWKPgjpMBipv94UmhdQF&amp;utm_medium=newspage" target="_blank" rel="noopener">https://cs50.readthedocs.io/api/map/</a> will return JSON like:</p> <pre><code>[ { <span class="hljs-attr">"address"</span>: <span class="hljs-string">"6 Harvard Yard"</span>, <span class="hljs-attr">"city"</span>: <span class="hljs-string">"Cambridge"</span>, <span class="hljs-attr">"geometry"</span>: { <span class="hljs-attr">"point"</span>: [ <span class="hljs-number">-71.1162317399999</span>, <span class="hljs-number">42.3728310430001</span> ], <span class="hljs-attr">"polygons"</span>: [ [ [ <span class="hljs-number">-71.11589956799997</span>, <span class="hljs-number">42.37279049500006</span> ], [ <span class="hljs-number">-71.11594347499994</span>, <span class="hljs-number">42.372702323000055</span> ], [ <span class="hljs-number">-71.11600147799999</span>, <span class="hljs-number">42.37271820400008</span> ], [ <span class="hljs-number">-71.11600269399997</span>, <span class="hljs-number">42.37271576400008</span> ], [ <span class="hljs-number">-71.11610170199998</span>, <span class="hljs-number">42.37274287200006</span> ], [ <span class="hljs-number">-71.11610013999996</span>, <span class="hljs-number">42.37274601000007</span> ], [ <span class="hljs-number">-71.11640570199995</span>, <span class="hljs-number">42.372829671000034</span> ], [ <span class="hljs-number">-71.11640749999998</span>, <span class="hljs-number">42.37282606200006</span> ], [ <span class="hljs-number">-71.11650843499996</span>, <span class="hljs-number">42.37285369800003</span> ], [ <span class="hljs-number">-71.11650663799998</span>, <span class="hljs-number">42.37285730600007</span> ], [ <span class="hljs-number">-71.11656312399998</span>, <span class="hljs-number">42.37287277200005</span> ], [ <span class="hljs-number">-71.11652030599998</span>, <span class="hljs-number">42.37296030500005</span> ], [ <span class="hljs-number">-71.11589956799997</span>, <span class="hljs-number">42.37279049500006</span> ] ] ] }, <span class="hljs-attr">"id"</span>: <span class="hljs-number">997</span>, <span class="hljs-attr">"image"</span>: <span class="hljs-string">"https://devsmap.cadm.harvard.edu/images/root_images/03323.jpg"</span>, <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Wigglesworth Hall, Entries A,B,C+D"</span> }, { <span class="hljs-attr">"address"</span>: <span class="hljs-string">"6 Harvard Yard"</span>, <span class="hljs-attr">"city"</span>: <span class="hljs-string">"Cambridge"</span>, <span class="hljs-attr">"geometry"</span>: { <span class="hljs-attr">"point"</span>: [ <span class="hljs-number">-71.117157489</span>, <span class="hljs-number">42.373083326</span> ], <span class="hljs-attr">"polygons"</span>: [ [ [ <span class="hljs-number">-71.11674415099998</span>, <span class="hljs-number">42.37302187700004</span> ], [ <span class="hljs-number">-71.11676889299997</span>, <span class="hljs-number">42.37297193200004</span> ], [ <span class="hljs-number">-71.11678784399999</span>, <span class="hljs-number">42.37293177000004</span> ], [ <span class="hljs-number">-71.11679359399994</span>, <span class="hljs-number">42.37293354600007</span> ], [ <span class="hljs-number">-71.11684414499996</span>, <span class="hljs-number">42.37294797100003</span> ], [ <span class="hljs-number">-71.11684574399999</span>, <span class="hljs-number">42.37294474200007</span> ], [ <span class="hljs-number">-71.11694710199998</span>, <span class="hljs-number">42.37297234700003</span> ], [ <span class="hljs-number">-71.11694550299995</span>, <span class="hljs-number">42.372975576000044</span> ], [ <span class="hljs-number">-71.11740777999995</span>, <span class="hljs-number">42.37310117900006</span> ], [ <span class="hljs-number">-71.11741015999996</span>, <span class="hljs-number">42.37309832700004</span> ], [ <span class="hljs-number">-71.11750781999996</span>, <span class="hljs-number">42.37312492400008</span> ], [ <span class="hljs-number">-71.11750300299997</span>, <span class="hljs-number">42.37312714900003</span> ], [ <span class="hljs-number">-71.11757062399994</span>, <span class="hljs-number">42.37314577600006</span> ], [ <span class="hljs-number">-71.11752645499996</span>, <span class="hljs-number">42.37323494200007</span> ], [ <span class="hljs-number">-71.11674415099998</span>, <span class="hljs-number">42.37302187700004</span> ] ] ] }, <span class="hljs-attr">"id"</span>: <span class="hljs-number">1159</span>, <span class="hljs-attr">"image"</span>: <span class="hljs-string">"https://devsmap.cadm.harvard.edu/images/root_images/03322.jpg"</span>, <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Wigglesworth Hall, Entries E,F,G,H+I"</span> }, { <span class="hljs-attr">"address"</span>: <span class="hljs-string">"6 Harvard Yard"</span>, <span class="hljs-attr">"city"</span>: <span class="hljs-string">"Cambridge"</span>, <span class="hljs-attr">"geometry"</span>: { <span class="hljs-attr">"point"</span>: [ <span class="hljs-number">-71.117856715</span>, <span class="hljs-number">42.3732810010001</span> ], <span class="hljs-attr">"polygons"</span>: [ [ [ <span class="hljs-number">-71.11770292099999</span>, <span class="hljs-number">42.37328923700005</span> ], [ <span class="hljs-number">-71.11774775899994</span>, <span class="hljs-number">42.37320090400004</span> ], [ <span class="hljs-number">-71.11800155099996</span>, <span class="hljs-number">42.37327055600008</span> ], [ <span class="hljs-number">-71.11801092199994</span>, <span class="hljs-number">42.37327307900006</span> ], [ <span class="hljs-number">-71.11796559599998</span>, <span class="hljs-number">42.373360913000056</span> ], [ <span class="hljs-number">-71.11770292099999</span>, <span class="hljs-number">42.37328923700005</span> ] ] ] }, <span class="hljs-attr">"id"</span>: <span class="hljs-number">1449</span>, <span class="hljs-attr">"image"</span>: <span class="hljs-string">"https://devsmap.cadm.harvard.edu/images/root_images/03321.jpg"</span>, <span class="hljs-attr">"name"</span>: <span class="hljs-string">"Wigglesworth Hall, Entries J+K"</span> } ] </code></pre> <p>In addition to providing students’ with each building’s <code>address</code>, <code>city</code>, <code>id</code>, <code>image</code>, and <code>name</code>, the API also provides a building’s <code>geometry</code>, the value of which includes a <code>point</code> for that building (e.g., its centroid) and also one or more <code>polygons</code>, which collectively describe the building’s footprint.</p> David J. Malan[email protected]