Hoi,
Voor een project wil ik Google Earth weergeven op mijn Windows Form scherm. Dat lukt prima. Wat ik nu moet doen is placemarks via KML of zonder KML toevoegen in Google Earth. Aan deze placemarks wil ik een event kopellen. Zodra ik op een van de placemarks met de muis ga klikken, wil ik een dialoog kunnen openen. Het gaat hierbij om een dialoog van mijn Windows Applicatie en niet de Google Earth dialoogjes. Is dit mogelijk met de COM API? Zo ja, kan iemand mij een voorbeeld geven hoe ik events kan kopellen aan objecten (placemarks) binnen Google Earth die dus een interactie hebben met mijn eigen Windows Applicatie?
Hieronder een voorbeeld code:
In deze code is te zien dat ik alleen Google Earth importeer en render in mijn eigen applicatie. Dit lukt uitstekend. Kan iemand mij verder helpen met hoe ik events en placemarks kan toevoegen? Als er tutorials zijn op internet, dan hoor ik dat graag. Als er andere oplossingen zijn met een ander plugin, dan hoor ik dat ook graag. Alvast bedankt.
Voor een project wil ik Google Earth weergeven op mijn Windows Form scherm. Dat lukt prima. Wat ik nu moet doen is placemarks via KML of zonder KML toevoegen in Google Earth. Aan deze placemarks wil ik een event kopellen. Zodra ik op een van de placemarks met de muis ga klikken, wil ik een dialoog kunnen openen. Het gaat hierbij om een dialoog van mijn Windows Applicatie en niet de Google Earth dialoogjes. Is dit mogelijk met de COM API? Zo ja, kan iemand mij een voorbeeld geven hoe ik events kan kopellen aan objecten (placemarks) binnen Google Earth die dus een interactie hebben met mijn eigen Windows Applicatie?
Hieronder een voorbeeld code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using EARTHLib; namespace GoogleEarthApp { public partial class Form1 : Form { [DllImport("user32.dll")] static extern int SetParent(int hWndChild, int hWndParent); [DllImport("user32.dll", CharSet = CharSet.Auto)] public extern static bool SetWindowPos(int hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags); readonly IntPtr HWND_TOP = new IntPtr(0); static readonly UInt32 SWP_SHOWWINDOW = 64; private ApplicationGE m_geApp; public Form1() { m_geApp = new ApplicationGE(); InitializeComponent(); SetParent(m_geApp.GetRenderHwnd(), (int)pnlGoogleEarth.Handle); // Set the window position. SetWindowPos(m_geApp.GetRenderHwnd(), HWND_TOP, 0, 0, pnlGoogleEarth.Width, pnlGoogleEarth.Height, SWP_SHOWWINDOW); } private void Form1_Resize(object sender, EventArgs e) { SetWindowPos(m_geApp.GetRenderHwnd(), HWND_TOP, 0, 0, pnlGoogleEarth.Width, pnlGoogleEarth.Height, SWP_SHOWWINDOW); } } } |
In deze code is te zien dat ik alleen Google Earth importeer en render in mijn eigen applicatie. Dit lukt uitstekend. Kan iemand mij verder helpen met hoe ik events en placemarks kan toevoegen? Als er tutorials zijn op internet, dan hoor ik dat graag. Als er andere oplossingen zijn met een ander plugin, dan hoor ik dat ook graag. Alvast bedankt.