public static function prepareMapData($territory) { $data = []; $buildingCoordinates = []; foreach ($territory['addresses'] as $i => $address) { if (empty((double) $address['lat']) || empty((double) $address['long'])) { if ($address['street']['is_apt_building']) { if (empty($buildingCoordinates[$address['street']['id']])) { $buildingCoordinates[$address['street']['id']] = Coordinates::getBuildingCoordinates($address['street'], $territory['city_state']); } $address['lat'] = $buildingCoordinates[$address['street']['id']]['lat']; $address['long'] = $buildingCoordinates[$address['street']['id']]['long']; } else { $address = Coordinates::getAddessCoordinates($address, $territory['city_state']); } // dd($address); // Store in db Coordinates::updateAddress($address); } $data[] = (object) ['address' => $address['street']['is_apt_building'] ? $address['street']['street'] : $address['address'] . ' ' . $address['street']['street'], 'name' => $address['street']['is_apt_building'] ? 'Apartment' : ($address['name'] ? $address['name'] : "Home"), 'lat' => $address['lat'], 'long' => $address['long'], 'id' => $address['id']]; } return $data; }
protected function generateMarkersBoundariesMap($territoryArray) { // check if has Coordinates and add it if ($territoryArray['addresses']) { $terrMapData = $buildingCoordinates = []; $terrMapData = $territoryArray; $terrMapData['territories'] = Territory::orderBy('number', 'asc')->get(); // dd($terrMapData['territories']); foreach ($territoryArray['addresses'] as $street => $addresses) { foreach ($addresses as $i => $address) { // dd($address); if (empty((double) $address['lat']) || empty((double) $address['long'])) { if ($address['street']['is_apt_building']) { if (empty($buildingCoordinates[$address['street']['id']])) { $buildingCoordinates[$address['street']['id']] = Coordinates::getBuildingCoordinates($address['street'], $territoryArray['city_state']); } $address['lat'] = $buildingCoordinates[$address['street']['id']]['lat']; $address['long'] = $buildingCoordinates[$address['street']['id']]['long']; } else { $address = Coordinates::getAddessCoordinates($address, $territoryArray['city_state']); } // dd($address); $territoryArray['addresses'][$street][$i] = $address; // Store in db Coordinates::updateAddress($address); } if (empty($terrMapData['center']) && !empty((double) $address['lat']) && !empty((double) $address['long'])) { $terrMapData['center'] = ['lat' => $address['lat'], 'long' => $address['long']]; } } } } return view('markers-boundary-map')->with($terrMapData); }