`
terryfeng
  • 浏览: 507105 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Google Earth & Asp.Net 一步一步从入门到精通(一)一个加载KML文档的例子

阅读更多

     Google Earth 和 Google Maps 以其强大的功能,低廉的价格及Google的影响力,快速发展已经成为GIS开发的首选,在这个系列里面我将开始记录学习Google Earth 开发的一些过程,指在和有意从事GIS开发的朋友一起学习(我不是GE高手-_-!!)。

1.北京东三环国贸,SOHO和CCTV

2009-03-05_174428

2.国家体育馆及游泳馆

2009-03-05_174901

     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.运行效果如下图

2009-03-06_222157

   是的,只需要简单的javaScript语句就可以实现GIS的开发,利用更多Google Earth 接口可以开发出丰富的GIS应用,朋友们快快尝试一下吧。

分享到:
评论

相关推荐

    asp.net 下二次开发googleearth

    这是一个JavaScript库,允许开发者将Google Earth的3D地球模型嵌入到网页中,通过编程控制地球的视角、位置、图层和KML(Keyhole Markup Language)数据的加载。KML是一种XML格式,用于描述地理位置和相关元数据,是...

    Google Earth KML文件生成工具

    Google Earth是一款强大的虚拟地球仪软件,它允许用户在全球范围内浏览卫星图像、地形和3D建筑。KML(Keyhole Markup Language)是Google Earth用于存储地理数据的标记语言,类似于XML,用于描述地理位置、地标、...

    SuperMap Objects .NET 精确移动KML文件中模型的位置

    KML(Keyhole Markup Language)是由Google推出的一种用于描述2D和3D地理数据的XML格式,广泛应用于地图服务中,如Google Earth和Google Maps。在SuperMap Objects .NET中,你可以直接操作KML文件,包括解析、编辑和...

    南中国海 Google Earth KML

    标题“南中国海 Google Earth KML”涉及到的是利用Google Earth软件查看南中国海地理信息的一种方式。KML,全称Keyhole Markup Language,是Google推出的一种用于存储地理数据的XML格式,常用来在Google Earth、...

    Google_Earth_KML数据导入ArcGIS三种方法

    Google Earth KML数据导入ArcGIS的三种方法涉及了将KML文件转换为ArcGIS软件能够识别和操作的Shapefile (SHP) 格式,这对于需要将Google Earth上的数据与ArcGIS进行交互分析和制图的用户来说,是一个非常实用的操作...

    SuperMap Objects .NET 添加模型到KML

    KML是一种XML格式,广泛用于地理数据的存储和展示,常与Google Earth等软件配合使用。 首先,添加模型到KML文件涉及以下步骤: 1. 创建KML文件:使用SuperMap Objects .NET 的类库,你可以创建一个新的KML文档对象...

    CAD格式输出google earth kml文件

    描述中提到的“cad,cass等文件输出为google earth的kml文件,内包含操作说明”,暗示了这个压缩包可能包含一个名为“acad2kml3.0”的工具或程序,以及关于如何使用该工具将CAD或CASS文件转换为KML的指南。...

    csv 转换为google earth的轨迹kml

    使用这样的转换工具或自编程序,用户可以轻松地将自己的GPS轨迹从CSV格式迁移到KML,以便在Google Earth上可视化。这在户外运动、地理调查、旅行记录等多个领域都非常有用。通过这种方式,我们可以把抽象的数据转换...

    GeoServer学习——OpenLayers3加载KML地图实现框选

    KML是一种用于存储地理标记数据的XML格式,常用于Google Earth和Google Maps。 首先,我们来看OpenLayers3的基本用法。OpenLayers3提供了一个强大的API,用于创建交互式地图应用。在加载KML文件时,我们需要使用`ol...

    Google Earth kml格式输出shp

    在IT领域的地理信息系统(GIS)应用中,将Google Earth中的KML格式数据转换为其他GIS软件可识别的格式,如SHP或MIF,是一项常见的需求。本文将深入解析如何利用Google Earth、Arcview 3.3以及Feature Manipulation ...

    google earth kml编辑器

    总的来说,Google Earth的KML编辑器提供了一个强大的平台,让用户能够自由地创造和管理地理信息,极大地拓展了Google Earth的功能边界。掌握KML编辑技巧,不仅可以提升地理信息的表达能力,还能在教学、科研、旅游等...

    arcgis for android解析并加载kml.txt

    arcgis for android 开发,解析手机本地kml文件并且在地图上加载kml元素。因为自带的功能需要购买服务,所以就自己写了这个解析kml文件的功能,效果十分不错。

    Google_Earth_KML中文说明

    KML 全称是 Keyhole Markup Language, 是一个基于 XML 语法和文件格式的文件,用来描述和保存地理信息如点、线、图片、折线并在 Google Earth 客户端之中显示。 KML 2.0 提供了以下功能: 1. 指定一个地点的图标...

    cad2kml cad转kml google earth

    5. **在Google Earth中查看**:用户可以将生成的KML文件加载到Google Earth中,所有CAD图形将以3D或2D形式呈现,与真实地形结合,提供一个全方位的视觉体验。 KML文件的结构包含多个元素,如`&lt;Placemark&gt;`用于定义...

    yantubbs-google earth Link支持Mapinfo数据格式到KML格式转换.zip

    标题中的“yantubbs-google earth Link支持Mapinfo数据格式到KML格式转换.zip”指出,这个压缩包包含了工具或程序,能够帮助用户将MapInfo的数据格式转换为Google Earth所支持的KML(Keyhole Markup Language)格式...

    一个Google Eearth二次开发的例子(C#)

    标题中的“一个Google Earth二次开发的例子(C#)”指的是使用C#编程语言对Google Earth进行的扩展和定制化开发。Google Earth是一款强大的虚拟地球仪软件,它允许用户浏览全球的卫星图像和地形数据。通过二次开发,...

    patheditor 制作googleearth kml文件工具软件

    PathEditor是一款专为制作Google Earth KML(Keyhole Markup Language)文件而设计的实用工具软件。KML是一种基于XML的标记语言,用于描述地理位置和地理数据的结构化表示,广泛应用于Google Earth、Google Maps等...

Global site tag (gtag.js) - Google Analytics