/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 . ĠJetBrains Ġs . r . o . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġjet brains . gis . tile protocol . json Ċ Ċ import Ġjet brains . datal ore . base . json . Fluent Array Ċ import Ġjet brains . datal ore . base . json . Fluent Object Ċ import Ġjet brains . datal ore . base . json . Obj Ċ import Ġjet brains . datal ore . base . json . parse Enum Ċ import Ġjet brains . datal ore . base . spatial . Lon Lat Ċ import Ġjet brains . datal ore . base . typed Geometry . Rect Ċ import Ġjet brains . datal ore . base . typed Geometry . explicit Vec Ċ import Ġjet brains . datal ore . base . typed Geometry . new Span Rectangle Ċ import Ġjet brains . gis . tile protocol . Request Ċ import Ġjet brains . gis . tile protocol . Request .* Ċ import Ġjet brains . gis . tile protocol . Tile Coordinates Ċ import Ġjet brains . gis . tile protocol . json . Request Keys . B BOX Ċ import Ġjet brains . gis . tile protocol . json . Request Keys . DATA Ċ import Ġjet brains . gis . tile protocol . json . Request Keys . KEY Ċ import Ġjet brains . gis . tile protocol . json . Request Keys . STYLE Ċ import Ġjet brains . gis . tile protocol . json . Request Keys . TYPE Ċ import Ġjet brains . gis . tile protocol . json . Request Keys . ZO OM ĊĊ Ċ object ĠRequest Json Parser Ġ{ ĊĠĠĠ Ġinternal Ġval ĠX Ġ= Ġ" x " ĊĠĠĠ Ġinternal Ġval ĠY Ġ= Ġ" y " ĊĠĠĠ Ġinternal Ġval ĠZ Ġ= Ġ" z " ĊĊĠĠĠ Ġfun Ġparse ( request : ĠObj ): ĠRequest Ġ{ ĊĠĠĠĠĠĠĠ ĠFluent Object ( request ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( parse Enum < Request Types >( getString ( TYPE ))) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Types . CONFIGURE _ CONNECTION Ġ-> ĠConfigure Connection Request ( getString ( STYLE )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Types . GET _ BINARY _ TILE Ġ-> ĠGet Binary Geometry Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( KEY ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Int ( ZO OM ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparse B Box ( get Array ( B BOX )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRequest Types . CANCEL _ BINARY _ TILE Ġ-> ĠCancel Binary Tile Request ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Array ( DATA ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fluent Object Stream () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map ( this @ Request Json Parser :: parse Tile Coordinates ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse B Box ( bbox : ĠFluent Array ): ĠRect < Lon Lat > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnew Span Rectangle ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexplicit Vec < Lon Lat >( bbox . getDouble ( 0 ), Ġbbox . getDouble ( 1 )), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexplicit Vec < Lon Lat >( bbox . getDouble ( 2 ), Ġbbox . getDouble ( 3 )) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġparse Tile Coordinates ( json Coordinates : ĠFluent Object ): ĠTile Coordinates Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTile Coordinates ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Coordinates . getInt ( X ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Coordinates . getInt ( Y ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson Coordinates . getInt ( Z ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ