Created
January 13, 2014 02:19
-
-
Save adkatrit/8393691 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
| <html xmlns="http://www.w3.org/1999/xhtml"> | |
| <head> | |
| <title>make my Json string parsed openlayers.format.geojson - json, openlayers, json-encode, geojson - TechQues.com</title> | |
| <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> | |
| <meta name="description" content="make my Json string parsed openlayers.format.geojson - json, openlayers, json-encode, geojson - TechQues.com" /> | |
| <meta name="keywords" content="json, openlayers, json-encode, geojson" /> | |
| <script src="/js/jquery-1.4.2.min.js"></script> | |
| <script src="/js/jquery.event.drag-2.0.min.js" type="text/javascript"></script> | |
| <link href="/css/prettify.css" type="text/css" rel="stylesheet" /> | |
| <script type="text/javascript" src="/js/prettify/prettify.js"></script> | |
| <link href="/css/style.css" rel="stylesheet" type="text/css" media="screen" /> | |
| <script type="text/javascript" src="/js/scripts.js"></script> | |
| <script type="text/javascript"> | |
| var _gaq = _gaq || []; | |
| _gaq.push(['_setAccount', 'UA-2523535-14']); | |
| _gaq.push(['_trackPageview']); | |
| (function() { | |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; | |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; | |
| var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); | |
| })(); | |
| </script> | |
| </head> | |
| <body onload="prettyPrint()"> | |
| <div id="header"> | |
| <div id="headerInner"> | |
| <div id="logo"><a href="/" title="Techques.com"></a></div> | |
| <!-- | |
| <div class="headerAd" style="float: left; left: 20px; position: relative; top: 30px;"> | |
| <script type="text/javascript" language="javascript" src="http://www.anrdoezrs.net/placeholder-7138633?target=_top&mouseover=N"></script> | |
| </div>--> | |
| <div id="headerRight"> | |
| <div id="headerResize"><a href="#resizeWidth" id="resizeLink">< Resize width ></a></div> | |
| <div class="browseTags"><a href="/tags" title="Browse tags">All tags »</a></div> | |
| </div> | |
| </div> | |
| </div> | |
| <div id="page"> | |
| <h1>make my Json string parsed openlayers.format.geojson</h1> | |
| <span class="tagsLabel">Tagged:</span> | |
| <ul id="tags"> | |
| <li><a href="/tag/json">json</a></li> | |
| <li><a href="/tag/openlayers">openlayers</a></li> | |
| <li><a href="/tag/json-encode">json-encode</a></li> | |
| <li><a href="/tag/geojson">geojson</a></li> | |
| </ul> | |
| <div class="clear"></div> | |
| <div class="post question u783670" id="p6591947"> | |
| <div class="content"> | |
| <div id="ad1" style="background: #ffffe1; height: 90px;"> | |
| <a href="javascript:location='http://www.easycron.com/';" rel="nofollow"><img src="/ad/banner2.png"></a> | |
| </div> | |
| <div class="clear"></div> | |
| <p>i need to change a Json string into Geojson format. right now i am using Json_encode() function to convert sql query result into json string (as given in this link <a href="http://stackoverflow.com/questions/383631/json-encode-mysql-results">JSON encode MySQL results</a>).<br> | |
| i want to make this geojson string readable by openlayers.<br> | |
| how can i use json _encode for this purpose ? | |
| or is there a different function which i can use for this? | |
| thanks in advance.</p> | |
| <br> | |
| <!--<script id="mNCC" language="javascript"> medianet_width='728'; medianet_height= '90'; medianet_crid='637488804'; </script> <script id="mNSC" src="http://contextual.media.net/nmedianet.js?cid=8CU27550V" language="javascript"></script> --> | |
| </div> | |
| <div class="profile"> | |
| <table> | |
| <tr> | |
| <td colspan="2"><a class="askerName" href="http://stackoverflow.com/users/783670" target="_blank">venkat</a><a class="hlLink" href="#highlight" id="hl6591947_783670" title="Highlight posts by this user"><span class="hIcon">H</span></a></td> | |
| </tr> | |
| <tr> | |
| <td class="postedTime"><em>2011-07-06 05:32:13</em></td> | |
| <td class="scoreWrapper">Scores:<span class="score">0</span></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"> | |
| <!--<script type="text/javascript" language="javascript" src="http://www.dpbolvw.net/placeholder-7138798?target=_top&mouseover=N"></script>--> | |
| </td> | |
| </tr> | |
| </table> | |
| <style type="text/css"> | |
| .profile a { | |
| float: none; | |
| } | |
| </style> | |
| <div style="clear: both;"></div> | |
| <div style="text-align: center; width: 180px;"> | |
| <a href="javascript:location='http://www.psd2livesite.com/';" rel="nofollow" style="margin-top: 10px; display: block; margin-bottom: 10px;"><img src="/ad/psd2livesite.png"></a> | |
| <!-- BuySellAds Zone Code --> | |
| <!--<div id="bsap_1289983" class="bsarocks bsap_c3986e2b3b4beb5df5f8fd43a3ea60b6"></div>--> | |
| <!-- End BuySellAds Zone Code --> | |
| <div style="height: 10px; clear: both;"></div> | |
| </div> | |
| </div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="lineSeparator"></div> | |
| <div class="separator"></div> | |
| <div class="clear"></div> | |
| <div id="answerSorts"> | |
| <h3>3 answers</h3><div id="tabs"> | |
| <span>Order</span> | |
| <a href="#chronological" title="chronological order" class="byChronological">chronological</a> | |
| <a href="#scores" title="higher scores answer first" class="currentTab byScores">scores</a> | |
| </div> | |
| <div class="clear"></div> | |
| </div> | |
| <div id="bsaasw_adsaleswidget" rel="c3986e2b3b4beb5df5f8fd43a3ea60b6"></div> | |
| <script type="text/javascript" src="http://s3.buysellads.com/ac/adsaleswidget.js"></script> | |
| <div class="sortOrder cOrder_6610619 sOrder_1"> | |
| <div class="answerIndex"><h6 class="answerNumber">Answer 1</h6><div class="answerScoreWrapper">Scores:<span class="score">1</span></div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="post answer u29655 "> | |
| <div class="content"><p>(I assume from your post that you're using PHP).</p> | |
| <p>If you fetch your spatial data as WKT (1), you can use the GeoJSON class(2) from the PHP version of mapfish ( this class could be used w/o mapfish ).</p> | |
| <p>You'll just have to write your own adapter for this.</p> | |
| <p>HTH,</p> | |
| <ul> | |
| <li>1 <a href="http://dev.mysql.com/doc/refman/5.0/en/functions-to-convert-geometries-between-formats.html#function_astext" rel="nofollow">http://dev.mysql.com/doc/refman/5.0/en/functions-to-convert-geometries-between-formats.html#function_astext</a></li> | |
| <li>2 <a href="https://github.com/tonio/sfMapFishPlugin/tree/master/lib/GeoJSON" rel="nofollow">https://github.com/tonio/sfMapFishPlugin/tree/master/lib/GeoJSON</a></li> | |
| </ul> | |
| </div> | |
| <div class="profile"> | |
| <table> | |
| <tr> | |
| <td colspan="2"> | |
| <a class="" href="http://stackoverflow.com/users/29655" target="_blank">tonio</a> <a class="hlLink" href="#highlight" id="hl6610619_29655" title="Highlight posts by this user"><span class="hIcon">H</span></a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td class="postedTime"><em>2011-07-07 12:30:28</em></td> | |
| <td class="scoreWrapper"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"></td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="lineSeparator"></div> | |
| <div class="separator"></div> | |
| </div> | |
| <div class="sortOrder cOrder_6621828 sOrder_2"> | |
| <div class="answerIndex"><h6 class="answerNumber">Answer 2</h6><div class="answerScoreWrapper">Scores:<span class="score">1</span></div> | |
| <img src="/images/tick.png" class="accepted" title="Accepted answer"><div class="clear"></div> | |
| </div> | |
| <div class="post answer u185943 acceptedAnswer"> | |
| <div class="content"><p>GeoJSON format is fairly simple so I would go ahead and loop through all raw data that your SQL query returns and build a string in GeoJSON format manually. Then you pass this string from you server side code to the client where you parse it to javascript object so that OpenLayers can consume it.</p> | |
| <p>Here's example in Ruby I've done a while ago. Hope you get the idea and can do the same in PHP:</p> | |
| <pre><code> json = "{ \"type\": \"FeatureCollection\", \"features\": [" | |
| layer.get_feature_count.times do |i| | |
| feature = layer.get_feature(i) | |
| json += "{\"type\":\"Feature\", \"id\":" + feature.get_fid.to_s + ", \"properties\": {" | |
| feature_defn = layer.get_layer_defn | |
| feature_defn.get_field_count.times do |j| | |
| field = feature_defn.get_field_defn(j) | |
| json += "\"" + field.get_name_ref + "\":" + "\"" + feature.get_field(j).to_s + "\"" | |
| if j+1 < feature_defn.get_field_count | |
| json += ", " | |
| end | |
| end | |
| json += "}, " | |
| #end of properties | |
| geom = feature.get_geometry_ref | |
| json += "\"geometry\":" + geom.export_to_json | |
| #end of geometry | |
| json += "}" | |
| if i+1 < layer.get_feature_count | |
| json += ", " | |
| end | |
| end | |
| json += "]}" | |
| </code></pre> | |
| </div> | |
| <div class="profile"> | |
| <table> | |
| <tr> | |
| <td colspan="2"> | |
| <a class="" href="http://stackoverflow.com/users/185943" target="_blank">igorti</a> <a class="hlLink" href="#highlight" id="hl6621828_185943" title="Highlight posts by this user"><span class="hIcon">H</span></a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td class="postedTime"><em>2011-07-08 08:23:13</em></td> | |
| <td class="scoreWrapper"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"></td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="lineSeparator"></div> | |
| <div class="post comment u783670" id="p7820643"> | |
| <div class="content">thanks for the answer, i have done some thing similar in PHP, using concat "." function. and using string_replace to make in Geojson.</div> | |
| <div class="profile"> | |
| <table> | |
| <tr> | |
| <td colspan="2"> | |
| <a class="askerName" href="http://stackoverflow.com/users/783670" target="_blank">venkat</a> <a class="hlLink" href="#highlight" id="hl7820643_783670" title="Highlight posts by this user"><span class="hIcon">H</span></a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td class="postedTime"><em>2011-07-08 11:17:03</em></td> | |
| <td class="scoreWrapper">Scores:<span class="score">0</span></td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="lineSeparator"></div> | |
| <div class="separator"></div> | |
| </div> | |
| <div class="sortOrder cOrder_6629755 sOrder_3"> | |
| <div class="answerIndex"><h6 class="answerNumber">Answer 3</h6><div class="answerScoreWrapper">Scores:<span class="score">1</span></div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="post answer u464990 "> | |
| <div class="content"><p>I've actually have been working on this same issue over the past few weeks. Important to note: I'm not using a geospatial database, just normal ol' storage for me (MySQL to be exact).</p> | |
| <p>Here is how I accomplished it (without the messy concat statements):</p> | |
| <p>SQL Table Description:</p> | |
| <pre><code>CREATE TABLE IF NOT EXISTS `conditions` ( | |
| `conditionsID` int(10) unsigned NOT NULL auto_increment, | |
| `ICAO` varchar(4) default NULL, | |
| `LOCATION` varchar(50) default NULL, | |
| `LATITUDE` float default NULL, | |
| `LONGITUDE` float default NULL, | |
| `TEMPERATURE` float default NULL, | |
| `TEMPERATURE_F` float default NULL, | |
| `TEMPERATURE_C` float default NULL, | |
| `FEELS_LIKE` float default NULL, | |
| PRIMARY KEY (`conditionsID`), | |
| KEY `ICAO` (`ICAO`), | |
| ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=56274738 ; | |
| </code></pre> | |
| <p>I can then use the json_encode PHP library (first available in 5.2, better options for 5.3) to encode a json object from a PHP object. No more working with strings, instead I can work with pseudo-objects (I prefer arrays, easy to manage on the fly). 5.3 brings the option to pretty print as well.</p> | |
| <p>My PHP server code:</p> | |
| <pre><code>$feature_collection = array(); | |
| $feature_collection['type'] = "FeatureCollection"; | |
| $feature_collection['features'] = array(); | |
| $con = mysql_connect($DB_URI, $DB_USER, $DB_PASS); | |
| if (!$con) { | |
| $errorMessage = "Error: Could not connect to data database. Error: " . mysql_error(); | |
| } else { | |
| mysql_select_db("data", $con); | |
| $result = mysql_query("SELECT * FROM `conditions` WHERE LATITUDE > $LAT AND LONGITUDE > $LON GROUP BY LOCATION;"); | |
| while ($row = mysql_fetch_assoc($result)) { | |
| $feature_collection['features'][] = createFeature($row['conditionsID'], | |
| $row['LATITUDE'], | |
| $row['LONGITUDE'], | |
| $row); | |
| } | |
| } | |
| echo json_encode($feature_collection); | |
| function createFeature($ID, $lat, $lon, $data) | |
| { | |
| unset($data["LATITUDE"]); | |
| unset($data["LONGITUDE"]); | |
| $feature = array(); | |
| $feature["type"] = "Feature"; | |
| $feature["id"] = $ID; | |
| $feature["geometry"] = array(); | |
| $feature["geometry"]["type"] = "Point"; | |
| $feature["geometry"]["coordinates"] = array($lon+0, $lat+0); | |
| $feature["properties"] = $data; | |
| $feature["properties"]["visible"] = "true"; | |
| return $feature; | |
| } | |
| </code></pre> | |
| <p>Notice the "FeatureCreate" function to allow me to build a feature quickly. Also note I add almost the entire row into the properties object. Overkill/Redundant, but makes for simpler code.</p> | |
| <p>Hopefully this snippet will help. It does my job (and I'd be happy to listen to others suggestions).</p> | |
| </div> | |
| <div class="profile"> | |
| <table> | |
| <tr> | |
| <td colspan="2"> | |
| <a class="" href="http://stackoverflow.com/users/464990" target="_blank">J Jones</a> <a class="hlLink" href="#highlight" id="hl6629755_464990" title="Highlight posts by this user"><span class="hIcon">H</span></a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td class="postedTime"><em>2011-07-08 19:54:43</em></td> | |
| <td class="scoreWrapper"></td> | |
| </tr> | |
| <tr> | |
| <td colspan="2"></td> | |
| </tr> | |
| </table> | |
| </div> | |
| <div class="clear"></div> | |
| </div> | |
| <div class="lineSeparator"></div> | |
| <div class="separator"></div> | |
| </div> | |
| <div class="contentSource"> | |
| <div style="float: left;"> | |
| <!-- AddThis Button BEGIN --> | |
| <div class="addthis_toolbox addthis_default_style "> | |
| <a href="http://www.addthis.com/bookmark.php?v=250&pubid=ra-4d8c29943e88fcc5" class="addthis_button_compact">Share</a> | |
| <span class="addthis_separator">|</span> | |
| <a class="addthis_button_preferred_1"></a> | |
| <a class="addthis_button_preferred_2"></a> | |
| <a class="addthis_button_preferred_3"></a> | |
| <a class="addthis_button_preferred_4"></a> | |
| </div> | |
| <script type="text/javascript">var addthis_config = {"data_track_clickback":true};</script> | |
| <script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4d8c29943e88fcc5"></script> | |
| <!-- AddThis Button END --> | |
| </div> | |
| <a href="http://stackoverflow.com/questions/6591947" target="_blank">View original post at stackoverflow.com</a> | |
| </div> | |
| <div id="relatedTopics"> | |
| <h3>Related topics</h3> | |
| <div class="clear"></div> | |
| </div> | |
| <div id="relatedTopicList""> | |
| <h2 class="relatedTopic"><a href="/question/1-939834/Does-Rails'-Ajax-support-make-JSON-or-XML-an-easier-format-to-work-with?" title="Does Rails' Ajax support make JSON or XML an easier format to work with?">Does Rails' Ajax support make JSON or XML an easier format to work with?</a></h2> | |
| <p>Being new to Ajax, I would like to understand which data exchange format - JSON or XML - would be easier to work with while doing Ajax in Rails. | |
| Do the various Rails helpers make one or the other format easier to deal with or does it depend on the ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-1817145/html-string-not-being-parsed-with-JSON.parse" title="html string not being parsed with JSON.parse">html string not being parsed with JSON.parse</a></h2> | |
| <p>I am using JSON.parse for a list of products. I am running a regex to replace characters that were breaking the parse: | |
| [\n|\t|\r] | |
| It seems that I am still having issues when the following content is being copied into html. | |
| <p><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: arial, Verdana, Helvetica; -webkit-border-horizontal-spacing: 2px; -webkit-border-vertical-spacing: ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-3654664/Getting-the-JSON-string-from-a-Twitter-search-result-into-Java-to-be-parsed" title="Getting the JSON string from a Twitter search result into Java to be parsed">Getting the JSON string from a Twitter search result into Java to be parsed</a></h2> | |
| <p>I am trying to get the JSON data from a Twitter search request such as this link text into my Java program so that I can parse it using Gson. How would I get the data from that URL into Java? Would I use an http request or ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-3886107/OpenLayers-Format-JSON-is-Returning-Empty-responseText-String" title="OpenLayers Format JSON is Returning Empty responseText String">OpenLayers Format JSON is Returning Empty responseText String</a></h2> | |
| <p>After a week of posting at the OpenLayers forum and not receiving responses to my questions, I have decided to look here. I have Googled and Googled and Googled and even found a wonderful tutorial concerning this topic, in Spanish, but so well written that Google translate was able ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-4624868/JSON-string-containing-\-not-being-parsed" title="JSON string containing \ not being parsed">JSON string containing \" not being parsed</a></h2> | |
| <p>I am creating a JSON string using James Newton-King's excellent JSON libary. | |
| I create the JSON string using the following line of code: | |
| string userJSON = Newtonsoft.Json.JsonConvert.SerializeObject(existingAdminUser, Newtonsoft.Json.Formatting.None); | |
| The result looks as follows: | |
| "{\"LoginId\":\"0f1b6c88-08ec-416f-b221-7568dc7c242a\",\"Firstname\":\"Charles\",\"Surname\":\"Barber\",\"Fullname\":\"Charles Barber\",\"Email\":\"charles17@test76876.com\",\"Systems\":null,\"IsValid\":false,\"IsValidExcludingSystems\":true,\"ValidationMessage\":\"\"}" | |
| I am then placing this string into my http response using the following line of code: | |
| HttpContext.Current.Response.Write("<input type=\"hidden\" name=\"adminextrainfo\" id=\"adminextrainfo\" value=\"" ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-5978536/Loop-through-parsed-json-string-in-php" title="Loop through parsed json string in php">Loop through parsed json string in php</a></h2> | |
| <p>I have a complicated structure of returned by an URL in JSON format, i have got the reponse which I can view through var_dump, Now I have this reponse, | |
| { | |
| "groups": [], | |
| "total_pages": 1, | |
| "spots": [ | |
| { | |
| "address": { | |
| ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-6452748/OpenLayers:-parsed-GeoJSON-points-always-display-at-coords(0-,-0)" title="OpenLayers: parsed GeoJSON points always display at coords(0 , 0)">OpenLayers: parsed GeoJSON points always display at coords(0 , 0)</a></h2> | |
| <p>this is the first time i use OpenLayers and i don't understand what i'm doing wrong. | |
| I try to display a simple point parsed from GeoJSON. The data seems to be parsed correctly (i checked with the console) but whatever point i give, it always displays at a position i guess ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-7821835/JSON-string-is-not-being-parsed" title="JSON string is not being parsed">JSON string is not being parsed</a></h2> | |
| <p>I want to parse a JSON string: | |
| MyJsonString: | |
| { | |
| "status": "ok", | |
| "count": 2, | |
| "count_total": 9, | |
| "pages": 5, | |
| "posts": [ | |
| { | |
| "id": 432, | |
| "type": "post", | |
| "title": "Title 1" | |
| ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-10271606/Add-parsed-URL's-(from-JSON)-to-string-array" title="Add parsed URL's (from JSON) to string array">Add parsed URL's (from JSON) to string array</a></h2> | |
| <p>I am new to SO, and although I've been through the FAQ's, I hope I get this question right. | |
| THE BACKGROUND | |
| I have been successful in getting data using the Facebook SDK and displaying them in a custom listview. However, as any beginner, I have invariably slowed things down and the listview ...</p> | |
| <h2 class="relatedTopic"><a href="/question/1-10747341/Is-there-a-Jquery-function-that-can-take-a-#ref-id-value-from-a-parsed-JSON-string-and-point-me-to-the-referenced-object?" title="Is there a Jquery function that can take a #ref id value from a parsed JSON string and point me to the referenced object?">Is there a Jquery function that can take a #ref id value from a parsed JSON string and point me to the referenced object?</a></h2> | |
| <p>I have been looking for an answer to this all afternoon and i cant seem to find the best way to accomplish what i need to. | |
| My JSON string (returned from a web service) has circular references in it (#ref) which point to $id in the string. Now i know ...</p> | |
| </div> | |
| </div><!-- /#page --> | |
| <div class="clear"></div> | |
| <div id="footer"> | |
| <div id="footerInner"> | |
| <div id="copyright"> | |
| <div id="footerMessage"> | |
| <p>The content is from <a href="http://stackexchange.com" target="_blank">stackexchange.com</a>, <a href="http://serverfault.com" target="_blank">serverfault.com</a>, <a href="http://superuser.com" target="_blank">superuser.com</a> and <a href="http://stackoverflow.com" target="_blank">stackoverflow.com</a>, <br>and is licensed under <a href="http://creativecommons.org/licenses/by-sa/2.5/" target="_blank">cc-wiki</a>. Any advice please <a href="/contact">contact us</a>.</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Kontera(TM);--> | |
| <script type='text/javascript'> | |
| var dc_AdLinkColor = 'blue' ; | |
| var dc_PublisherID = 228392 ; | |
| </script> | |
| <script type='text/javascript' src='http://kona.kontera.com/javascript/lib/KonaLibInline.js'> | |
| </script> | |
| <!-- end Kontera(TM) --> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment