您的位置:知识库 » .NET技术

在Silverlight 2应用程序中集成Virtual Earth

作者: TerryLee  来源: 博客园  发布时间: 2008-10-10 10:51  阅读: 3629 次  推荐: 0   原文链接   [收藏]  

在Silverlight中集成

通过上面的两个示例,大家看到了,在HTML中加载Virtual Earth都是使用JavaScript来完成,我们知道Silverlight 2应用程序可以很容易的实现与JavaScript的交互,意味着我们可以在Silverlight 2应用程序中通过调用JavaScript代码来实现集成,这种方式的确是可以的,但如果要编写非常复杂的Virtual Earth应用,实现起来也是一件不容易的事。

好在有一个开源项目可以帮助我们,使用托管代码在Silverlight 2中实现Virtual Earth应用。该项目名称为“Virtual Earth Wrapper for Silverlight”,官方地址:http://www.codeplex.com/views,当前版本是1.1。该项目使用托管代码来封装了所有Virtual Earth中的JavaScript应用,使得我们编写Virtual Earth与Silverlight 2集成应用程序变得非常简单。下面我们看一个简单的示例,如何在Silverlight中加载Virtual Earth。

在下载Virtual Earth Wrapper for Silverlight后解压缩,会看到有两个程序集和一个JavaScript文件。首先在HTML中引入相关的JS脚本,如下代码所示:

<head>
    <script type="text/javascript" 
        src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script>
    <script type="text/javascript" src="views.js"></script>
</head>

其中views.js在压缩包里面有,然后添加一个div,用来作为地图容器:

<div id='mapContainer' style="position:relative; width:500px; height:300px;"></div>

编写一段脚本,定义一个silverlight变量,该变量在此处虽然没有做任何事,但它将会在views.js文件中被运用:

<script type="text/javascript">
    var silverlight = null;
    function pluginLoaded(sender,args)
    {
        silverlight = document.getElementById('Silverlight');
    }
</script>

编写Silverlight Object,指定onLoad事件,如下代码所示:

<div id="silverlightControlHost" style="position:absolute; width:300px; height:480px; 
                left:10px; top:320px; z-index:2">
<object data="data:application/x-silverlight," type="application/x-silverlight-2-b2" 
        style="width:500px;height:50px;border-width:0;" id="Silverlight">
    <param name="onLoad" value="pluginLoaded" />
    <param name="source" value="ClientBin/SilverlightIntegrateVirtualEarth.xap"/>
    <param name="background" value="white" />
</object>
</div>

 

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻