Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Yazı Tipi BoyutlandırıcıAa
  • Anasayfa
  • Teknoloji
    • Siber Güvenlik
    • Yapay Zeka
    • Donanım
    • Bilim
  • Yazılım
  • Savunma & İstihbarat
  • Oyun
  • Yaşam
    • Finans
    • Sinema
    • Dünyadan Haberler
  • İş Birliği
Okuma: PHP’de Mesafe Hesaplamayın: Laravel’de PostGIS Ustası Olun 🗺️
Paylaş
Yazı Tipi BoyutlandırıcıAa
Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Ara
Bizi Takip Et
  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti
© 2026 Teknomers. All Rights Reserved.

Anasayfa » PHP’de Mesafe Hesaplamayın: Laravel’de PostGIS Ustası Olun 🗺️

Yazılım

PHP’de Mesafe Hesaplamayın: Laravel’de PostGIS Ustası Olun 🗺️

teknomers
Son güncelleme: 15 Nisan 2026 09:29
teknomers
Paylaş
Paylaş

SaaS’teki Konum Darboğazı

<p>AgriTech platformları veya B2B lojistik panelleri gibi konum verilerine ihtiyaç duyan projelerde, bu verilerin doğru yönetimi hayati önem taşır. Geliştiriciler genellikle yakınlık aramaları (örneğin, "50 km çapında tüm çiftlikleri bul") için veritabanında standart <code>latitude</code> ve <code>longitude</code> değerlerini depolayarak Haversine formülü ile mesafeyi hesaplar. Bu yöntem, birkaç yüz kayıt için yeterli olsa da, platformunuz milyonlarca veri noktasına ulaştıkça bu yaklaşım veritabanınızı tamamen kilitleyebilir. CPU aşırı yüklenir, sorgular zaman aşımına uğrar ve API'niz durma noktasına gelir. Smart Tech Devs olarak bu darboğazı tamamen aşmak için PostgreSQL veritabanlarımızı <strong>PostGIS</strong> ile tasarlıyoruz.</p>

<h2>PostGIS'e Giriş: Kurumsal Coğrafi Mimari</h2>

<p>PostGIS, PostgreSQL için bir uzantıdır ve bu veritabanını mekansal bir veritabanı haline getirir. Koordinatları ham sayılar olarak işlemek yerine, yerel Geometri ve Coğrafya veri türlerini tanıtır. Daha da önemlisi, <strong>Mekansal İndeksler (GiST)</strong> kullanmanıza imkan tanır, bu da PostgreSQL'in fiziksel alanı standart metin veya tamsayıları arar gibi verimli bir şekilde arayabilmesini sağlar.</p>

<h3>Adım 1: Laravel Migration</h3>

<p>Laravel'de bunu uygulamak için öncelikle sunucumuzda PostGIS uzantısının aktif olduğundan emin olmalıyız, ardından migration dosyamızda bir mekansal sütun tanımlamalıyız.</p>

<pre><code>

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\DB;

class CreateFarmsTable extends Migration
{
public function up(): void
{
// 1. PostgreSQL veritabanında PostGIS uzantısını etkinleştirin
DB::statement(‘CREATE EXTENSION IF NOT EXISTS postgis;’);

    Schema::create('farms', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->foreignId('tenant_id')->constrained();

        // 2. Mekansal bir sütun tanımlayın. Standart GPS koordinatları için 'geography' kullanıyoruz. 
        // Bu, Dünya'nın eğriliğini otomatik olarak dikkate alarak doğru mesafeler sağlıyor.
        $table->geography('location', subtype: 'point', srid: 4326);
        $table->timestamps();
    });

    // 3. Hızlı sorgulamalar için mekansal GiST indeksi oluşturun
    DB::statement('CREATE INDEX farms_location_gist ON farms USING GIST (location);');
}

}

<h3>Adım 2: Hızlı Proximit Sorguları</h3>

<p>Artık tüm kayıtları PHP üzerinde çekip mesafeleri hesaplamak yerine, PostgreSQL'in mekansal motoruna işlemi yaptırıyoruz. Bunun için <code>ST_DWithin</code> fonksiyonunu kullanıyoruz. Bu, GiST indeksimizi kullanarak sonuçları milisaniyeler içinde döndürmemizi sağlıyor.</p>

<pre><code>

namespace App\Repositories;

use App\Models\Farm;
use Illuminate\Support\Facades\DB;

class SpatialRepository
{
/ 

  • Belirli bir noktanın etrafında tüm çiftlikleri bulun.
    */
    public function getFarmsWithinRadius(float $lat, float $lng, int $radiusInMeters)
    {
    // Kullanıcının koordinatlarından bir mekansal nokta oluşturun
    $targetPoint = “ST_SetSRID(ST_MakePoint({$lng}, {$lat}), 4326)”;

    return Farm::query()
    ->whereRaw(“ST_DWithin(location, {$targetPoint}, ?)”, [$radiusInMeters])
    // İsteğe bağlı olarak, kullanıcıya gösterilmek üzere tam mesafeyi seçin
    ->select(‘*’)
    ->selectRaw(“ST_Distance(location, {$targetPoint}) AS distance_meters”)
    ->orderBy(‘distance_meters’, ‘asc’)
    ->get();
    }
    }

<h2>Mühendislik ROI'si</h2>

<p>PostGIS'e geçiş yaparak, O(N) tam tablo taramasını O(log N) indeksli arama haline dönüştürmüş oluyorsunuz. Bu mimari, platformların mekansal verileri sonsuz bir şekilde ölçeklendirmesine yardımcı olur; büyük tarım haritalarını, hava durumu izleme koordinatlarını ve filo lojistiğini zahmetsizce yönetmelerini sağlar. Uygulama katmanında matematik yapmak yerine, veritabanınıza geometri işini bırakın.</p>

Kaynak: Orijinal Makale

React ve Laravel Projeleri İçin Hosting ve Yayınlama: Ücretsiz Test Seçenekleri ve Yayınlama Süreci Rehberi
Laravel’in Fabrika İlişkilerinizi Neden Tahmin Edemediği
Spam’a Elveda: Geçici E-posta Tespiti için En İyi Laravel Paketi
Laravel ile Inertia ve React kullanarak Çok Dilli Uygulama Geliştirme: Pratik Bir Kılavuz
Rust için Laravel benzeri bir Web Framework’u Geliştirdim
Bu Makaleyi Paylaş
Facebook Bağlantıyı Kopyala Yazdır
Paylaş
Önceki Makale Elden Ring Hayranlarından Iron Fist Alexander Önerisi
Sonraki Makale Acil: OpenAI, GPT-5.4-Cyber ile Güvenlik Ekiplerine Açıldı!

Sanal Medya

FacebookBeğen
452Takip Et
PinterestSabitle
237Takip Et

Son Eklenenler

Tahvil piyasası faiz oranları hakkında net bir sinyal veriyor: Bitcoin yatırımcıları dikkate almalı
Finans
NASA, Eric Schmidt’in Roket Şirketini Mars Görevine Seçti
Genel
İngiltere Mültecilerin Yaşını Yüz Tarama ile Belirleyecek: Tekniğe Güven Soruları
Genel
N+1 Çökmelerini Durdur: Laravel Katı Modunu Zorla
Yazılım
Valve’ın AMD merkezli oyun işletim sistemini Intel donanımda çalıştırma yolları
Donanım
Yeni Meksika’da Su Kullanımı Tartışmalı Proje: Oracle Neden Haklı?
Donanım
//

Siber güvenlik, yapay zeka ve savunma sanayiinden; finans ve sinema dünyasına uzanan geniş bir yelpaze. Teknomers; teknoloji, strateji ve yazılım dünyasını sade bir dille sizlerle buluşturuyor.

Kurumsal

  • Hakkımızda
  • Gizlilik politikası
  • Tanıtım Yazısı ve Backlink Hizmeti

Kategoriler

  • Teknoloji
  • Oyun
  • Sinema
  • Siber Güvenlik
  • Bilim
  • Finans
  • Dünyadan Güncel Haberler

Populer

  • TV'de Ücretsiz İzlenebilen Şifresiz Erotik Kanallar (2025 Güncel Frekans Listesi)

  • The Last of Us PC Kontrolleri: Hızlı Silah Değiştirme ve Tüm Tuşlar (2025)

  • Hogwarts Legacy'de Odaklanma İksiri Nasıl Yapılır?

Teknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor HaberleriTeknomers | Dünyadan Güncel Teknoloji | Oyun | Müzik | Film | Spor Haberleri
Bizi Takip Et
© 2026 Teknomers. All Rights Reserved.
Welcome Back!

Sign in to your account

Kullanıcı Adı veya E-posta Adresi
Şifre

Şifrenizi mi unuttunuz?