Google Earth & Asp.Net 一步一步从入门到精通(一)一个加载KML文档的例子
2009-03-06 22:31 闫妍 阅读(300) 评论(0) 编辑 收藏 举报Google Earth 和 Google Maps 以其强大的功能,低廉的价格及Google的影响力,快速发展已经成为GIS开发的首选,在这个系列里面我将开始记录学习Google Earth 开发的一些过程,指在和有意从事GIS开发的朋友一起学习(我不是GE高手-_-!!)。
1.北京东三环国贸,SOHO和CCTV
2.国家体育馆及游泳馆
Google Earth 的Web应用程序提供了一套完善的javascript API 接口,并在Google官方提供了丰富的例题,供学习,下面一个例题也是我取自Google 的Demo, 很多朋友都非常熟悉了,如果你和我一样刚开始接触可以复制下面的代码快速去体会和使用,为自己开辟一个新的职业捷径,只要有javaScript的基础即可。
1.下载一个Google Earth 客户端插件安装上
2.申请一个自己的ID,(不申请也没关系,直接复制下面的代码就可以运行:)
3.把下面的代码复制到aspx文件中运行即可,这是一个通过URL加载kml文件的例子
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>预览GE配置文件</title> <script src="JavaScript/jquery.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAA7WGF96hesauuOvt92hVLGRSCo55h5L89YfkfbOZYeht3olu9OBQ-iPLPnY04cIbcfiDwRhN8JorTRg"></script> <script type="text/javascript"> var ge; google.load("earth", "1"); function init() { // 向Content中添加标签和Google Earth 实例 var content = document.getElementById('content'); var defUrl = 'http://earth-api-samples.googlecode.com/svn/trunk/examples/static/red.kml'; var inputHTML = '<input type="text" id="kml-url" size="50" ' + 'value="' + defUrl + '"/>' + '<input type="submit" onclick="fetchKmlFromInput()" value="呈现"/> ' + '<a href="' + defUrl + '" > 下载KML文件 </a> ' + ' <br />'; content.innerHTML = inputHTML; google.earth.createInstance('content', initCB, failureCB); } //初始化实例的方法 function initCB(instance) { ge = instance; ge.getWindow().setVisibility(true); // 添加一个导航控件 ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO); // 添加层 ge.getLayerRoot().enableLayerById(ge.LAYER_BORDERS, true); ge.getLayerRoot().enableLayerById(ge.LAYER_ROADS, true); // 前往指定位置 var la = ge.createLookAt(''); la.set(37, -122, 0, // 高度 ge.ALTITUDE_RELATIVE_TO_GROUND, 0, // heading 0, // straight-down tilt 5000 // range (inverse of zoom) ); ge.getView().setAbstractView(la); document.getElementById('installed-plugin-version').innerHTML = ge.getPluginVersion().toString(); } function failureCB(errorCode) { } var currentKmlObject = null; //加载KML文档 function fetchKmlFromInput() { // 如果KML存在则移除掉原有的KML文件 if (currentKmlObject) { ge.getFeatures().removeChild(currentKmlObject); currentKmlObject = null; } var kmlUrlBox = document.getElementById('kml-url'); var kmlUrl = kmlUrlBox.value; google.earth.fetchKml(ge, kmlUrl, finishFetchKml); } function finishFetchKml(kmlObject) { // 检查加载属性是否成功 if (kmlObject) { // 添加KML currentKmlObject = kmlObject; ge.getFeatures().appendChild(currentKmlObject); } else { alert('加载KML 失败!'); } } google.setOnLoadCallback(init); </script> </head> <body style="font-family: Arial; font-size: 13px; border: 0 none;"> <div> 预览指定GE 配置效果</div> <div id="content" style="width: 550px; height: 550px;"> Loading... </div> <br /> <br /> GE 插件版本: <div id="installed-plugin-version" style="display: inline;"> </div> </body> </html>
4.运行效果如下图
是的,只需要简单的javaScript语句就可以实现GIS的开发,利用更多Google Earth 接口可以开发出丰富的GIS应用,朋友们快快尝试一下吧。