Location Intelligence
Multi-Location Comparison
Compare up to 5 feasibility reports side-by-side across 20+ parameters with AI-powered analysis.
@if(session('success'))
{{ session('success') }}
@endif
{{-- Compare Form --}}
Select Reports to Compare
{{-- Comparison Results --}}
@if($comparisons->count())
@foreach($comparisons as $comp)
Comparison #{{ $comp->id }}
{{ $comp->created_at->format('M j, Y H:i') }} · {{ count($comp->locations ?? []) }} locations
{{-- Location Headers --}}
@if($comp->locations && is_array($comp->locations))
| Parameter |
@foreach($comp->locations as $loc)
{{ Str::limit($loc['address'] ?? "Report #{$loc['report_id']}", 25) }}
|
@endforeach
@if($comp->parameters && is_array($comp->parameters))
@php
$paramLabels = [
'zone_type' => 'Zone Type',
'max_far' => 'Max FAR / FSI',
'max_height_m' => 'Max Height (m)',
'ground_coverage_pct' => 'Ground Coverage %',
'connectivity_score' => 'Connectivity Score',
'amenity_score' => 'Amenity Score',
'metro_proximity' => 'Metro Proximity',
'hospital_proximity' => 'Hospital Proximity',
'school_proximity' => 'School Proximity',
'highway_proximity' => 'Highway Proximity',
'airport_proximity' => 'Airport Proximity',
'avg_feasibility_score' => 'Avg Feasibility',
'avg_sale_rate' => 'Avg Sale Rate (₹/sqft)',
'report_density' => 'Nearby Reports',
'flood_risk' => 'Flood Risk',
'development_potential' => 'Development Potential',
'investment_score' => 'Investment Score',
];
$higherIsBetter = ['max_far','max_height_m','ground_coverage_pct','connectivity_score','amenity_score',
'metro_proximity','hospital_proximity','school_proximity','highway_proximity','airport_proximity',
'avg_feasibility_score','avg_sale_rate','report_density','development_potential','investment_score'];
$locCount = count($comp->locations ?? []);
@endphp
@foreach($paramLabels as $key => $label)
@php
$values = [];
for ($li = 0; $li < $locCount; $li++) {
$values[] = $comp->parameters[$li][$key] ?? null;
}
$bestIdx = -1;
if (in_array($key, $higherIsBetter)) {
$numericVals = array_map(fn($v) => is_numeric($v) ? (float)$v : -1, $values);
$bestIdx = array_keys($numericVals, max($numericVals))[0] ?? -1;
}
@endphp
| {{ $label }} |
@foreach($values as $vi => $val)
@php $isBest = $bestIdx === $vi && $bestIdx >= 0; @endphp
{{ is_numeric($val) ? number_format($val, 2) : ($val ?? '—') }}
@if($isBest) ★ @endif
|
@endforeach
@endforeach
@endif
@endif
{{-- AI Analysis --}}
@if($comp->ai_analysis && is_array($comp->ai_analysis))
AI Recommendation
@if(!empty($comp->ai_analysis['recommendation']))
{{ $comp->ai_analysis['recommendation'] }}
@endif
@if(!empty($comp->ai_analysis['overall_ranking']) && is_array($comp->ai_analysis['overall_ranking']))
Overall Ranking
@foreach($comp->ai_analysis['overall_ranking'] as $ri => $rank)
#{{ $ri + 1 }}
{{ $rank['address'] ?? 'Location' }}
@if(isset($rank['score']))
({{ $rank['score'] }})
@endif
@endforeach
@endif
@if(!empty($comp->ai_analysis['comparative_advantages']) && is_array($comp->ai_analysis['comparative_advantages']))
Comparative Advantages
@foreach($comp->ai_analysis['comparative_advantages'] as $adv)
- {{ is_array($adv) ? ($adv['location'] ?? '').': '.($adv['advantage'] ?? json_encode($adv)) : $adv }}
@endforeach
@endif
@if(!empty($comp->ai_analysis['risks']) && is_array($comp->ai_analysis['risks']))
Risks
@foreach($comp->ai_analysis['risks'] as $risk)
- {{ is_array($risk) ? ($risk['location'] ?? '').': '.($risk['risk'] ?? json_encode($risk)) : $risk }}
@endforeach
@endif
@endif
@endforeach
@else
No Comparisons Yet
Enter report IDs above to compare multiple locations.
@endif