folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Gmap.Net Ve GPS İle İlgili Bir Soru



C# Gmap.Net Ve GPS İle İlgili Bir Soru

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    Öncelikle Merhaba,

    Uzun süre önce arduino ile takılmak için birkaç parça birşeyler toplamıştım. Sonra kutuyu bir kenara attım. Geçen gün baktım tozlu tozlu duruyor. O kadar para verdik. Bir bakalım neymiş derken. GPS'ten aldığım veriyi harita da göstermek gibi bir projeye giriştim.

    Temel olarak c# ile arduinoya bağlanıp gmap.net ile haritada konumumu nokta olarak göstermeye çalışıyorum. Arduino tarafında sıkıntı yaşamadım. Beklediğimden kolay oldu. Zaten herşeye bir kütüphane yazmışlar adamlar.

    Yaşadığım sorun ise şu. Haritaya ilk markeri başarılı bir şekilde ekliyorum. Değiştiğini görmek için rastgele bir yere attım.

    Thread içindeki döngü çalışmaya başladıgında, veriler saglıklı bir şekilde geliyor. Ama marker kayboluyor. İşin tuhaf yanı markerleri tutan listeye baktığımda konumunun değiştiğini görüyorum. Haritayı update etmeme rağmen konum belirmiyor.

    Kodum:

    Acaba nerde yanlış yapıyorum. İstediğim şey anlık olarak konumun değiştiğini görebilmek. Hobi diye başladım ama olmayınca baya bilendim. Daha önce benzer çalışma yapan varsa fikirlerini bekliyorum.

     

     

    1234567B tarafından 04/Şub/18 01:37 tarihinde düzenlenmiştir

    arbeit macht frei
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek

    Çözdüm çok gülünç bir sorunu varmış. Convert ederken noktayı decimal olarak convert etmiyor. Haliyle 28,323135 olan kordinat 28323135 şeklinde çıkıyor. Çözümü için noktayı replace etmek gerekiyor.

    lat = Convert.ToDouble(konum[0].Replace(".", ","));//lat double a çevrildi.
    lng = Convert.ToDouble(konum[1].Replace(".", ","));//lng double a çevrildi.

     


    arbeit macht frei
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    buzukatak
    buzukatak's avatar
    Kayıt Tarihi: 27/Haziran/2010
    Erkek

    Sorunun sebebi Convert.ToDouble'ın yerel ayara riayet etmesi. Yerel yapılandırma Türkçe ise noktayı binlik ayraç algılayıp o beklenmeyen sonuca sebep olur.

    Bu yüzden ortamın yerel yapılandırması ne olursa olsun değişmeyeceği garanti edilmiş kurallarla çalışması için ön tanımlı olan InvariantCulture'u kullanabilirsin.  InvariantCulture bu tür metinden sayı dönüştürme işlemlerinde faydalıdır.

    Özetle dönüştürmeyi virgüle, noktaya girmeden Convert.ToDouble(konum[0], CultureInfo.InvariantCulture) ile yapmak daha doğru olur.

     

    buzukatak tarafından 04/Şub/18 03:13 tarihinde düzenlenmiştir

    anlıyorum.
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    1234567B
    1234567B's avatar
    Kayıt Tarihi: 04/Şubat/2010
    Erkek
    buzukatak bunu yazdı

    Sorunun sebebi Convert.ToDouble'ın yerel ayara riayet etmesi. Yerel yapılandırma Türkçe ise noktayı binlik ayraç algılayıp o beklenmeyen sonuca sebep olur.

    Bu yüzden ortamın yerel yapılandırması ne olursa olsun değişmeyeceği garanti edilmiş kurallarla çalışması için ön tanımlı olan InvariantCulture'u kullanabilirsin.  InvariantCulture bu tür metinden sayı dönüştürme işlemlerinde faydalıdır.

    Özetle dönüştürmeyi virgüle, noktaya girmeden Convert.ToDouble(konum[0], CultureInfo.InvariantCulture) ile yapmak daha doğru olur.

     

    Teşekkürler bunu öğrendiğim iyi oldu.


    arbeit macht frei
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    nick üstü yazısı.
    uguraba
    uguraba's avatar
    Kayıt Tarihi: 02/Eylül/2005
    Erkek

    Güzel bir çalışma olmuş, tebrikler.


    Vir sapit qui pauca loquitur.
Toplam Hit: 1714 Toplam Mesaj: 5
c# arduino arduino gps hobi arduino