toArray(); } $takeaddressdata = Address::find($take_address_id); if (!empty($takeaddressdata)) { $takeaddressdata = $takeaddressdata->toArray(); } if ($addressdata['longitude'] && $addressdata['latitude'] && $takeaddressdata['longitude'] && $takeaddressdata['latitude']) { $from['longitude'] = $addressdata['longitude']; $from['latitude'] = $addressdata['latitude']; $to['longitude'] = $takeaddressdata['longitude']; $to['latitude'] = $takeaddressdata['latitude']; $data["distance"] = Geocoder::get_distance($from, $to); } if ($data["distance"]) { $errands = Config::getconfig('errands'); if ($data["distance"] < (int) $errands['startkm']) { $data["amountTotle"] = round($errands['startat'], 2); } else { $data["amountTotle"] = $errands['startat']; $data["amountTotle"] = round($data["amountTotle"] + (($data["distance"] - $errands['startkm']) * $errands['mileageprice']), 2); } } return $data; } public static function Address2area($address) { preg_match('/(.*?(省|自治区|北京市|天津市|重庆市|上海市|香港特别行政区|澳门特别行政区))/', $address, $matches); if (count($matches) > 1) { $province = $matches[count($matches) - 2]; $address = str_replace($province, '', $address); } preg_match('/(.*?(市|自治州|地区|区划))/', $address, $matches); if (count($matches) > 1) { $city = $matches[count($matches) - 2]; $address = str_replace($city, '', $address); } preg_match('/(.*?(区|县))/', $address, $matches); if (count($matches) > 1) { $area = $matches[count($matches) - 2]; $address = str_replace($area, '', $address); } return ['province_name' => isset($province) ? $province : '', 'city_name' => isset($city) ? $city : '', 'district_name' => isset($area) ? $area : '',]; } }