На главную... Продукты | Технологии | Классификаторы | Проекты | Скачать | Цены| Форум | Статьи | Обучение | Контакты

Создаётся ли kml-файл при использовании кнопки Google Earth? Если да, то где?

Поиск  Пользователи  Правила  Войти
Форум » Архивные темы (доступны только для чтения) » ГИС Карта 2011
Страницы: 1
RSS
Создаётся ли kml-файл при использовании кнопки Google Earth? Если да, то где?, Нужно отловить создание kml-файла для расширения функционала карты.
 
Всем привет!

В предыдущих версиях, при открытии Google Earth через соответствующую кнопку в панораме, создавался KML-файл. Хотелось бы узнать - где он создаётся теперь (если создаётся), отловить и воспользоваться.

Альтернатива: буду очень благодарен, если кто-нибудь покажет пример кода на С++, который добавляет новую кнопку с аналогичным функционалом.

Заранее спасибо.
 
В программе ГИС "Карта 2001", главное меню - закладка "Вид" - "Внешние ресурсы" выбираете "Просмотр Google Earth.
 
Прошу прощения, Вы меня не поняли.
Вопрос не в том - как запустить, это и ёжику понятно. Вопрос в реализации и... недокументированных возможностях. Раньше, для того чтобы Google Earth открылся в нужном нам месте, Панорама генерировала .kml-файл. Мне очень хочется его отловить и использоваться в планах по захвату мира. Если файлик попрежнему создаётся (и это не комерческая тайна), то интересует - где. Если же нет - переходм к пункту "Альтернатива". :)

P.S. А вообще просто нужно прикрутить к Панораме возможность взаимодействовать не только с Google Eath, но и с SAS Planet
 
Формирование файла KML и запуск соответствующего приложения (если есть - GoogleEarth, если его нет -
запуск Google через браузер

//---------------------------------------------------------------------------
// filename - имя создаваемого файла KML
// b,l - координаты в градусах
// text - подпись названия точки при отображении в GoogleEarth
//---------------------------------------------------------------------------

int TForm1::ViewPointToGoogle(char *filename,double b,double l,char *text)
{
char drive[MAX_PATH];
char dir[MAX_PATH];
char file[MAX_PATH];
char ext[MAX_PATH];

FILE *gfile = fopen(filename,"w");
fprintf(gfile,"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
fprintf(gfile,"<kml xmlns=\"http://earth.google.com/kml/2.1\">\n");
fprintf(gfile," <Document>\n");
fprintf(gfile," <name>Elets, RUS.kml</name>\n");
fprintf(gfile," <open>1</open>\n");
fprintf(gfile," <Style id=\"sn_wht-blank\">\n");
fprintf(gfile," <IconStyle>\n");
fprintf(gfile," <Icon>\n");
fprintf(gfile," </Icon>\n");
fprintf(gfile," </IconStyle>\n");
fprintf(gfile," </Style>\n");
fprintf(gfile," <Placemark>\n");
fprintf(gfile," <name>%s</name>\n",AnsiToUtf8(text));
fprintf(gfile," <LookAt>\n");
fprintf(gfile," <longitude>%lf</longitude>\n",l);
fprintf(gfile," <latitude>%lf</latitude>\n",b);
fprintf(gfile," <altitude>2000</altitude>\n");
fprintf(gfile," <range>10000</range>\n");
fprintf(gfile," <tilt>35</tilt>\n");
fprintf(gfile," <heading>0</heading>\n");
fprintf(gfile," </LookAt>\n");
fprintf(gfile," <styleUrl>#default_myplaces_style</styleUrl>\n");
fprintf(gfile," <Point>\n");
fprintf(gfile," <coordinates>%lf,%lf,20000</coordinates>\n",l,b);
fprintf(gfile," </Point>\n");
fprintf(gfile," </Placemark>\n");
fprintf(gfile,"</Document>\n");
fprintf(gfile,"</kml>\n");
fclose(gfile);

// Выбрать программу из регистра

char buffer[MAX_PATH];
long bufSize = MAX_PATH;
memset(buffer,0,MAX_PATH);
char exe[512];
memset(exe,0,MAX_PATH);

// Выбрать программу из регистра
// Описание расширения

if(::RegQueryValue(HKEY_CLASSES_ROOT,".kml", buffer, &bufSize) == ERROR_SUCCESS)
{
 bufSize = MAX_PATH;
 sprintf(exe,"%s\\shell\\open\\command", buffer);

         // Описание связанной программы
 if(::RegQueryValue(HKEY_CLASSES_ROOT, exe, buffer, &bufSize) == ERROR_SUCCESS)
 {
  SplitThePath(buffer,drive,dir,file,ext);
  MakeThePath(buffer,drive,dir,file,".exe");
  strcat(buffer," \"");
  strcat(buffer,filename);
  strcat(buffer,"\"");
  ::WinExec(buffer,SW_SHOW);
 }
}

else
{
 char parm[256];
 sprintf(parm,"http://maps.google.com/maps?ll=%lf,%lf&spn=0.1,0.1&t=h&hl=ru",b,l);
 ::ShellExecute(Application->Handle,"open",parm,NULL,NULL, SW_SHOWNORMAL);
}


return 1;
}
Страницы: 1
Читают тему (гостей: 2)



© КБ Панорама, 1991-2024

Регистрируясь или авторизуясь на форуме, Вы соглашаетесь с Политикой конфиденциальности