package Ġweather Ċ Ċ /************************************************************************ ***** Ċ Ġ* ĠWorks Ġwith Ġthe ĠJSON Ġoutput Ġfrom Ġgoogle 's ĠGeo coding ĠAPI . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* ĠThe Ġclass Ġis Ġrequired Ġfor Ġretrieving Ġthe Ġlatitude / longitude Ġof ĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ* Ġa Ġgiven Ġcity . ĠThese Ġtwo Ġvalues Ġare Ġrequired Ġto Ġretrieve Ġa Ġweather Ġreport Ġ Ġ* Ċ Ġ* Ġfrom Ġdark sky 's ĠAPI . ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ċ Ġ************************************************************************* ****/ Ċ Ċ import Ġorg . json . JSONObject Ċ import Ġjava . net . Http URLConnection Ċ import Ġjava . net . URL Ċ Ċ class ĠCity JSON Ġconstructor ( city : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey : ĠString ){ ĊĠĠĠ Ġprivate Ġval Ġgoogle Geo coding API URL Ġ= Ġ" https :// maps . googleapis . com / maps / api / geo code / json ? address = + ${ city . replace (" Ġ", Ġ"+ "). trim ()}, + ${ state . trim ()} & key =$ key " ĊĊĠĠĠ Ġprivate Ġval Ġconnection Ġ= ĠURL ( google Geo coding API URL ). open Connection () Ġas ĠHttp URLConnection ĊĠĠĠ Ġprivate Ġval Ġconnection Data Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . inputStream ?. buffered Reader ()?. read Text () ĊĠĠĠ Ġ} Ġfinally Ġ{ Ġconnection . disconnect () Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġjson City = ĠJSONObject ( connection Data ). get JSONArray (" results "). getJSONObject ( 0 ) ĊĊĠĠĠ Ġ/** Retrie ves Ġlatitude , longitude ĠJSON Ġcoordinates **/ ĊĠĠĠ Ġprivate Ġval Ġjson City Coordinates : ĠJSONObject Ġ= Ġjson City . getJSONObject (" geometry "). getJSONObject (" location ") ĊĊĠĠĠ Ġfun Ġget Latitude () Ġ: ĠString { ĊĠĠĠĠĠĠĠ Ġreturn Ġjson City Coordinates . getDouble (" lat "). toString () ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġget Longitude () Ġ: ĠString { ĊĠĠĠĠĠĠĠ Ġreturn Ġjson City Coordinates . getDouble (" lng "). toString () ĊĠĠĠ Ġ} Ċ }