2010-12-15 73 views
0

我正在嘗試構建顯示城市的Google地球視圖,但我堅持使用kml解析器geoxml3。我有一個JavaScript建立一個谷歌地圖,首先顯示我想要的位置。這工作正常。我從一個php腳本中調用函數,爲它提供一個來自數據庫的地址和kml文件引用。該函數構建地圖,當所有地球運行良好並調用構建谷歌地球視圖函數時,將標記「map_finished」設置爲控制標誌。使用geoxml3類和ProjectedOverlay類將kml文件傳遞給Google地球的問題

// 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** 

錯誤的螢火以下聲明

ProjectedOverlay.prototype = new google.maps.OverlayView(); 

在我的腳本文件我已經宣佈瓦爾包括

var gm //for google map 
var ge //for google earth 

克在構建功能設置谷歌地圖。

我想知道如何解決這個問題。我嘗試了我在web中發現的getProjection()事物以及

ProjectedOverlay.prototype = new google.maps.OverlayView().prototype; 

沒有成功。這個話題對我來說是全新的,我無法弄清楚如何從OverlayView的文檔或谷歌搜索中解決它。

我忘了或做錯了什麼?

回答

0

對geoXML3構造函數的調用錯誤,您必須將google.maps對象作爲參數傳遞(...因此「google.maps未定義」錯誤)。

this.kmlParser = new geoXML3.parser({map: gm}); // gm for google map 
相關問題