You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1062 lines
65 KiB

  1. <?php
  2. /**
  3. *
  4. * ============================================================================
  5. * * 版权所有 蜘蛛出行 * *
  6. * 网站地址: http://www.zhizhuchuxing.com
  7. * ----------------------------------------------------------------------------
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和
  9. * 使用;不允许对程序代码以任何形式任何目的的再发布。
  10. * ============================================================================
  11. * Author By: 张帅
  12. * PhpStorm BaseService.php
  13. * Create By 2016/11/11 17:12 $
  14. */
  15. namespace Trip\Service;
  16. use Base\Tool\zh2py;
  17. use Trip\Model\BaseArea;
  18. use Util\Util\Util;
  19. class BaseService
  20. {
  21. private $poi_type = array(
  22. 377 => '城市',
  23. 25 => '酒店',
  24. 27 => '景区',
  25. 378 => '交通枢纽',
  26. 7 => '机场'
  27. );
  28. private $poi_type_order = array(
  29. 377 => '',
  30. 27 => '',
  31. 378 => '',
  32. 25 => '',
  33. 7 => ''
  34. );
  35. /**
  36. * Function Description:获取站点详情
  37. * Function Name: getPoiInfoArr
  38. *
  39. * @return array|mixed
  40. *
  41. * @author 张帅
  42. */
  43. public function getPoiInfoArr()
  44. {
  45. $memcache = \BaseMemcached::link();
  46. $siteContantConfig = Util::getSiteContantsConfig();
  47. $poiArrKey = 'POI_ARR_LIST_'.$siteContantConfig['org_id'];
  48. $result = $memcache->get($poiArrKey);
  49. if ($result) {
  50. return $result;
  51. }
  52. $poi_id = $this->getPoiIdArr();
  53. if (!$poi_id['flag']) {
  54. return $poi_id;
  55. }
  56. $poi_id = $poi_id['data'];
  57. //收集所有的poi_id
  58. $area_id_array = array();
  59. foreach ($poi_id as $key => $value) {
  60. if (!isset($area_id_array[$value['start_area']])) {
  61. $area_id_array[$value['start_area']] = $value['start_area'];
  62. }
  63. if (!isset($area_id_array[$value['end_area']])) {
  64. $area_id_array[$value['end_area']] = $value['end_area'];
  65. }
  66. if($value['start_poi_type'] == 0 || $value['end_poi_type'] == 0){
  67. unset($poi_id[$key]);
  68. }
  69. }
  70. $poi_id = array_merge($poi_id);
  71. //根据poi_id获取poi详细信息
  72. $poi_info_array = array();
  73. if (count($area_id_array) > 0) {
  74. $poi_info_array = $this->getPoiInfo($area_id_array);
  75. }
  76. //规整数组
  77. $poi_link = $this->getPoiGroup($poi_id, $poi_info_array);
  78. $result = $poi_link;
  79. $result['poi_info'] = $poi_info_array;
  80. $memcache->set($poiArrKey, $result, 3600);
  81. return $result;
  82. }
  83. /**
  84. * Function Description:获取poi站点数组
  85. * Function Name: getPoiIdArr
  86. *
  87. * @return array
  88. *
  89. * @author 张帅
  90. */
  91. public function getPoiIdArr()
  92. {
  93. $base = new BaseArea();
  94. $poi_array = $base->getPoiId();
  95. return $poi_array;
  96. }
  97. /**
  98. * Function Description:获取poi详细信息
  99. * Function Name: getPoiInfo
  100. * @param $area_id_array
  101. *
  102. * @return array
  103. *
  104. * @author 张帅
  105. */
  106. public function getPoiInfo($area_id_array)
  107. {
  108. $area_id_array = implode(',', $area_id_array);
  109. $base = new BaseArea();
  110. //获取POI的详细信息
  111. $poi_array = $base->getPoiInfo($area_id_array);
  112. if (!$poi_array['flag']) {
  113. return $poi_array;
  114. }
  115. //整理poi数组
  116. $poi_array = $poi_array['data'];
  117. $poi_info_array = array();
  118. foreach ($poi_array as $key => $vel) {
  119. $poi_info_array[$vel['area_id']] = $vel;
  120. }
  121. foreach ($poi_info_array as $key => $vel) {
  122. if (!empty($vel['parent_area_id'])) {
  123. $parent_id_arr = explode(',', $vel['parent_area_id']);
  124. $parent_name_arr = explode(',', $vel['parent_area_name']);
  125. $parent_area_arr = array();
  126. foreach ($parent_id_arr as $k => $v) {
  127. $parent_area_arr[$k]['area_id'] = $v;
  128. $parent_area_arr[$k]['area_name'] = $parent_name_arr[$k];
  129. $poi_info_array[$v]['son_area_id'][$key] = $key;
  130. }
  131. $poi_info_array[$key]['parent_area_arr'] = $parent_area_arr;
  132. } else {
  133. $poi_info_array[$key]['parent_area_arr'] = array();
  134. }
  135. }
  136. foreach ($poi_info_array as $key => $vel){
  137. if(!isset($vel['son_area_id'])){
  138. $poi_info_array[$key]['son_area_id'] = '';
  139. }else{
  140. $poi_info_array[$key]['son_area_id'] = implode(',',$vel['son_area_id']);
  141. }
  142. }
  143. return $poi_info_array;
  144. }
  145. /**
  146. * Function Description:按照线路不同的规则进行分类整理
  147. * Function Name: getPoiGroup
  148. * @param $poi_arr array
  149. * @param $poi_info_array array
  150. *
  151. * @return mixed
  152. *
  153. * @author 张帅
  154. */
  155. public function getPoiGroup($poi_arr, $poi_info_array)
  156. {
  157. $end_poi_arr = array();
  158. $start_poi_arr = array();
  159. $start_poi_link = array();
  160. $end_poi_link = array();
  161. $station_poi_arr = array();
  162. foreach ($poi_arr as $key => $vel) {
  163. if (!isset($start_poi_arr[$vel['start_area']])) {
  164. $start_poi_arr[$vel['start_area']] = $vel['start_area'];
  165. }
  166. if (!isset($end_poi_arr[$vel['end_area']])) {
  167. $end_poi_arr[$vel['end_area']] = $vel['end_area'];
  168. }
  169. }
  170. $poi_group[0] = $poi_arr;
  171. //获取联系较紧的数组
  172. foreach ($start_poi_arr as $key => $vel) {
  173. foreach ($poi_arr as $poi_key => $poi_vel) {
  174. if ($poi_vel['start_area'] == $vel) {
  175. $start_poi_type = explode(',', $poi_vel['start_poi_type']);
  176. $end_poi_type = explode(',', $poi_vel['end_poi_type']);
  177. if (in_array(377, $start_poi_type)) {//城市
  178. $station_poi_arr[0]['start'][377][$vel]['area_id'] = $vel;
  179. $station_poi_arr[0]['start'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  180. if (in_array(377, $end_poi_type)) {//城市
  181. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  182. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  183. if ($poi_vel['start_area'] != $poi_vel['end_area']) {
  184. $poi_group[319][] = $poi_vel;
  185. $station_poi_arr[319]['start'][377][$vel]['area_id'] = $vel;
  186. $station_poi_arr[319]['start'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  187. $poi_link[319]['start'][$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  188. $poi_link[319]['start'][$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  189. }
  190. }
  191. if (in_array(25, $end_poi_type)) {//酒店
  192. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  193. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  194. }
  195. if (in_array(27, $end_poi_type)) {//景区
  196. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  197. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  198. $poi_group[318][] = $poi_vel;
  199. $station_poi_arr[318]['start'][377][$vel]['area_id'] = $vel;
  200. $station_poi_arr[318]['start'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  201. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  202. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  203. }
  204. if (in_array(378, $end_poi_type)) {//交通枢纽
  205. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  206. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  207. }
  208. if (in_array(7, $end_poi_type)) {//机场
  209. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  210. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  211. $poi_group[380][] = $poi_vel;
  212. $station_poi_arr[380]['start'][377][$vel]['area_id'] = $vel;
  213. $station_poi_arr[380]['start'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  214. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  215. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  216. }
  217. }
  218. if (in_array(25, $start_poi_type)) {//酒店
  219. $station_poi_arr[0]['start'][25][$vel]['area_id'] = $vel;
  220. $station_poi_arr[0]['start'][25][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  221. if (in_array(377, $end_poi_type)) {//城市
  222. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  223. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  224. }
  225. if (in_array(25, $end_poi_type)) {//酒店
  226. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  227. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  228. }
  229. if (in_array(27, $end_poi_type)) {//景区
  230. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  231. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  232. $poi_group[318][] = $poi_vel;
  233. $station_poi_arr[318]['start'][25][$vel]['area_id'] = $vel;
  234. $station_poi_arr[318]['start'][25][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  235. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  236. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  237. }
  238. if (in_array(378, $end_poi_type)) {//交通枢纽
  239. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  240. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  241. }
  242. if (in_array(7, $end_poi_type)) {//机场
  243. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  244. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  245. $poi_group[380][] = $poi_vel;
  246. $station_poi_arr[380]['start'][25][$vel]['area_id'] = $vel;
  247. $station_poi_arr[380]['start'][25][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  248. $poi_link[380]['start'][25][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  249. $poi_link[380]['start'][25][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  250. }
  251. }
  252. if (in_array(27, $start_poi_type)) {//景区
  253. $station_poi_arr[0]['start'][27][$vel]['area_id'] = $vel;
  254. $station_poi_arr[0]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  255. if (in_array(377, $end_poi_type)) {//城市
  256. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  257. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  258. $poi_group[318][] = $poi_vel;
  259. $station_poi_arr[318]['start'][27][$vel]['area_id'] = $vel;
  260. $station_poi_arr[318]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  261. $poi_link[318]['start'][$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  262. $poi_link[318]['start'][$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  263. }
  264. if (in_array(25, $end_poi_type)) {//酒店
  265. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  266. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  267. $poi_group[318][] = $poi_vel;
  268. $station_poi_arr[318]['start'][27][$vel]['area_id'] = $vel;
  269. $station_poi_arr[318]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  270. $poi_link[318]['start'][$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  271. $poi_link[318]['start'][$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  272. }
  273. if (in_array(27, $end_poi_type)) {//景区
  274. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  275. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  276. $poi_group[318][] = $poi_vel;
  277. $station_poi_arr[318]['start'][27][$vel]['area_id'] = $vel;
  278. $station_poi_arr[318]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  279. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  280. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  281. }
  282. if (in_array(378, $end_poi_type)) {//交通枢纽
  283. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  284. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  285. $poi_group[318][] = $poi_vel;
  286. $station_poi_arr[318]['start'][27][$vel]['area_id'] = $vel;
  287. $station_poi_arr[318]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  288. $poi_link[318]['start'][$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  289. $poi_link[318]['start'][$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  290. }
  291. if (in_array(7, $end_poi_type)) {//机场
  292. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  293. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  294. $poi_group[318][] = $poi_vel;
  295. $station_poi_arr[318]['start'][27][$vel]['area_id'] = $vel;
  296. $station_poi_arr[318]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  297. $poi_link[318]['start'][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  298. $poi_link[318]['start'][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  299. $poi_group[380][] = $poi_vel;
  300. $station_poi_arr[380]['start'][27][$vel]['area_id'] = $vel;
  301. $station_poi_arr[380]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  302. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  303. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  304. }
  305. }
  306. if (in_array(378, $start_poi_type)) {//交通枢纽
  307. $station_poi_arr[0]['start'][378][$vel]['area_id'] = $vel;
  308. $station_poi_arr[0]['start'][378][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  309. if (in_array(377, $end_poi_type)) {//城市
  310. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  311. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  312. }
  313. if (in_array(25, $end_poi_type)) {//酒店
  314. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  315. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  316. }
  317. if (in_array(27, $end_poi_type)) {//景区
  318. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  319. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  320. $poi_group[318][] = $poi_vel;
  321. $station_poi_arr[318]['start'][378][$vel]['area_id'] = $vel;
  322. $station_poi_arr[318]['start'][378][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  323. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  324. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  325. }
  326. if (in_array(378, $end_poi_type)) {//交通枢纽
  327. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  328. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  329. }
  330. if (in_array(7, $end_poi_type)) {//机场
  331. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  332. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  333. $poi_group[380][] = $poi_vel;
  334. $station_poi_arr[380]['start'][378][$vel]['area_id'] = $vel;
  335. $station_poi_arr[380]['start'][378][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  336. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  337. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  338. }
  339. }
  340. if (in_array(7, $start_poi_type)) {//机场
  341. $station_poi_arr[0]['start'][7][$vel]['area_id'] = $vel;
  342. $station_poi_arr[0]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  343. if (in_array(377, $end_poi_type)) {//城市
  344. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  345. $start_poi_link[$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  346. $poi_group[380][] = $poi_vel;
  347. $station_poi_arr[380]['start'][7][$vel]['area_id'] = $vel;
  348. $station_poi_arr[380]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  349. $poi_link[380]['start'][$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  350. $poi_link[380]['start'][$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  351. }
  352. if (in_array(25, $end_poi_type)) {//酒店
  353. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  354. $start_poi_link[$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  355. $poi_group[380][] = $poi_vel;
  356. $station_poi_arr[380]['start'][7][$vel]['area_id'] = $vel;
  357. $station_poi_arr[380]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  358. $poi_link[380]['start'][$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  359. $poi_link[380]['start'][$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  360. }
  361. if (in_array(27, $end_poi_type)) {//景区
  362. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  363. $start_poi_link[$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  364. $poi_group[380][] = $poi_vel;
  365. $station_poi_arr[380]['start'][7][$vel]['area_id'] = $vel;
  366. $station_poi_arr[380]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  367. $poi_link[380]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  368. $poi_link[380]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  369. $poi_group[318][] = $poi_vel;
  370. $station_poi_arr[318]['start'][7][$vel]['area_id'] = $vel;
  371. $station_poi_arr[318]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  372. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  373. $poi_link[318]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  374. }
  375. if (in_array(378, $end_poi_type)) {//交通枢纽
  376. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  377. $start_poi_link[$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  378. $poi_group[380][] = $poi_vel;
  379. $station_poi_arr[380]['start'][7][$vel]['area_id'] = $vel;
  380. $station_poi_arr[380]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  381. $poi_link[380]['start'][$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  382. $poi_link[380]['start'][$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  383. }
  384. if (in_array(7, $end_poi_type)) {//机场
  385. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  386. $start_poi_link[$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  387. $poi_group[380][] = $poi_vel;
  388. $station_poi_arr[380]['start'][7][$vel]['area_id'] = $vel;
  389. $station_poi_arr[380]['start'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  390. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  391. $poi_link[380]['start'][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  392. }
  393. }
  394. if ($vel == 3240) {//迪士尼
  395. $station_poi_arr[379]['start'][27][$vel]['area_id'] = $vel;
  396. $station_poi_arr[379]['start'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  397. if (in_array(377, $end_poi_type)) {//城市
  398. $poi_group[379][] = $poi_vel;
  399. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_id'] = $vel;
  400. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  401. $poi_link[379]['start'][$vel][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  402. $poi_link[379]['start'][$vel][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  403. $station_poi_arr[379]['end'][377][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  404. $station_poi_arr[379]['end'][377][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  405. }
  406. if (in_array(25, $end_poi_type)) {//酒店
  407. $poi_group[379][] = $poi_vel;
  408. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_id'] = $vel;
  409. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  410. $poi_link[379]['start'][$vel][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  411. $poi_link[379]['start'][$vel][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  412. $station_poi_arr[379]['end'][25][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  413. $station_poi_arr[379]['end'][25][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  414. }
  415. if (in_array(27, $end_poi_type)) {//景区
  416. $poi_group[379][] = $poi_vel;
  417. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_id'] = $vel;
  418. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  419. $poi_link[379]['start'][$vel][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  420. $poi_link[379]['start'][$vel][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  421. $station_poi_arr[379]['end'][27][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  422. $station_poi_arr[379]['end'][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  423. }
  424. if (in_array(378, $end_poi_type)) {//交通枢纽
  425. $poi_group[379][] = $poi_vel;
  426. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_id'] = $vel;
  427. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  428. $poi_link[379]['start'][$vel][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  429. $poi_link[379]['start'][$vel][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  430. $station_poi_arr[379]['end'][378][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  431. $station_poi_arr[379]['end'][378][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  432. }
  433. if (in_array(7, $end_poi_type)) {//机场
  434. $poi_group[379][] = $poi_vel;
  435. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_id'] = $vel;
  436. $poi_link[379]['end'][$poi_vel['end_area']][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  437. $poi_link[379]['start'][$vel][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  438. $poi_link[379]['start'][$vel][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  439. $station_poi_arr[379]['end'][7][$poi_vel['end_area']]['area_id'] = $poi_vel['end_area'];
  440. $station_poi_arr[379]['end'][7][$poi_vel['end_area']]['area_name'] = $poi_info_array[$poi_vel['end_area']]['area_name'];
  441. }
  442. }
  443. }
  444. }
  445. }
  446. foreach ($end_poi_arr as $key => $vel) {
  447. foreach ($poi_arr as $poi_key => $poi_vel) {
  448. if ($poi_vel['end_area'] == $vel) {
  449. $start_poi_type = explode(',', $poi_vel['start_poi_type']);
  450. $end_poi_type = explode(',', $poi_vel['end_poi_type']);
  451. if (in_array(377, $end_poi_type)) {//城市
  452. $station_poi_arr[0]['end'][377][$vel]['area_id'] = $vel;
  453. $station_poi_arr[0]['end'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  454. if (in_array(377, $start_poi_type)) {//城市
  455. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  456. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  457. if ($poi_vel['start_area'] != $poi_vel['end_area']) {
  458. $poi_link[319]['end'][$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  459. $poi_link[319]['end'][$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  460. $station_poi_arr[319]['end'][377][$vel]['area_id'] = $vel;
  461. $station_poi_arr[319]['end'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  462. }
  463. }
  464. if (in_array(25, $start_poi_type)) {//酒店
  465. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  466. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  467. }
  468. if (in_array(27, $start_poi_type)) {//景区
  469. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  470. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  471. $poi_group[318][] = $poi_vel;
  472. $poi_link[318]['end'][$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  473. $poi_link[318]['end'][$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  474. $station_poi_arr[318]['end'][377][$vel]['area_id'] = $vel;
  475. $station_poi_arr[318]['end'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  476. }
  477. if (in_array(378, $start_poi_type)) {//交通枢纽
  478. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  479. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  480. }
  481. if (in_array(7, $start_poi_type)) {//机场
  482. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  483. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  484. $station_poi_arr[380]['end'][377][$vel]['area_id'] = $vel;
  485. $station_poi_arr[380]['end'][377][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  486. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  487. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  488. }
  489. }
  490. if (in_array(25, $end_poi_type)) {//酒店
  491. $station_poi_arr[0]['end'][25][$vel]['area_id'] = $vel;
  492. $station_poi_arr[0]['end'][25][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  493. if (in_array(377, $start_poi_type)) {//城市
  494. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  495. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  496. }
  497. if (in_array(25, $start_poi_type)) {//酒店
  498. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  499. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  500. }
  501. if (in_array(27, $start_poi_type)) {//景区
  502. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  503. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  504. $station_poi_arr[318]['end'][25][$vel]['area_id'] = $vel;
  505. $station_poi_arr[318]['end'][25][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  506. $poi_link[318]['end'][$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  507. $poi_link[318]['end'][$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  508. }
  509. if (in_array(378, $start_poi_type)) {//交通枢纽
  510. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  511. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  512. }
  513. if (in_array(7, $start_poi_type)) {//机场
  514. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  515. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  516. $station_poi_arr[380]['end'][25][$vel]['area_id'] = $vel;
  517. $station_poi_arr[380]['end'][25][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  518. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  519. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  520. }
  521. }
  522. if (in_array(27, $end_poi_type)) {//景区
  523. $station_poi_arr[0]['end'][27][$vel]['area_id'] = $vel;
  524. $station_poi_arr[0]['end'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  525. if (in_array(377, $start_poi_type)) {//城市
  526. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  527. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  528. }
  529. if (in_array(25, $start_poi_type)) {//酒店
  530. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  531. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  532. }
  533. if (in_array(27, $start_poi_type)) {//景区
  534. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  535. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  536. $station_poi_arr[318]['end'][27][$vel]['area_id'] = $vel;
  537. $station_poi_arr[318]['end'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  538. $poi_link[318]['end'][$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  539. $poi_link[318]['end'][$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  540. }
  541. if (in_array(378, $start_poi_type)) {//交通枢纽
  542. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  543. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  544. }
  545. if (in_array(7, $start_poi_type)) {//机场
  546. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  547. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  548. $station_poi_arr[380]['end'][27][$vel]['area_id'] = $vel;
  549. $station_poi_arr[380]['end'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  550. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  551. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  552. }
  553. }
  554. if (in_array(378, $end_poi_type)) {//交通枢纽
  555. $station_poi_arr[0]['end'][378][$vel]['area_id'] = $vel;
  556. $station_poi_arr[0]['end'][378][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  557. if (in_array(377, $start_poi_type)) {//城市
  558. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  559. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  560. }
  561. if (in_array(25, $start_poi_type)) {//酒店
  562. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  563. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  564. }
  565. if (in_array(27, $start_poi_type)) {//景区
  566. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  567. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  568. $station_poi_arr[318]['end'][378][$vel]['area_id'] = $vel;
  569. $station_poi_arr[318]['end'][378][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  570. $poi_link[318]['end'][$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  571. $poi_link[318]['end'][$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  572. }
  573. if (in_array(378, $start_poi_type)) {//交通枢纽
  574. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  575. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  576. }
  577. if (in_array(7, $start_poi_type)) {//机场
  578. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  579. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  580. $station_poi_arr[380]['end'][378][$vel]['area_id'] = $vel;
  581. $station_poi_arr[380]['end'][378][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  582. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  583. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  584. }
  585. }
  586. if (in_array(7, $end_poi_type)) {//机场
  587. $station_poi_arr[0]['end'][7][$vel]['area_id'] = $vel;
  588. $station_poi_arr[0]['end'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  589. if (in_array(377, $start_poi_type)) {//城市
  590. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  591. $end_poi_link[$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  592. $station_poi_arr[380]['end'][7][$vel]['area_id'] = $vel;
  593. $station_poi_arr[380]['end'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  594. $poi_link[380]['end'][$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  595. $poi_link[380]['end'][$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  596. }
  597. if (in_array(25, $start_poi_type)) {//酒店
  598. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  599. $end_poi_link[$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  600. $station_poi_arr[380]['end'][7][$vel]['area_id'] = $vel;
  601. $station_poi_arr[380]['end'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  602. $poi_link[380]['end'][$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  603. $poi_link[380]['end'][$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  604. }
  605. if (in_array(27, $start_poi_type)) {//景区
  606. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  607. $end_poi_link[$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  608. $station_poi_arr[380]['end'][7][$vel]['area_id'] = $vel;
  609. $station_poi_arr[380]['end'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  610. $poi_link[380]['end'][$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  611. $poi_link[380]['end'][$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  612. }
  613. if (in_array(378, $start_poi_type)) {//交通枢纽
  614. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  615. $end_poi_link[$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  616. $station_poi_arr[380]['end'][7][$vel]['area_id'] = $vel;
  617. $station_poi_arr[380]['end'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  618. $poi_link[380]['end'][$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  619. $poi_link[380]['end'][$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  620. }
  621. if (in_array(7, $start_poi_type)) {//机场
  622. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  623. $end_poi_link[$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  624. $station_poi_arr[380]['end'][7][$vel]['area_id'] = $vel;
  625. $station_poi_arr[380]['end'][7][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  626. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  627. $poi_link[380]['end'][$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  628. }
  629. }
  630. if ($vel == 3240) {//迪士尼
  631. $station_poi_arr[379]['end'][27][$vel]['area_id'] = $vel;
  632. $station_poi_arr[379]['end'][27][$vel]['area_name'] = $poi_info_array[$vel]['area_name'];
  633. if (in_array(377, $start_poi_type)) {//城市
  634. $poi_group[379][] = $poi_vel;
  635. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_id'] = $vel;
  636. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  637. $poi_link[379]['end'][$vel][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  638. $poi_link[379]['end'][$vel][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  639. $station_poi_arr[379]['start'][377][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  640. $station_poi_arr[379]['start'][377][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  641. }
  642. if (in_array(25, $start_poi_type)) {//酒店
  643. $poi_group[379][] = $poi_vel;
  644. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_id'] = $vel;
  645. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  646. $poi_link[379]['end'][$vel][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  647. $poi_link[379]['end'][$vel][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  648. $station_poi_arr[379]['start'][25][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  649. $station_poi_arr[379]['start'][25][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  650. }
  651. if (in_array(27, $start_poi_type)) {//景区
  652. $poi_group[379][] = $poi_vel;
  653. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_id'] = $vel;
  654. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  655. $poi_link[379]['end'][$vel][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  656. $poi_link[379]['end'][$vel][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  657. $station_poi_arr[379]['start'][27][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  658. $station_poi_arr[379]['start'][27][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  659. }
  660. if (in_array(378, $start_poi_type)) {//交通枢纽
  661. $poi_group[379][] = $poi_vel;
  662. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_id'] = $vel;
  663. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  664. $poi_link[379]['end'][$vel][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  665. $poi_link[379]['end'][$vel][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  666. $station_poi_arr[379]['start'][378][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  667. $station_poi_arr[379]['start'][378][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  668. }
  669. if (in_array(7, $start_poi_type)) {//机场
  670. $poi_group[379][] = $poi_vel;
  671. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_id'] = $vel;
  672. $poi_link[379]['start'][$poi_vel['start_area']][27][$poi_vel['end_area']]['area_name'] = $poi_info_array[$vel]['area_name'];
  673. $poi_link[379]['end'][$vel][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  674. $poi_link[379]['end'][$vel][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  675. $station_poi_arr[379]['start'][7][$poi_vel['start_area']]['area_id'] = $poi_vel['start_area'];
  676. $station_poi_arr[379]['start'][7][$poi_vel['start_area']]['area_name'] = $poi_info_array[$poi_vel['start_area']]['area_name'];
  677. }
  678. }
  679. }
  680. }
  681. }
  682. //$result['poi_group'] = $poi_group;
  683. $poi_link[0]['start'] = $start_poi_link;
  684. $poi_link[0]['end'] = $end_poi_link;
  685. $result['poi_group'] = $poi_group;
  686. $result['poi_link'] = $poi_link;
  687. $result['select_station'] = $station_poi_arr;
  688. return $result;
  689. }
  690. /**
  691. * Function Description:获取所有线路的站点
  692. * Function Name: getAllLine
  693. * @param $poi_type
  694. * @param $poi_name
  695. * @param $inout_type
  696. * @param $station_id
  697. * @param $poi_link
  698. * @param $select_station
  699. *
  700. * @return array
  701. *
  702. * @author 张帅
  703. */
  704. public function getAllLine($poi_type, $poi_name, $inout_type, $station_id, $poi_link, $select_station){
  705. $station_arr = array();
  706. if ($inout_type == 'in' && $station_id == '') {
  707. $station_arr = $select_station['start'];
  708. }elseif ($inout_type == 'in'){
  709. $station_arr = $poi_link['end'][$station_id];
  710. }elseif ($inout_type == 'out' && $station_id == ''){
  711. $station_arr = $select_station['end'];
  712. }elseif ($inout_type == 'out'){
  713. $station_arr = $poi_link['start'][$station_id];
  714. }
  715. if($poi_type == ''){
  716. $i = 1;
  717. $poi_type_arr[0]['type_id'] = '0';
  718. $poi_type_arr[0]['type_name'] = '全部';
  719. foreach ($station_arr as $key => $vel){
  720. $this->poi_type_order[$key] = $key;
  721. }
  722. foreach ($this->poi_type_order as $key => $vel){
  723. if($vel != '' && $key != 7){
  724. $poi_type_arr[$i]['type_id'] = $key;
  725. $poi_type_arr[$i]['type_name'] = $this->poi_type[$key];
  726. $i++;
  727. }
  728. }
  729. return $poi_type_arr;
  730. }elseif ($poi_type == '0'){
  731. $station_arr1 = array();
  732. foreach ($station_arr as $key => $vel){
  733. foreach ($vel as $k => $v){
  734. $station_arr1[$k] = $v;
  735. }
  736. }
  737. $station_arr = array_merge($station_arr1);
  738. }else{
  739. $station_arr = $station_arr[$poi_type];
  740. }
  741. if($poi_name == ''){
  742. $result = $station_arr;
  743. }else{
  744. $result = array();
  745. foreach ($station_arr as $key => $vel){
  746. if(strpos($vel['area_name'],$poi_name) !== false){
  747. $result[] = $vel;
  748. }
  749. }
  750. }
  751. return $result;
  752. }
  753. /**
  754. * Function Description:获取景区直通车的站点数据
  755. * Function Name: getScenicLine
  756. * @param $poi_type
  757. * @param $poi_name
  758. * @param $inout_type
  759. * @param $station_id
  760. * @param $poi_link
  761. * @param $select_station
  762. *
  763. * @return array
  764. *
  765. * @author 张帅
  766. */
  767. public function getScenicLine($poi_type, $poi_name, $inout_type, $station_id, $poi_link, $select_station)
  768. {
  769. $station_arr = array();
  770. if ($inout_type == 'in' && $station_id == '') {//查询起始站,终点站未选
  771. $station_arr = $select_station['start'];
  772. }elseif ($inout_type == 'in'){//查询起始站,终点站已选,得到景区直通车线路中终点站为已选站点的起始站poi集合
  773. $station_arr = $poi_link['end'][$station_id];
  774. }elseif ($inout_type == 'out' && $station_id == ''){//查询终点站,起始站未选
  775. $station_arr = $select_station['end'];
  776. }elseif ($inout_type == 'out'){//查询终点站,起始站已选,得到景区直通车线路中起始站为已选站点的终点站poi集合
  777. $station_arr = $poi_link['start'][$station_id];
  778. }
  779. //poi类型筛选
  780. if($poi_type == ''){
  781. $i = 0;
  782. foreach ($station_arr as $key => $vel){
  783. $this->poi_type_order[$key] = $key;
  784. }
  785. $poi_type_arr = array();
  786. foreach ($this->poi_type_order as $key => $vel){
  787. if($vel != '' && $key != 7){
  788. $poi_type_arr[$i]['type_id'] = $key;
  789. $poi_type_arr[$i]['type_name'] = $this->poi_type[$key];
  790. $i++;
  791. }
  792. }
  793. return $poi_type_arr;
  794. }elseif ($poi_type == '0'){
  795. $station_arr1 = array();
  796. foreach ($station_arr as $key => $vel){
  797. foreach ($vel as $k => $v){
  798. $station_arr1[$k] = $v;
  799. }
  800. }
  801. $station_arr = array_merge($station_arr1);
  802. }else{
  803. $station_arr = $station_arr[$poi_type];
  804. }
  805. //poi站点名模糊查询
  806. if($poi_name == ''){
  807. $result = $station_arr;
  808. }else{
  809. $result = array();
  810. foreach ($station_arr as $key => $vel){
  811. if(strpos($vel['area_name'],$poi_name) !== false){
  812. $result[] = $vel;
  813. }
  814. }
  815. }
  816. return $result;
  817. }
  818. /**
  819. * Function Description:获取城际直通车的站点数据
  820. * Function Name: getIntercityLine
  821. * @param $poi_type
  822. * @param $poi_name
  823. * @param $inout_type
  824. * @param $station_id
  825. * @param $poi_link
  826. * @param $select_station
  827. *
  828. * @return array
  829. *
  830. * @author 张帅
  831. */
  832. public function getIntercityLine($poi_type, $poi_name, $inout_type, $station_id, $poi_link, $select_station){
  833. $station_arr = array();
  834. if ($inout_type == 'in' && $station_id == '') {
  835. $station_arr = $select_station['start'];
  836. }elseif ($inout_type == 'in'){
  837. $station_arr = $poi_link['end'][$station_id];
  838. }elseif ($inout_type == 'out' && $station_id == ''){
  839. $station_arr = $select_station['end'];
  840. }elseif ($inout_type == 'out'){
  841. $station_arr = $poi_link['start'][$station_id];
  842. }
  843. if($poi_type == ''){
  844. $i = 0;
  845. foreach ($station_arr as $key => $vel){
  846. $this->poi_type_order[$key] = $key;
  847. }
  848. $poi_type_arr = array();
  849. foreach ($this->poi_type_order as $key => $vel){
  850. if($vel != '' && $key != 7){
  851. $poi_type_arr[$i]['type_id'] = $key;
  852. $poi_type_arr[$i]['type_name'] = $this->poi_type[$key];
  853. $i++;
  854. }
  855. }
  856. return $poi_type_arr;
  857. }elseif ($poi_type == '0'){
  858. $station_arr1 = array();
  859. foreach ($station_arr as $key => $vel){
  860. foreach ($vel as $k => $v){
  861. $station_arr1[$k] = $v;
  862. }
  863. }
  864. $station_arr = array_merge($station_arr1);
  865. }else{
  866. $station_arr = $station_arr[$poi_type];
  867. }
  868. if($poi_name == ''){
  869. $result = $station_arr;
  870. }else{
  871. $result = array();
  872. foreach ($station_arr as $key => $vel){
  873. if(strpos($vel['area_name'],$poi_name) !== false){
  874. $result[] = $vel;
  875. }
  876. }
  877. }
  878. return $result;
  879. }
  880. /**
  881. * Function Description:迪士尼接驳
  882. * Function Name: getDisneyLine
  883. * @param $poi_type
  884. * @param $poi_name
  885. * @param $inout_type
  886. * @param $station_id
  887. * @param $poi_link
  888. * @param $select_station
  889. *
  890. * @return array
  891. *
  892. * @author 张帅
  893. */
  894. public function getDisneyLine($poi_type, $poi_name, $inout_type, $station_id, $poi_link, $select_station){
  895. $station_arr = array();
  896. if ($inout_type == 'in' && $station_id == '') {
  897. $station_arr = $select_station['start'];
  898. }elseif ($inout_type == 'in'){
  899. $station_arr = $poi_link['end'][$station_id];
  900. }elseif ($inout_type == 'out' && $station_id == ''){
  901. $station_arr = $select_station['end'];
  902. }elseif ($inout_type == 'out'){
  903. $station_arr = $poi_link['start'][$station_id];
  904. }
  905. if($poi_type == ''){
  906. $i = 0;
  907. foreach ($station_arr as $key => $vel){
  908. $this->poi_type_order[$key] = $key;
  909. }
  910. $poi_type_arr = array();
  911. foreach ($this->poi_type_order as $key => $vel){
  912. if($vel != '' && $key != 7){
  913. $poi_type_arr[$i]['type_id'] = $key;
  914. $poi_type_arr[$i]['type_name'] = $this->poi_type[$key];
  915. $i++;
  916. }
  917. }
  918. return $poi_type_arr;
  919. }elseif ($poi_type == '0'){
  920. $station_arr1 = array();
  921. foreach ($station_arr as $key => $vel){
  922. foreach ($vel as $k => $v){
  923. $station_arr1[$k] = $v;
  924. }
  925. }
  926. $station_arr = array_merge($station_arr1);
  927. }else{
  928. $station_arr = $station_arr[$poi_type];
  929. }
  930. if($poi_name == ''){
  931. $result = $station_arr;
  932. }else{
  933. $result = array();
  934. foreach ($station_arr as $key => $vel){
  935. if(strpos($vel['area_name'],$poi_name) !== false){
  936. $result[] = $vel;
  937. }
  938. }
  939. }
  940. return $result;
  941. }
  942. /**
  943. * Function Description:获取机场接驳
  944. * Function Name: getAirportLine
  945. * @param $poi_type
  946. * @param $poi_name
  947. * @param $inout_type
  948. * @param $station_id
  949. * @param $poi_link
  950. * @param $select_station
  951. *
  952. * @return array
  953. *
  954. * @author 张帅
  955. */
  956. public function getAirportLine($poi_type, $poi_name, $inout_type, $station_id, $poi_link, $select_station){
  957. $station_arr = array();
  958. if ($inout_type == 'in' && $station_id == '') {
  959. $station_arr = $select_station['start'];
  960. }elseif ($inout_type == 'in'){
  961. $station_arr = $poi_link['end'][$station_id];
  962. }elseif ($inout_type == 'out' && $station_id == ''){
  963. $station_arr = $select_station['end'];
  964. }elseif ($inout_type == 'out'){
  965. $station_arr = $poi_link['start'][$station_id];
  966. }
  967. if($poi_type == ''){
  968. $i = 0;
  969. foreach ($station_arr as $key => $vel){
  970. $this->poi_type_order[$key] = $key;
  971. }
  972. $poi_type_arr = array();
  973. foreach ($this->poi_type_order as $key => $vel){
  974. if($vel != ''){
  975. $poi_type_arr[$i]['type_id'] = $key;
  976. $poi_type_arr[$i]['type_name'] = $this->poi_type[$key];
  977. $i++;
  978. }
  979. }
  980. return $poi_type_arr;
  981. }elseif ($poi_type == '7+'){
  982. $poi_type_arr[0]['type_id'] = 7;
  983. $poi_type_arr[0]['type_name'] = '机场';
  984. return $poi_type_arr;
  985. }elseif ($poi_type == '0'){
  986. $station_arr1 = array();
  987. foreach ($station_arr as $key => $vel){
  988. foreach ($vel as $k => $v){
  989. $station_arr1[$k] = $v;
  990. }
  991. }
  992. $station_arr = array_merge($station_arr1);
  993. }else{
  994. $station_arr = $station_arr[$poi_type];
  995. }
  996. if($poi_name == ''){
  997. $result = $station_arr;
  998. }else{
  999. $result = array();
  1000. foreach ($station_arr as $key => $vel){
  1001. if(strpos($vel['area_name'],$poi_name) !== false){
  1002. $result[] = $vel;
  1003. }
  1004. }
  1005. }
  1006. return $result;
  1007. }
  1008. /**
  1009. * Function Description:按照拼音排序
  1010. * Function Name: getPy
  1011. * @param $arr
  1012. *
  1013. * @return array
  1014. *
  1015. * @author 娄梦宁
  1016. */
  1017. public function getPy($arr){
  1018. //先根据poiname排序
  1019. $arr1=array();
  1020. foreach($arr as $key=>$val){
  1021. $area_name=$val['area_name'];
  1022. $arr1["$area_name"]=$arr["$key"];
  1023. }
  1024. ksort($arr1);
  1025. $arr=array_merge($arr1);
  1026. //排好序的数组再根据poi拼音首字排序
  1027. $newarr=array();
  1028. foreach($arr as $val){
  1029. $shouzi=mb_substr($val['area_name'],0,1,'utf-8');
  1030. $py=new zh2py();
  1031. $FirstPy=$py::conv($shouzi);
  1032. $FirstPy=substr($FirstPy,0,1);
  1033. $val['first_py']=$FirstPy;
  1034. $newarr["$FirstPy"][]=$val;
  1035. }
  1036. ksort($newarr);
  1037. return $newarr;
  1038. }
  1039. }