示例#1
0
 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);
 }