Я пытаюсь создать Google Earth, показывающий города, но я остановился на парсере kml geoxml3.У меня есть javascript, строящий карту Google, сначала показывающий места, которые я хочу.это отлично работаетЯ вызываю функцию из сценария php, предоставляя ей адрес и ссылку на файл kml из базы данных.Функция строит карту, устанавливает флаг 'map_finished' в качестве контрольного флага, когда все прошло нормально, и вызывает функцию построения Google Earth.
// Get maps and earth from google
google.load( 'maps', '2.s', {'other_params': 'sensor=true'} );
google.load( 'earth', '1' );
//Google Earth Initializer
function initObjectEarth() {
// Check if Google Earth plugin is installed
if( gm_loaded ) {
this.ge_plugin_installed = google.earth.isInstalled();
if( this.ge_plugin_installed ) {
google.earth.createInstance( 'inmap', geSuccessCallback, geFailureCallback );
ge_loaded = true;
} else {
alert( 'Your Browser has not yet installed the Google Earth plugin.
We recommend installing it to use all features!' );
return false;
}
}
}
// Success handler
function geSuccessCallback( object ) {
this.ge = object;
this.ge.getWindow().setVisibility( true );
this.kmlParser = new geoXML3.parser();
}
// Error handler
function geFailureCallback( object ) {
alert( 'Error: ' + object );
}
Анализатор geoxml использует класс ProjectedOverlay.Обе библиотеки загружаются в заголовок документа.Когда синтаксический анализатор начинает работать, он запрашивает экземпляр ProjectedOverlay.Этот класс генерирует ошибку
Error: **google.maps is undefined**
в firebug для следующего оператора
ProjectedOverlay.prototype = new google.maps.OverlayView();
В моем файле сценария я объявил переменные, включающие
var gm //for google map
var ge //for google earth
gmв функции, которая строит карту Google.
Интересно, как решить эту проблему.Я попробовал функцию getProjection (), которую нашел в сети, а также
ProjectedOverlay.prototype = new google.maps.OverlayView().prototype;
, но безуспешно.Эта тема абсолютно новая для меня, и я не могу понять, как это исправить, ни из документации OverlayView, ни из поиска Google.
Что я забыл или сделал неправильно?