Ir para conteúdo
Fórum Script Brasil
  • 0

KML em DELPHI


jxfdasilva

Pergunta

Viva companheiros,

Estou a tentar fazer um projecto (para já é ainda um esboço) em Delphi onde preciso de usar o KML (visualizado no Google Earth). O KML utiliza uma estrutura de tags com elementos e atributos baseado no padrão XML.

A questão é que preciso de actualizar a minha tabela XML todos os segundos de forma a actualizar as coordenadas que vou recebendo via socket ou porta COM. Alguém já

tentou algo semelhante?

ABRAÇO

José

O Africano

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Viva Jhonas,

De facto tem umas aplicações interessantes, Mas aquilo que pude ler, muma leitura trasnversal, parece-me que nõa sera exactamente o que procuro. Em todo o caso vou dar uma vista de olhos mais aprofundada.

Para ter uma ideia mais concreta do que procuro, aqui vão os detalhes:

A ideia é usanod o DELPHI, abrir dentro o Google Earth (vi aguns projectos usando o Google maps), e, usando o KML, ir actualizando as cordenadas.

Exemplo do XML:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document>
<name>KmlFile</name>
<Style id="transPurpleLineGreenPoly">
<LineStyle>
<color>7fff00ff</color>
<width>4</width>
</LineStyle>
<PolyStyle>
<color>7f00ff00</color>
</PolyStyle>
</Style>
<Placemark>
<name>Absolute</name>
<visibility>1</visibility>
<description>Transparent purple line</description>
<styleUrl>#transPurpleLineGreenPoly</styleUrl>
<LineString>
<tessellate>1</tessellate>
<altitudeMode>absolute</altitudeMode>


<coordinates>  // aqui vai recebendo as coordenadas em tempo real...
-112.265654928602,36.09447672602546,2357
-112.2660384528238,36.09342608838671,2357
-112.2668139013453,36.09251058776881,2357
-112.2677826834445,36.09189827357996,2357
-112.2688557510952,36.0913137941187,2357
-112.2694810717219,36.0903677207521,2357
-112.2695268555611,36.08932171487285,2357
-112.2690144567276,36.08850916060472,2357
-112.2681528815339,36.08753813597956,2357
-112.2670588176031,36.08682685262568,2357
-112.2657374587321,36.08646312301303,2357
</coordinates>


</LineString>
</Placemark>
</Document>
</kml>
Como se pode observar as coordenadas são sendo actualizadas em tempo real. Pois bem, o pretendo é receber um input do GPS na aplicação DEPLHI, e fazer com que estas coordenadas sejam actualizadas (Se quiserem experimentar é só copiar o código para o Notepad e guardar com uma extensão .KML e clicar em cima. Automaticamente abrira o Google Earth). Neste código dá um exemplo:
...

  <description>Por favor selecciona a região que gostaria de ver:</description>
    <NetworkLink>
      <name>Africa</name>
      <visibility>0</visibility>
      <open>1</open>
      <Url>
        <href>http://www.umexemplo.com/XXXX</href>
        <refreshMode>onInterval</refreshMode>
        <refreshInterval>60</refreshInterval>
      </Url>
    </NetworkLink>

...

Neste caso uso um href para importar os dados com um refrescamento.

O que idealizo é exactamente abrir o Google Earth no DELPHI e usando uma forma de actualizar as coordenadas. Bem, é uma ideia que tenciono explorar.

Abraço

José

O Africano

Editado por jxfdasilva
Link para o comentário
Compartilhar em outros sites

  • 0

Por acaso sabes de algum Plugin do Google Earth para Delphi, ou que se possa usar no Delphi?

1. Install Google Earth.

2. Import the COM interface from Project ->Import Type Library (I use

Delphi 6)

3. Select Earth 1.0 Type Library

4. Select the Palette page you want to use and press Install.

5. Open a new application.

6. Drop an ApplicationGE and KHInterface components from the Palette

onto the Form.

7. Setup the following handlers:

procedure TForm1.ConnectClick(Sender: TObject);

begin

KHInterface1.Connect;

ApplicationGE1.Connect;

end;

procedure TForm1.GrabWindowClick(Sender: TObject);

begin

if ApplicationGE1.GetRenderHwnd <>0 then

begin

MoveWindow(ApplicationGE1.GetRenderHwnd, 0, 0, Self.Width,

Self.Height, True);

Windows.SetParent(ApplicationGE1.GetRenderHwnd, Self.Handle);

end;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

ApplicationGE1.Logout;

ApplicationGE1.Disconnect;

KHInterface1.QuitApplication;

KHInterface1.Disconnect;

end;

I'd have a play around with the other GE components before looking at

the GEPanel code @ googleearthairlines.com .. the code is good but might

confuse things for you if you straight for it.

Some other handy links:

earth.google.com/comapi/index.html

bbs.keyhole.com/ubb/printthread.php/Cat/0/Board/SupportKML/main/613507/type/thread

code.google.com/apis/kml/documentation/

fonte:

http://www.delphigroups.info/2/6/324857.html

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...