GOOGLE EARTH C#

in #utopian-io7 years ago (edited)

In this article, Microsoft Visual Studio programme will learn how to add us the google earth add-on and assume control. This programme is the intended position provides us to find by courtesy of entered latitude and longitude information.The application be able to do need some libraries and plunging add-on.

Ne Öğreneceğim ?

  • Microsoft Visual Studio
  • Google Earth uygulamasını eklemek

Gereksinimler

  • Microsoft Visual Studio
    -Interop.GEPlugin.dll
    -GoogleEarthPluginSetup.exe

Zorluk

  • Orta düzey

Eğitim İçeriği

Microsoft Visual Studio C# programında birçok masaüstü programı yapılabiliyor.İster oyun, ister çizim.Biz ise daha farklı bi uygulama yapacağız günlük hayatta da kullandığımız Google Earth uygulamasını C# da kullanacağız.Bu program sayesinde istediğimiz yerin uydu görüntülerine enlem ve boylam bilgilerine ulaşabiliriz. Bu program biraz daha geliştirilerek çok farklı günlük hayatta kullanabileceğimiz birçok yardımcı program geliştirilebilir.

Google Earth Nedir ?

Google Earth, tüm Dünya'nın uydularından çekilmiş değişik çözünürlükteki fotoğrafların görüldüğü, Google Labs tarafından satın alınan Keyhole adlı şirketin geliştirdiği bir bilgisayar yazılımıdır.

Microsoft Visual Studio Nedir ?

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır.Microsoft Windows, Windows Mobile, Windows CE, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve birlikte konsol ve grafiksel kullanıcı ara birliği uygulamaları için kullanılır.

Microsoft Visual Studio Programına Google Earth Ekleme için Hazırlık

Interop.GEPlugin.dll uzantısını bilgisayarımıza indiriyoruz.

Browse tıklayıp bilgisayarımızdan Interop.GEPlugin.dll’ yi seçiyoruz.

Programı Bilgisayarımızda Çalıştırabilmek.

Bu uygulamayı bilgisayarımızda çalıştırabilmek için GoogleEarthPluginSetup.exe ‘yi indirip bilgisayarımızda kurmak lazım. Eğer bu işlemi yapmazsak Google Earth programımızı Debug yaptığımız zaman çalışmaz.

Program Kodları

using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using GEPlugin;
namespace WindowsFormsApplication1
{
    [ComVisibleAttribute(true)]    
    public partial class GOOGLEEARTH : Form
    {
        public const string EARTHADRES = @"http://earth-api-samples.googlecode.com/svn/trunk/demos/desktop-embedded/pluginhost.html";
        public IGEPlugin EARTHKONTROL = null; //Google Earth apisini kullanmak için gerekli değişken, bu değişken üstünden yönlendiriyoruz apiyi.      
        public KmlLookAtCoClass lookAt;
        KmlScreenOverlayCoClass hedef_isareti;
        public GOOGLEEARTH()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
            //projeyi Debug yaptığımız anda harita açılacak.
        {
            internet_tarayicisi.Navigate(EARTHADRES);//EARTHADRES'deki linki internet tarayıcısı nesnesinin içerisinde açacağız.
            internet_tarayicisi.ObjectForScripting = this;
        }
        public void JSInitSuccessCallback_(object pluginInstance)
        {
            EARTHKONTROL = (IGEPlugin)pluginInstance;
        }
        public void Konum_Bul(double x, double y, double z)
        {
            KmlLookAtCoClass lookAt = EARTHKONTROL.getView().copyAsLookAt(EARTHKONTROL.ALTITUDE_RELATIVE_TO_GROUND);
            lookAt.setLatitude(x);  //enlem
            lookAt.setLongitude(y); //boylam
            lookAt.setRange(z);     //yükseklik           
            EARTHKONTROL.getView().setAbstractView(lookAt);
        }   
        private void konuma_git_Click(object sender, EventArgs e)
        {          
            //Koordinatlar Karabük üniversitesi mühendislik fakültesine aittir.(41,206428, 32,659381, 1000)
            //Enlem ve boylamı dereceden ondalığa çevirmek lazım.           
            Konum_Bul(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text), Convert.ToDouble(textBox3.Text));
            //Koordinatlar nokta, double sayı küsuratı virgül olduğundan yukarıdaki gibi           
        }       
        private void timer1_Tick(object sender, EventArgs e)
            //Bu timer harita üzerinde gezinirken olduğumuz konumun enlem, boylam ve yükseklik bilgilerini bize veriyor
        {
            try
            {
                KmlLookAtCoClass lookAt = EARTHKONTROL.getView().copyAsLookAt(EARTHKONTROL.ALTITUDE_RELATIVE_TO_GROUND);
                label5.Text = Convert.ToString(lookAt.getLatitude());  //enlem bilgileri
                label6.Text = Convert.ToString(lookAt.getLongitude()); //boylam bilgileri
                label7.Text = Convert.ToString(lookAt.getRange());     //yükseklik bilgileri
            }
            catch
            {
            }
        }
        private void donusturucu_Click(object sender, EventArgs e)
        //Konum bilgilerinden dakika ve saniyeyi dereceye çevirerek ondalık hale çevirmeye yarayan hesaplama işlemi
        {
            //Küsuratlı sayıları virgüllü yazmalıyız!!! Program bu şekilde çalışmaktadır.
            double saniye_e1 = Convert.ToDouble(textBox7.Text);//enlem bilgisinin saniye kısmı
            double dakika_e1 = Convert.ToDouble(textBox8.Text);//enlem bilgisinin dakika kısmı
            double derece_e1 = Convert.ToDouble(textBox9.Text);//enlem bilgisinin derece kısmı
            double saniye_b1 = Convert.ToDouble(textBox6.Text);//boylam bilgisinin saniye kısmı
            double dakika_b1 = Convert.ToDouble(textBox5.Text);//boylam bilgisinin dakika kısmı
            double derece_b1 = Convert.ToDouble(textBox4.Text);//boylam bilgisinin derece kısmı
            double a = dakika_e1 + (saniye_e1 / 60);
            double b = derece_e1 + (a / 60);
            textBox1.Text = b.ToString();//ondalığa çevrilmiş enlemi textbox'a yazdırma
            double c = dakika_b1 + (saniye_b1 / 60);
            double d = derece_b1 + (c / 60);
            textBox2.Text = d.ToString();//ondalığa çevrilmiş boylamı textbox'a yazdırma
        }

        private void hedefisareti_ac_CheckedChanged(object sender, EventArgs e)
        {
            hedef_isareti = EARTHKONTROL.createScreenOverlay("");
            hedef_isareti.setIcon(EARTHKONTROL.createIcon(""));
            hedef_isareti.getIcon().setHref("http://www.notsitesi.com/model/isaret.png");
            EARTHKONTROL.getFeatures().appendChild(hedef_isareti);
        }
      
    }
}

Konuma git butonuna basıldığı zaman textboxlar içerisindeki enlem, boylam ve yükseklik değerlerinin olduğu konuma gider.

Google Earth programında Karabük Üniversitesi Rektörlüğünün enlem ve boylam bilgilerinin derece, dakika ve saniye olarak görüyoruz bunu programımızdaki dönüştürücü sayesinde ondalığa çevireceğiz.

Dereceden ondalığa çevirme işleminin doğruluğunu kontrol ettik. Dönüştürücü butonuna basıldığında değerler, konuma gitmek için değer girilmesi gereken textboxlara gönderilir.

Bu program sayesinde istediğimiz yerin uydu görüntülerine enlem ve boylam bilgilerine ulaşabiliriz. Bu program biraz daha geliştirilerek çok farklı günlük hayatta kullanabileceğimiz birçok yardımcı program geliştirilebilir.

Sort:  

Your contribution cannot be approved because the contribution category you have chosen requires your post to be in English. See the Utopian Rules.

You can contact us on Discord.
[utopian-moderator]

Coin Marketplace

STEEM 0.16
TRX 0.15
JST 0.028
BTC 59220.04
ETH 2316.03
USDT 1.00
SBD 2.51