Giriş yapmadınız.

#1 30.01.2018 09:06:13

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 493

Laravel google map sistemi

selamlar herkese bir sistem üzerinde çalışıyorumda şuan daha veri tabanı aşamasındayım . şimdi firmalar var ve anasayfada google map düşünün üzerinde en çok teklif alan 10 firma gözüküyor harita üzerinde buraya kadar sorun yok ama gelin görün ki adam sisteme kendi firmasını eklerken kordinat girmesi gerekecek çünkü laravel googlemapper paketini kullanıcam x ve y kordinatları olucak tablo=> sirket_id , il , ilçe ,semt,googlex,googley aslında sorunum  yapı siz olsaydınız bu kordinat işine nasıl çözüm bulurdunuz acaba ?  Teşekkürler.


Mister Koder

Çevrimdışı

#2 30.01.2018 09:42:39

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Laravel google map sistemi

Google Maps Javascript Api ile bir şeyler yapılabilir. Harita üzerinde işaretçi sürüklenir, öyle koordinatlar alınabilir. Hızlıca size bir örnek hazırladım. İşaretçiyi fare ile harita üzerinde sürükleyin. Buradan yola çıkabilirsiniz.

Buradan test edebilirsiniz:
https://jsfiddle.net/38c8ej1f/

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>Simple markers</title>
    <style>
      /* Always set the map height explicitly to define the size of the div
       * element that contains the map. */
      #map {
        height: 100%;
      }
      /* Optional: Makes the sample page fill the window. */
      html, body {
        height: 100%;
        margin: 0;
        padding: 0;
      }
    </style>
  </head>
  <body>
    <div style="padding:10px;">
    <input id="lat" name="lat" placeholder="Enlem">
    <input id="lng" name="lng" placeholder="Boylam">
    </div>
    <div id="map"></div>
    <script>

      function initMap() {
      
        // İlk yüklenen konum
        var myLatLng = {lat: 41.028325, lng: 28.913060};
        
        // Enlem giriş alanı
        var latInput = document.getElementById("lat");
        
        // Boylam giriş alanı
        var lngInput = document.getElementById("lng");

        // Google haritası
        var map = new google.maps.Map(document.getElementById('map'), {
          zoom: 14,
          center: myLatLng
        });
			
      	// Harita üzerindeki kırmızı işaretçi
        var marker = new google.maps.Marker({
          position: myLatLng,
          map: map,
          draggable:true // Taşınabilir
        });
        
        // İşaretçi harita üzerinde taşınırken
        google.maps.event.addListener(marker, 'drag', function (event) {
            latInput.value = event.latLng.lat();
            lngInput.value = event.latLng.lng();
        });
        
      }
    </script>
    <script async defer
    src="https://maps.googleapis.com/maps/api/js?&callback=initMap">
    </script>
  </body>
</html>

Son düzenleyen mgsmus (30.01.2018 09:43:07)

Çevrimdışı

#3 30.01.2018 11:58:50

Ekrem
Üye
Yer: Mersin
Kayıtlı: 02.01.2018
Mesajlar: 6
Website

Yanıt: Laravel google map sistemi

Arkadaşın verdiği örnek işinizi görecektir. Sorunuzda veri tabanı yapısından bahsetmişsiniz

sirket_id , il , ilçe ,semt

buradan yola çıkarak size kısa bir fikir verebilirim. İlerleyen zamanlarda İl, İlçe ve Semt bazında kayıtlarınız arttığında tüm kayıtları ekrana dökmek yerine haritada gösterilen alanları dökmek isteyebilirsiniz. Harita konusunda Openlayers çok detaylı bir yazılım olduğu için ve sorunuzdan yola çıkarak bu sistemi öneremem. Fakat https://github.com/grimzy/laravel-mysql-spatial buradaki kütüphaneyi kontrol etmenizi öneririm. Bu kütüphane sayesinde Spatial sorgu ile çok çeşitli ve verimli işler yapabilirsiniz.
Örnek olarak standart harita kullanacaksanız;

İl : 81
İlçe : 919

Semt'i baz almasanız ve sadece ilçe bazına en çok teklif alan 10 firmayı dökeceğim deseniz en az 9.190 tane kaydı haritaya yüklemek demektir.

Yukarıdaki kütüphane şu işe yarar.
Örnek olarak zoom yapılan alan
Şehir ve İstanbul
İstanbul Genelinde En Çok Teklif Alan 10 Firmayı dökersiniz.
İstanbuldan Bakırköy'e zoomlandı Bakırköy için koordinatları eşleşen en çok teklif alan 10 firmayı dökebilirsiniz.

Bu kütüphane size,

Mesafe hesabı,
Koordinatlar ile kesişen veya kesişmeyen kayıtlar
Koordinatlar içerisinde olan veya olmayan kayıtlar

gibi bir çok alanda veri verir.


Öğrenmek Güzel Şey!

Çevrimdışı

#4 30.01.2018 13:28:14

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 493

Yanıt: Laravel google map sistemi

@mgsmus  ve @ekrem hocam teşekkürler ama burda demek istediğim adam kendi firma bilgilerini girerken bu map kordinatlarını nasıl girebilir acaba ? mgsmus hocamın verdiği gibi yapsam değerleri bir inputa atıp vt ye kayıt etsem kullanıcı çok oyalanır mı acaba ?


Mister Koder

Çevrimdışı

#5 30.01.2018 14:51:01

deathisonitsway
Üye
Kayıtlı: 01.02.2016
Mesajlar: 476

Yanıt: Laravel google map sistemi

adam kaydını girdiğinde sende arkada bu değerleri kaydet gitsin işte;


Laravel does not save you. Php knowledge only save you. Do not become a Laravel programmer, just the opposite,become php developer.

Çevrimdışı

#6 30.01.2018 15:52:54

Ekrem
Üye
Yer: Mersin
Kayıtlı: 02.01.2018
Mesajlar: 6
Website

Yanıt: Laravel google map sistemi

Kevin-Mitnick yazdı:

@mgsmus  ve @ekrem hocam teşekkürler ama burda demek istediğim adam kendi firma bilgilerini girerken bu map kordinatlarını nasıl girebilir acaba ? mgsmus hocamın verdiği gibi yapsam değerleri bir inputa atıp vt ye kayıt etsem kullanıcı çok oyalanır mı acaba ?

Koordinat alma konusunda @mgsmus arkadaşımızın verdiği örnekten daha pratiğini bulamazsın. Buna ek olarak Google Maps'in Adres ile koordinat bulma seçenekleri var. Fakat çok sağlıklı olmaz. En iyisi @mgsmus 'un örneğini kullanarak kullanıcının seçimine bırakmak olacaktır.

Not : Benim verdiğim fikir kayıtları tamamladıktan sonra Son Kullanıcı tarafında ekrana dökme kısmındaydı.


Öğrenmek Güzel Şey!

Çevrimdışı

#7 30.01.2018 16:13:42

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Laravel google map sistemi

Bunu zamanında ben yapmıştım. Burayı kontrol edebilirsin. Burada ayrıca geocode ve places özelliklerini de kullanmışım:
https://www.rehberfx.com/yeni-kayit

Ayrıca enlem ve boylam bilgilerini kullanıcının görmesine gerek yok, inputları hidden yapıp arka planda alabilirsin.

Bunlara ek olarak geolocation ile kullanıcın giriş yaptığı yeri (tam doğru olmasa da) haritada otomatik işaretleterek işleri hızlandırabilirsin:
https://developers.google.com/maps/docu … eolocation

Çevrimdışı

#8 31.01.2018 08:58:29

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 493

Yanıt: Laravel google map sistemi

@mgsmus hocam tam aradığım şey işte benim form sizinkinin aynısı olucak diyebilirim bunun için google apisi mi kullandınız yoksa laravel için paket var mı ? geocode ve places özelliği için


Mister Koder

Çevrimdışı

#9 31.01.2018 09:14:47

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Laravel google map sistemi

Google Maps Javascript API ile hazırlamıştım, paket değil, kodlara kaynak kodundan bakabilirsiniz.

Places özelliği için ise, şu adresi yazınca otomatik tamamlıyor vs şu plugini kullanmışım:
https://ubilabs.github.io/geocomplete/

Javascript olduğu için size verdiğim linkte kodlar html içerisinde mevcut. Oradan bakın, takıldığınız yer olursa buraya yazarsınız bakarız. Unuttum ben de çok zaman oldu bakmayalı ama  Google dökümanlarından kolayca halledilir gibime geliyor.

Çevrimdışı

#10 31.01.2018 10:02:18

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 493

Yanıt: Laravel google map sistemi

@mgsmus hocam sağolun


Mister Koder

Çevrimdışı

#11 31.01.2018 10:06:07

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,490
Website

Yanıt: Laravel google map sistemi

Teşekkürler @mgsmus, çok temiz bir iş çıkarmışsın, tebrik ederim.

Çevrimdışı

#12 01.02.2018 20:04:34

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 493

Yanıt: Laravel google map sistemi

https://paste.laravel.io/afe71f1a-29e0- … 0e318d4e88 

kolay gelsin @mgmus abi bugun dediklerini yaptım ama haritayı göremiyorum consolda da hata gözükmüyor sorunu bulamadım bir türlü.


Mister Koder

Çevrimdışı

#13 02.02.2018 09:03:53

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Laravel google map sistemi

#map divine px olarak yükseklik verin.

Çevrimdışı

#14 02.02.2018 10:40:31

Kevin-Mitnick
Üye
Kayıtlı: 26.05.2016
Mesajlar: 493

Yanıt: Laravel google map sistemi

@mgsmus çözdüm abi js dosyası yüzündenmiş


Mister Koder

Çevrimdışı

#15 02.02.2018 10:40:48

sineld
Yönetici
Yer: Bursa
Kayıtlı: 26.12.2012
Mesajlar: 1,490
Website

Çevrimdışı

#16 20.06.2019 22:44:29

torpilahmet
Üye
Yer: İstanbul
Kayıtlı: 02.02.2017
Mesajlar: 5
Website

Yanıt: Laravel google map sistemi

Google maps için enlem ve boylamı veritabanında saklamak istersem veri türü ne olmalıdır.

Çevrimdışı

#17 21.06.2019 00:31:07

mgsmus
Moderatör
Yer: Mersin
Kayıtlı: 17.08.2013
Mesajlar: 1,703
Website

Yanıt: Laravel google map sistemi

Sadece saklamak için kullanacaksanız enlem için DECIMAL(10, 8); boylam için DECIMAL(11, 8).

Enlemin payının 10; boylamın payının 11 olmasının sebebi enlemin ±90 derece; boylamın ±180 derece olması.
Paydanın 8 olmasının sebebi ise 8 den sonrasının işimize yaramıyor olması diyebiliriz. 8 paydalı hesaplamalarda milimetrik sonuçlar elde ediyorsunuz, 9 ve sonrasında ise milimetrenin altına inmiş oluyorsunuz.

Veritabanı düzeyinde bazı işlemler yaptırmak isterseniz POINT veri tipinde tutabilirsiniz.
https://dev.mysql.com/doc/refman/5.7/en … types.html

Bu şekilde tutarsanız ST_* yöntemlerini kullanabiliyorsunuz.  Örneğin

SELECT ST_Distance_Sphere(POINT(lng, lat), POINT(lng, lat)) AS distance

size iki nokta asarındaki mesafeyi (metre olarak) verir. Ayrıca POINT veri tipine dikkat edin, önce boylam sonra enlem yazılıyor. Genellikle lat,lng şeklinde olur, point oluştururken lng, lat şeklinde oluyor. Yani POINT(lat, lng) şeklinde oluşturursanız yanlış olmuş olacak.

Çevrimdışı

Forum alt kısmı