基於GEPlugin 對google earth 二次開發,實現動態航跡功能

最近一直在研究google earth 的二次開發,我選擇了GEPlugin 插件

1.首先要做好準備工作,下載插件和jsapi.js、default.I.js

    GEPlugin插件:https://download.csdn.net/download/qq_41164267/10715305

   js文件:https://download.csdn.net/download/qq_41164267/10715272

2.安裝GEPlugin插件,這個沒什麼好說的,一直下一步就行

3.下面就是具體代碼了

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title>Sample</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<!-- <meta http-equiv="X-UA-Compatible"content="IE=11;IE=10;IE=9; IE=8; IE=7; IE=EDGE" /> -->

<style type="text/css">



body,td,th {

margin: 0px;

}

</style>

<script type="text/javascript" src="jsapi.js"> </script>

<script type="text/javascript" src="default.I.js"> </script>

<script type="text/javascript" src="kml.js"> </script>

<script type="text/javascript">

var ge;

var g_crafteObj = null; //�ɻ�ģ��



var g_craftURL = window.location.href;

g_craftURL = g_craftURL.substring(0, g_craftURL.lastIndexOf("/")) + "/res/craft2.dae";

function init(){

google.earth.createInstance('map3d', initCB, failureCB);

}





function initCB(instance){

ge = instance;

ge.getWindow().setVisibility(true);



// add a navigation control

ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);




// add some layers

ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true);

ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true);

ge.getLayerRoot().enableLayerById(ge.LAYER_TREES, true);

ge.getLayerRoot().enableLayerById(ge.LAYER_TERRAIN, true);

ge.getOptions().setStatusBarVisibility(true);



//定位地圖項

var lat = 30.949932;

var lon = 104.323297;

var alt = 1800;

var la = ge.createLookAt('');

la.set(lat, lon, alt, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 50,1500);

ge.getView().setAbstractView(la);




//標點

var placemark = ge.createPlacemark('');

// // 設置圖標url

 placemark.setName("打個點?");

var icon = ge.createIcon('');

 icon.setHref('http://maps.google.com/mapfiles/kml/paddle/red-circle.png');

var style = ge.createStyle('');

/style.getIconStyle().setIcon(icon);

//  標點設置大小

style.getIconStyle().setScale(1);

placemark.setStyleSelector(style);



var point = ge.createPoint('');

point.setlatitude( 30.949932);

point.setLongitude( 104.323297);

placemark.setGeometry(point);

ge.getFeatures().appendChild(placemark);

// ge.createFolder("eee");

var chinaNetworkLink = ge.createNetworkLink(ge.LIST_ITEM_CHECK);

chinaNetworkLink.setFlyToView(true);

v2(chinaNetworkLink);

}

function v2(chinaNetworkLink){

//加載kml動畫文件

var link2 = ge.createLink("");

link2.setHref( "http://127.0.0.1/chengdu/admin/data/chengdu2/watch.kml" );

chinaNetworkLink.set(link2,true,true);

ge.getFeatures().appendChild(chinaNetworkLink);

}

function failureCB(errorCode){//加載地球出錯

}

google.setOnLoadCallback(init);



</script>



</head>

<body>

<div id="map3d" style="margin:0; height: 100%; width: 100%;"></div>

</body>

</html>

以上是web的代碼,有一點得說一下,加圖片或者kml文件時,必須放在服務器上,否則無法實現,也就是開頭是http://

kml文件就不貼出來了,以後會介紹kml的一些規範

效果圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章