package Ġcn . qi ux iang . react . amap 3 d Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġcom . amap . api . location . A Map Location Ċ import Ġcom . amap . api . location . A Map Location Client Ċ import Ġcom . amap . api . location . A Map Location Client Option Ċ import Ġcom . amap . api . location . A Map Location Listener Ċ import Ġcom . amap . api . maps . A Map Utils Ċ import Ġcom . amap . api . maps . Coordinate Converter Ċ import Ġcom . amap . api . maps . model . LatLng Ċ import Ġcom . amap . api . services . core . A Map Exception Ċ import Ġcom . amap . api . services . core . Lat Lon Point Ċ import Ġcom . amap . api . services . geo coder .* Ċ import Ġcom . amap . api . services . help . Input tips Ċ import Ġcom . amap . api . services . help . Input tips Query Ċ import Ġcom . amap . api . services . help . Tip Ċ import Ġcom . amap . api . services . route .* Ċ import Ġcom . facebook . react . bridge .* Ċ import Ġcom . facebook . react . modules . core . Device Event Manager Module Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ @ Suppress (" unused ") Ċ class ĠA Map Utils Module ( private Ġval Ġreact Context : ĠReact ApplicationContext ) Ġ: ĊĠĠĠĠĠĠĠ ĠReact Context Base Java Module ( react Context ), ĊĠĠĠĠĠĠĠ ĠInput tips . Input tips Listener , ĠA Map Location Listener , ĊĠĠĠĠĠĠĠ ĠRoute Search . On Route Search Listener , ĊĠĠĠĠĠĠĠ ĠGeo code Search . On Geo code Search Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" A Map Utils " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġdistance ( lat 1 : ĠDouble , Ġlng 1 : ĠDouble , Ġlat 2 : ĠDouble , Ġlng 2 : ĠDouble , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpromise . resolve ( A Map Utils . calculate Line Distance ( LatLng ( lat 1 , Ġlng 1 ), ĠLat Lng ( lat 2 , Ġlng 2 ))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġget Poi ListBy Keyword ( key : ĠString , Ġcity : ĠString Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! key . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsearch City Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( city . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch City Ġ= Ġ" éķ¿ æ² Ļ å¸Ĥ " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsearch City Ġ= Ġcity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput query Ġ= ĠInput tips Query ( key , Ġsearch City ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinput Tips Ġ= ĠInput tips ( react Context , Ġinput query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Tips . setInput tips Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput Tips . request Input tips As yn () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Input tips ( tip List : ĠMutable List < Tip > ?, Ġr Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( r Code Ġ== ĠA Map Exception . CODE _ A MAP _ SUCCESS Ġ&& Ġtip List Ġ!= Ġnull ) Ġ{// Ġ æŃ£ç¡® è¿ĶåĽŀ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Json Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġtip List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtip Ġ= Ġtip List . get ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( tip . point Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Tip Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Tip . put (" name ", Ġtip . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Tip . put (" address ", Ġtip . address ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Tip . put (" latitude ", Ġtip . point . latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Tip . put (" longitude ", Ġtip . point . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Json . put ( json Tip ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . putString (" tip List ", Ġlist Json . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Get Tip List ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġget Location () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Client Ġ= ĠA Map Location Client ( react Context ) ĊĠĠĠĠĠĠĠ Ġval Ġlocation Option Ġ= ĠA Map Location Client Option () ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į çĽĳåĲ¬ ĊĠĠĠĠĠĠĠ Ġlocation Client . setLocation Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į æ¨¡å¼ı ä¸º é«ĺ ç²¾ åº¦ æ¨¡å¼ı ï¼Į Battery _ Saving ä¸º ä½İ åĬŁ èĢĹ æ¨¡å¼ı ï¼Į Device _ Sensors æĺ¯ ä»ħ è®¾å¤ĩ æ¨¡å¼ı ĊĠĠĠĠĠĠĠ Ġlocation Option . location Mode Ġ= ĠA Map Location Client Option . A Map Location Mode . H ight _ Accuracy ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į éĹ´ éļĶ , åįķä½į æ¯ « ç§Ĵ , é»ĺè®¤ä¸º 5 0 0 0 ms ĊĠĠĠĠĠĠĠ Ġlocation Option . interval Ġ= Ġ 5 0 0 0 ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į åıĤæķ° ĊĠĠĠĠĠĠĠ Ġlocation Client . setLocation Option ( location Option ) ĊĠĠĠĠĠĠĠ Ġ// ĠæŃ¤ æĸ¹æ³ķ ä¸º æ¯ı éļĶ åĽºå®ļ æĹ¶éĹ´ ä¼ļ åıĳ èµ· ä¸Ģæ¬¡ å®ļä½į è¯·æ±Ĥ ï¼Į ä¸ºäºĨ åĩı å°ĳ çĶµ éĩı æ¶Ī èĢĹ æĪĸ ç½ĳç»ľ æµģ éĩı æ¶Ī èĢĹ ï¼Į ĊĠĠĠĠĠĠĠ Ġ// Ġ æ³¨æĦı è®¾ç½® åĲĪ éĢĤ çļĦ å®ļä½į æĹ¶éĹ´ çļĦ éĹ´ éļĶ ï¼Ī æľĢå°ı éĹ´ éļĶ æĶ¯æĮģ ä¸º 1 0 0 0 ms ï¼īï¼Į å¹¶ä¸Ķ åľ¨ åĲĪ éĢĤ æĹ¶éĹ´ è°ĥçĶ¨ stop Location () æĸ¹æ³ķ æĿ¥ åıĸæ¶Ī å®ļä½į è¯·æ±Ĥ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ å®ļä½į ç»ĵæĿŁ åĲİ ï¼Į åľ¨ åĲĪ éĢĤ çļĦ çĶŁåĳ½ åĳ¨æľŁ è°ĥçĶ¨ on Destroy () æĸ¹æ³ķ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ åįķ æ¬¡ å®ļä½į æĥħåĨµä¸ĭ ï¼Į å®ļä½į æĹł è®º æĪĲåĬŁ ä¸İ åĲ¦ ï¼Į éĥ½ æĹł éľĢ è°ĥçĶ¨ stop Location () æĸ¹æ³ķ ç§»éĻ¤ è¯·æ±Ĥ ï¼Į å®ļä½į sdk åĨħéĥ¨ ä¼ļ ç§»éĻ¤ ĊĠĠĠĠĠĠĠ Ġ// Ġ åĲ¯åĬ¨ å®ļä½į ĊĠĠĠĠĠĠĠ Ġlocation Client . start Location () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġget Location Once () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlocation Client Ġ= ĠA Map Location Client ( react Context ) ĊĠĠĠĠĠĠĠ Ġval Ġlocation Option Ġ= ĠA Map Location Client Option () ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į çĽĳåĲ¬ ĊĠĠĠĠĠĠĠ Ġlocation Client . setLocation Listener ( this ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į æ¨¡å¼ı ä¸º é«ĺ ç²¾ åº¦ æ¨¡å¼ı ï¼Į Battery _ Saving ä¸º ä½İ åĬŁ èĢĹ æ¨¡å¼ı ï¼Į Device _ Sensors æĺ¯ ä»ħ è®¾å¤ĩ æ¨¡å¼ı ĊĠĠĠĠĠĠĠ Ġlocation Option . location Mode Ġ= ĠA Map Location Client Option . A Map Location Mode . H ight _ Accuracy ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į ä¸Ģæ¬¡ ĊĠĠĠĠĠĠĠ Ġlocation Option . set Once Location ( true ) ĊĠĠĠĠĠĠĠ Ġlocation Option . set Once Location Latest ( true ) ĊĠĠĠĠĠĠĠ Ġ// è®¾ç½® å®ļä½į åıĤæķ° ĊĠĠĠĠĠĠĠ Ġlocation Client . setLocation Option ( location Option ) ĊĠĠĠĠĠĠĠ Ġ// ĠæŃ¤ æĸ¹æ³ķ ä¸º æ¯ı éļĶ åĽºå®ļ æĹ¶éĹ´ ä¼ļ åıĳ èµ· ä¸Ģæ¬¡ å®ļä½į è¯·æ±Ĥ ï¼Į ä¸ºäºĨ åĩı å°ĳ çĶµ éĩı æ¶Ī èĢĹ æĪĸ ç½ĳç»ľ æµģ éĩı æ¶Ī èĢĹ ï¼Į ĊĠĠĠĠĠĠĠ Ġ// Ġ æ³¨æĦı è®¾ç½® åĲĪ éĢĤ çļĦ å®ļä½į æĹ¶éĹ´ çļĦ éĹ´ éļĶ ï¼Ī æľĢå°ı éĹ´ éļĶ æĶ¯æĮģ ä¸º 1 0 0 0 ms ï¼īï¼Į å¹¶ä¸Ķ åľ¨ åĲĪ éĢĤ æĹ¶éĹ´ è°ĥçĶ¨ stop Location () æĸ¹æ³ķ æĿ¥ åıĸæ¶Ī å®ļä½į è¯·æ±Ĥ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ å®ļä½į ç»ĵæĿŁ åĲİ ï¼Į åľ¨ åĲĪ éĢĤ çļĦ çĶŁåĳ½ åĳ¨æľŁ è°ĥçĶ¨ on Destroy () æĸ¹æ³ķ ĊĠĠĠĠĠĠĠ Ġ// Ġåľ¨ åįķ æ¬¡ å®ļä½į æĥħåĨµä¸ĭ ï¼Į å®ļä½į æĹł è®º æĪĲåĬŁ ä¸İ åĲ¦ ï¼Į éĥ½ æĹł éľĢ è°ĥçĶ¨ stop Location () æĸ¹æ³ķ ç§»éĻ¤ è¯·æ±Ĥ ï¼Į å®ļä½į sdk åĨħéĥ¨ ä¼ļ ç§»éĻ¤ ĊĠĠĠĠĠĠĠ Ġ// Ġ åĲ¯åĬ¨ å®ļä½į ĊĠĠĠĠĠĠĠ Ġlocation Client . start Location () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Location Changed ( amap Location : ĠA Map Location ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( amap Location Ġ!= Ġnull Ġ&& Ġa map Location . errorCode Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlat Lng Ġ= ĠLat Lng ( amap Location . latitude , Ġa map Location . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . put Double (" latitude ", Ġlat Lng . latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata . put Double (" longitude ", Ġlat Lng . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Get Location ", Ġdata ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġconvert Lat lng ( latitude : ĠDouble , Ġlongitude : ĠDouble , Ġcoord Type : ĠString ?, Ġpromise : Promise ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource LatLng Ġ= ĠLat Lng ( latitude , Ġlongitude ) ĊĠĠĠĠĠĠĠ Ġvar Ġcoord Ġ= ĠCoordinate Converter . Coord Type . GPS ĊĠĠĠĠĠĠĠ Ġwhen ( coord Type ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" aliyun " Ġ-> Ġcoord Ġ= ĠCoordinate Converter . Coord Type . ALI Y UN ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" baidu " Ġ-> Ġcoord Ġ= ĠCoordinate Converter . Coord Type . BA ID U ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" google " Ġ-> Ġcoord Ġ= ĠCoordinate Converter . Coord Type . GOOGLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" map abc " Ġ-> Ġcoord Ġ= ĠCoordinate Converter . Coord Type . MAP ABC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" map bar " Ġ-> Ġcoord Ġ= ĠCoordinate Converter . Coord Type . MAP BAR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" sos omap " Ġ-> Ġcoord Ġ= ĠCoordinate Converter . Coord Type . S OS O MAP ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġconverter Ġ= ĠCoordinate Converter ( react Context ) ĊĠĠĠĠĠĠĠ Ġ// ĠCoord Type . GPS Ġ å¾ħ è½¬æį¢ åĿĲæłĩ ç±»åŀĭ ĊĠĠĠĠĠĠĠ Ġconverter . from ( coord ) ĊĠĠĠĠĠĠĠ Ġ// Ġsource LatLng å¾ħ è½¬æį¢ åĿĲæłĩ çĤ¹ ĊĠĠĠĠĠĠĠ Ġconverter . coord ( source LatLng ) ĊĠĠĠĠĠĠĠ Ġ// Ġæī§è¡Į è½¬æį¢ æĵįä½ľ ĊĠĠĠĠĠĠĠ Ġval Ġdest LatLng Ġ= Ġconverter . convert () ĊĠĠĠĠĠĠĠ Ġvar Ġret Ġ= ĠJSONObject () ĊĠĠĠĠĠĠĠ Ġret . put (" latitude ", Ġdest LatLng . latitude ) ĊĠĠĠĠĠĠĠ Ġret . put (" longitude ", Ġdest LatLng . longitude ) ĊĠĠĠĠĠĠĠ Ġpromise . resolve ( ret . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å¼Ģå§ĭ æĲľç´¢ è·¯å¾Ħ è§Ħ åĪĴ æĸ¹æ¡Ī ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġsearch Route Result ( start Latitude : ĠDouble , Ġstart Longitude : ĠDouble , Ġend Latitude : ĠDouble , Ġend Longitude : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstart LatLng Ġ= ĠLat Lon Point ( start Latitude , Ġstart Longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġend LatLng Ġ= ĠLat Lon Point ( end Latitude , Ġend Longitude ) ĊĠĠĠĠĠĠĠ Ġval Ġfrom And To Ġ= ĠRoute Search . From And To ( start LatLng , Ġend LatLng ) ĊĠĠĠĠĠĠĠ Ġval Ġroute Search Ġ= ĠRoute Search ( react Context ) ĊĠĠĠĠĠĠĠ Ġroute Search . set Route Search Listener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠRoute Search . Drive Route Query ( from And To , Ġ 0 , Ġnull , Ġnull , Ġ"") // Ġ ç¬¬ä¸Ģä¸ª åıĤæķ° è¡¨ç¤º è·¯å¾Ħ è§Ħ åĪĴ çļĦ èµ· çĤ¹ åĴĮ ç»Ī çĤ¹ ï¼Į ç¬¬äºĮ ä¸ª åıĤæķ° è¡¨ç¤º é© ¾ è½¦ æ¨¡å¼ı ï¼Į ç¬¬ä¸ī ä¸ª åıĤæķ° è¡¨ç¤º éĢ Ķ ç»ı çĤ¹ ï¼Į ç¬¬ åĽĽ ä¸ª åıĤæķ° è¡¨ç¤º éģ¿ è®© åĮºåŁŁ ï¼Į ç¬¬ äºĶ ä¸ª åıĤæķ° è¡¨ç¤º éģ¿ è®© éģĵ è·¯ ĊĠĠĠĠĠĠĠ Ġroute Search . calculate Drive Route As yn ( query )// Ġ å¼ĤæŃ¥ è·¯å¾Ħ è§Ħ åĪĴ é© ¾ è½¦ æ¨¡å¼ı æŁ¥è¯¢ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Drive Route Se ar ched ( result : ĠDrive Route Result ?, ĠerrorCode : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( errorCode Ġ== ĠA Map Exception . CODE _ A MAP _ SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġresult . paths Ġ!= Ġnull Ġ&& Ġresult . paths . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpath Ġ= Ġresult . paths . get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . put Int (" distance ", Ġpath . distance . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . put Int (" duration ", Ġpath . duration . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . put Int (" cost ", Ġresult . tax i Cost . toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Drive Route Se ar ched ", Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bus Route Se ar ched ( p 0 : ĠBus Route Result ?, Ġp 1 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon R ide Route Se ar ched ( p 0 : ĠR ide Route Result ?, Ġp 1 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Walk Route Se ar ched ( p 0 : ĠWalk Route Result ?, Ġp 1 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġget Lat lon ( name : ĠString , Ġcity : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgeo coder Search Ġ= ĠGeo code Search ( react Context ) ĊĠĠĠĠĠĠĠ Ġgeo coder Search . setOn Geo code Search Listener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠGeo code Query ( name , Ġcity )// Ġ ç¬¬ä¸Ģä¸ª åıĤæķ° è¡¨ç¤º åľ°åĿĢ ï¼Į ç¬¬äºĮ ä¸ª åıĤæķ° è¡¨ç¤º æŁ¥è¯¢ åŁİ å¸Ĥ ï¼Į ä¸Ńæĸĩ æĪĸèĢħ ä¸Ńæĸĩ åħ¨ æĭ ¼ ï¼Į city code ãĢģ ad code ï¼Į ĊĠĠĠĠĠĠĠ Ġgeo coder Search . get From Location Name As yn ( query )// Ġè®¾ç½® åĲĮæŃ¥ åľ° çĲĨ ç¼ĸçłģ è¯·æ±Ĥ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ React Method ĊĠĠĠ Ġfun Ġget Address ( latitude : ĠDouble , Ġlongitude : ĠDouble ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgeo coder Search Ġ= ĠGeo code Search ( react Context ) ĊĠĠĠĠĠĠĠ Ġgeo coder Search . setOn Geo code Search Listener ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġlat Lon Point Ġ= ĠLat Lon Point ( latitude , Ġlongitude ) ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠRe geo code Query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat Lon Point , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGeo code Search . A MAP )// Ġ ç¬¬ä¸Ģä¸ª åıĤæķ° è¡¨ç¤º ä¸Ģä¸ª Lat lng ï¼Į ç¬¬äºĮ åıĤæķ° è¡¨ç¤º èĮĥåĽ´ å¤ļå°ĳ ç±³ ï¼Į ç¬¬ä¸ī ä¸ª åıĤæķ° è¡¨ç¤º æĺ¯ çģ« ç³» åĿĲæłĩ ç³» è¿ĺæĺ¯ GPS åİŁ çĶŁ åĿĲæłĩ ç³» ĊĠĠĠĠĠĠĠ Ġgeo coder Search . get From Location As yn ( query )// Ġè®¾ç½® å¼ĤæŃ¥ éĢ Ĩ åľ° çĲĨ ç¼ĸçłģ è¯·æ±Ĥ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Geo code Se ar ched ( result : ĠGeo code Result ?, Ġr Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( r Code Ġ== ĠA Map Exception . CODE _ A MAP _ SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġresult . get Geo code Address List () Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġresult . get Geo code Address List (). size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġresult . get Geo code Address List (). get ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . put Double (" latitude ", Ġaddress . lat Lon Point . latitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . put Double (" longitude ", Ġaddress . lat Lon Point . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Geo code Se ar ched ", Ġevent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . put Double (" latitude ", Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . put Double (" longitude ", Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Geo code Se ar ched ", Ġevent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . put Double (" latitude ", Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . put Double (" longitude ", Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Geo code Se ar ched ", Ġevent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Re geo code Se ar ched ( result : ĠRe geo code Result ?, Ġr Code : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( r Code Ġ== ĠA Map Exception . CODE _ A MAP _ SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġresult . re geo code Address Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaddress Ġ= Ġresult . re geo code Address ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĢī åıĸ æľĢè¿ĳ çļĦ ä½įç½® è¿ĶåĽŀ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Lat lng Ġ= ĠLat Lng ( result . re geo code Query . point . latitude , Ġresult . re geo code Query . point . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä½¿çĶ¨ ç¬¬ä¸Ģä¸ª åľ°åĿĢ ä½ľä¸º æ¯Ķè¾ĥ å¯¹è±¡ åĪĿå§ĭåĮĸ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmin Distance Ġ= ĠA Map Utils . calculate Line Distance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Lat lng , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( address . pois . get ( 0 ). lat Lon Point . latitude , Ġaddress . pois . get ( 0 ). lat Lon Point . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmin Poi Ġ= Ġaddress . pois . get ( 0 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( poi Ġin Ġaddress . pois ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éģįåİĨ åľ°åĿĢ è®¡ç®Ĺ è·Ŀç¦» , Ġå¦Ĥæŀľ è·Ŀç¦» æĽ´ å°ı åĪĻ æĽ¿æį¢ è¿ĶåĽŀ åľ°åĿĢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Distance Ġ= ĠA Map Utils . calculate Line Distance ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquery Lat lng , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLat Lng ( poi . lat Lon Point . latitude , Ġpo i . lat Lon Point . longitude ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp Distance Ġ< Ġmin Distance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Distance Ġ= Ġtemp Distance ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmin Poi Ġ= Ġpo i . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! address . ao is . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" ao i Name ", Ġaddress . ao is . get ( 0 ). ao i Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" poi Name ", Ġmin Poi ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" city ", Ġaddress . city ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Re geo code Se ar ched ", Ġevent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" ao i Name ", Ġ" æľª çŁ¥ åĿĲæłĩ ä½įç½® ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" poi Name ", Ġ" æľª çŁ¥ åĿĲæłĩ ä½įç½® ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" city ", Ġ" æľª çŁ¥ åŁİ å¸Ĥ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Re geo code Se ar ched ", Ġevent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġevent Ġ= ĠArguments . create Map () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" ao i Name ", Ġ" æľª çŁ¥ åĿĲæłĩ ä½įç½® ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" poi Name ", Ġ" æľª çŁ¥ åĿĲæłĩ ä½įç½® ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . putString (" city ", Ġ" æľª çŁ¥ åŁİ å¸Ĥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreact Context . get JS Module ( Device Event Manager Module . RCT Device EventEmitter :: class . java ). emit (" on Re geo code Se ar ched ", Ġevent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠFloat . to Px : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ( this Ġ* ĠResources . getSystem (). display Metrics . density ). toInt () Ċ