`
gstarwd
  • 浏览: 1491595 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

必应地图SilverLight控件入门讲座之六:显示街景(Streetside)

阅读更多

必应地图SilverLight控件入门讲座之六:显示街景(Streetside)

必应地图Beta版,必应地图SilverLight控件(Bing Maps Silverlight Control)也发布了最新的1.0.1.0版。开发人员可以在SilverLight版的必应地图应用中增加微软街景(Streetside)以及增强版鸟瞰图(Bird's Eye)。如果你还不知道微软必应地图Beta版,请阅读微软推出必应地图街景http://maps.bing.com/explore
 
在开发之前,我们需要先从Microsoft Connect 下 载最新的DLL,一个.MSI (Microsoft Installer)安装文件,其中包括了Bing Maps Silverlight Control Extended Modes Beta SDK,将会增加Microsoft.Maps.MapControl.ExtendedModes.dll在[Program Files (x86)]\Bing Maps Silverlight Control Extended Modes\Beta\Libraries\目录下。
当然,你也需要下载新的Bing Maps SilverLight Control , 其中也包括了更新后的Microsoft.Maps.MapControl.dll以及 Microsoft.Maps.MapControl.Common.dll。你将会看到这是Bing Maps SilverLight Control 1.0.1.0版,而不是原来的1.0.0.0版。
 
接下来,按照之前的讲座为你的project增加reference:
在XAML文件中需要增加一个namespace及指向Microsoft.Maps.MapControl.dll的assembly references。当然,我们需要将地图中心设为拥有街景(Streetside)的地方。你的代码应该类似:

<UserControl x:Class="SilverlightApplication1.MainPage"
    xmlns="
http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x=" http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d=" http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc=" http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:m="clr-namespace:Microsoft.Maps.MapControl;assembly=Microsoft.Maps.MapControl">

    <Grid x:Name="LayoutRoot" Background="White">
        <m:Map x:Name="myMap" Center="25.858531, -80.119744" CredentialsProvider="[BINGMAPSKEY]" ZoomLevel="19" Mode="AerialWithLabels"></m:Map>
    </Grid>
</UserControl>

有两种方法可以添加增强版鸟瞰图及街景(Streetside):(1) 在导航栏增加按钮 (2) 使用地图控件中的map mode扩展类。

在导航栏增加增强版鸟瞰图及街景(Streetdide)

如果你只是希望在地图导航栏增加鸟瞰图和街景按钮,只需要增加1-2行代码。首先在MainPage.xaml.cs文件的申明(declaration)中增加ExtendedModes。然后在初始化地图的代码中增加鸟瞰图和街景图模式:

using System;
using System.Windows.Controls;
using Microsoft.Maps.MapControl.ExtendedModes;
using Microsoft.Maps.MapControl.Core;

namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();
            //Add Bird's Eye to Navigation
            BirdseyeMode.AddModeToNavigationBar(myMap);
            //Add Streetside to Navigation
            StreetsideMode.AddModeToNavigationBar(myMap);
        }
    }
}

自定义控制增加增强版鸟瞰图及街景(Streetside)

如果你希望自定义控制显示鸟瞰图及街景,你可以使用Map.Mode类。此处,你需要增加一个申明:using Microsoft.Maps.MapControl.Core

以下的代码在加载地图时显示鸟瞰图:

using System;
using System.Windows.Controls;
using Microsoft.Maps.MapControl.ExtendedModes;
using Microsoft.Maps.MapControl.Core;

namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {

            InitializeComponent();
            myMap.Mode = new BirdseyeMode();
            myMap.Mode.Center = new Microsoft.Maps.MapControl.Location(25.859768, -80.119764);
            myMap.Mode.ZoomLevel = 17;

        }
    }
}

以下代码在加载地图时显示街景:  

using System;
using System.Windows.Controls;
using Microsoft.Maps.MapControl.ExtendedModes;
using Microsoft.Maps.MapControl.Core;

namespace SilverlightApplication1
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {

            InitializeComponent();
            myMap.Mode.Center = new Microsoft.Maps.MapControl.Location(47.615594, -122.20136);
            myMap.Mode = new StreetsideMode();
            myMap.Heading = 20.3;
            myMap.Pitch = 12.3;

        }
    }
}

此处用到了Heading和Pitch属性,其中Heading属性是指街景视图下罗盘的方向,Pitch属性控制浏览角度。以下是关于Heading和Pitch的官方定义:

Heading is the compass direction, expressed as a double. A value of 0 is true north, and a value of 180 is true south. Values less than 0 and greater than 360 are valid and are calculated as compass directions. The pitch direction, expressed as a double. A value of 0 is level and a value of -90 is straight down. Values less than -90 or greater than 0 are ignored, and the pitch is set to -90

   

原文参考:Chris Pendleton的博客 .

分享到:
评论

相关推荐

    ExtendedModes

    必应地图 微软街景(Streetside)和鸟瞰图 Dll

    streetside:Web应用程序发送文本消息以在备用侧停车街道上移动您的汽车

    街边 Web应用程序发送文本消息以在备用侧停车街道上移动您的汽车

    Microsoft Mapping(Apress,2ed,2015)

    This revised edition of Microsoft Mapping includes the latest details about SQL Server 2014 and the new 3D and Streetside-capable map control for Windows 10 applications. It contains updated chapters ...

    基于关键词搜索结果的微博爬虫(下载即用).zip

    基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改,以实现其他功能。 基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改,以实现其他功能。 基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改,以实现其他功能。 基于关键词搜索结果的微博爬虫(下载即用).zip本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,当然也适合小白学习进阶。如果基础还行,可以在此代码基础上进行修改

    node-v4.4.1-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    J波模拟matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    Obsidian quickadd插件

    Obsidian quickadd插件

    Fraunhofer Versatile Video Encoder (VVenC) v0.1

    这份文件是关于Fraunhofer Versatile Video Encoder (VVenC) v0.1版本的文档,由Fraunhofer Heinrich Hertz Institute (HHI)的视频编码与分析部门的Jens Brandenburg, Adam Wieckowski, Tobias Hinz, Benjamin Bross撰写

    node-v8.0.0-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Windows系统nodejs安装及环境配置

    附件是windows系统nodejs安装及环境配置教程,文件格式是markdown,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!

    JAVA基于J2ME的手机游戏开发(lw+源代码).zip

    随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且能够开发各种手机游戏。本文在介绍J2ME及其体系结构的基础上,以贪吃蛇游戏为实例,描述了借助J2ME的MIDlet类库开发手机游戏的过程。

    5.21前端基础(1)

    html基础

    slf4j-api-1.7.7.jar

    javaee/javaweb常用jar包,亲测可用,导入到java工程中即可使用

    node-v11.12.0-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    基于CAPL仿真BMS

    使用CANOE,基于CAPL仿真BMS,通过Panel控制发送

    node-v6.11.5-headers.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    中国科学技术大学软件学院《iOS应用开发》课程实验代码-内含源码和说明书(可自己修改).zip

    本项目是课程设计课程实验的demo,内含源码和说明书,可以自己修改

    AStar路径规划matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于yolov5的交通信号灯检测项目

    基于yolov5的交通信号灯检测项目

    cc test for cc

    test for cc

Global site tag (gtag.js) - Google Analytics