0

我正在尝试在我的 PhoneGap / Android 应用程序上添加月球地图。

当我尝试在应用程序上使用 Google 地球 API 时,我收到以下错误:

The Google Earth Plugin is currently only available on Windows and Mac OS X 10.6+.

是否有另一种方法,甚至可能是另一种 API,在移动设备上创建月球地图。

4

1 回答 1

2

There are not any current published API's for Google Earth Android version. The current version does handle search intents. You can launch Google Earth in Android and fly to a location with the following intent: Please keep in mind Google could change this at any time and the following code might not work.

// the new intent we will launch 
Intent myIntent = new Intent(); 

// send the intent directly to the google earth activity that can 
handle search 
myIntent.setClassName("com.google.earth", 
"com.google.earth.EarthActivity"); 

// we are doing a search query 
myIntent.setAction(Intent.ACTION_SEARCH); 

// change this address to any address you want to fly to 
myIntent.putExtra(SearchManager.QUERY, "2900 Frenchmen Street, New 
Orleans, LA"); 

// always trap for ActivityNotFound in case Google earth is not on the 
device 
try { 
    // launch google earth and fly to location 
    this.startActivity(myScanIntent); 
} 
catch (ActivityNotFoundException e) { 
    showGoogleEarthDialog(); 
} 

... 

// if the user does not have google earth prompt to download it 
private void showGoogleEarthDialog() { 

        AlertDialog.Builder downloadDialog = new AlertDialog.Builder(this); 
        downloadDialog.setTitle("Install Google Earth?"); 
        downloadDialog.setMessage("This application requires Google Earth. 
Would you like to install it?"); 
        downloadDialog.setPositiveButton("Yes", new 
DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialogInterface, int i) { 
                Uri uri = Uri.parse("market://search? 
q=pname:com.google.earth"); 
                Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
                MainActivity.this.startActivity(intent); 
            } 
        }); 
        downloadDialog.setNegativeButton("No", new 
DialogInterface.OnClickListener() { 
              public void onClick(DialogInterface dialogInterface, int i) {} 
        }); 
        downloadDialog.show(); 

} 
于 2013-04-20T10:00:17.950 回答