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

【Silverlight】Bing Maps学习系列(五):绘制多边形(Polygon)图形

阅读更多

Bing Maps Silverlight Control支持用户自定义绘制多边形(Polygon)图形,包括三角形、四边形(矩形、菱形)、以及其他更多多边形的图形绘制。

多边形说简单点就是一个由多条边组成的有一定规则的图形,比如三角形就是由三条边组成,我们要在地图上绘制三角形需要知道三个顶点的坐标值(精度和纬度),如下代码块:

private
 void
 btnPolygon_Click(object
 sender, RoutedEventArgs e)
{
    MapPolygon polygon = new
 MapPolygon();
    polygon.Fill = new
 System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);
    polygon.StrokeThickness = 5;
    polygon.Opacity = 0.7;
    polygon.Locations = new
 LocationCollection() { 
                        new
 Location(34.9294740237661,107.506492025863), 
                        new
 Location(37.7814222409819, 105.979148275863), 
                        new
 Location(40.2865067209496, 109.219382650863) };
    this
.myMap.Children.Add(polygon);
}
  MapPolygon就是Bing Maps提供的一个多边形类,如上代码块则实现了在地图上绘制一个三角形,主要就是利用三个点的坐标通过Locations进行定位绘制图层,效果如下:
        
  
  相应的如果是绘制四变形也就是多一个顶点的多边形而已,示意代码如下:
代码
<!-- <br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->private   void  btnQuad_Click( object  sender, RoutedEventArgs e) {     MapPolygon polygon  =   new  MapPolygon();      // 填充颜色     polygon.Fill  =   new  System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Red);     polygon.Stroke  =   new  System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Yellow);     polygon.StrokeThickness  =   5 ;     polygon.Opacity  =   0.7 ;     polygon.Locations  =   new  LocationCollection() {                           new  Location( 34.9294740237661 , 107.506492025863 ),                           new  Location( 37.7814222409819 105.979148275863 ),                           new  Location( 40.2865067209496 109.219382650863 ),                          new  Location( 29.8104584489867 115.943992025863 )};      this .myMap.Children.Add(polygon); }
      

 

  除了上面通过代码动态绘制多边形外,也可以通过Map控件进行配置,如下示例:

代码
<!-- <br/ /><br/ />Code highlighting produced by Actipro CodeHighlighter (freeware)<br/ />http://www.CodeHighlighter.com/<br/ /><br/ />-->< m:Map  CredentialsProvider ="AkzZURoD0H2Sle6Nq_DE7pm7F3xOc8S3CjDTGNWkz1EFlJJkcwDKT1KcNcmYVINU"  x:Name ="myMap"  
       Center
="34.9294740237661,107.506492025863"  ZoomLevel ="4"  NavigationVisibility ="Collapsed" >
    
< m:MapPolygon  Locations ="30,108 39,102 34.88,90.021"  Fill ="Red"  StrokeThickness ="5"  Opacity ="0.8" ></ m:MapPolygon >
</ m:Map >
 

 

 

  如上图中红色的三角形就是通过初始化配置进去的,平时二次开发中使用动态创建相对较多。上面提到四边形分菱形和矩形,Bing Maps 也提供了专门绘制矩形和菱形的类,比如矩形是Rectangle类。二次开发中经常会涉及到需要自己绘制一些图形在地图上,或者是在地图上动态选择绘制, 了解绘制图形的基本原理后实现这些都非常简单,实际上就是给Map控件添加一个子元素,也可以理解为Silverlight的UIElement。

 

  希望通过本文抛砖引玉,欢迎大家前来一起讨论交流,共同学习进步。

 

相关说明

 本文属学习笔记文章,愿与有志者共同学习交流。欢迎转载,但请在明显地位标记本文的原文连接。  

作      者:Beniao

文章出处:http://beniao.cnblogs.com/   或  http://www.cnblogs.com/

 

 

Tag标签: 绘制图形 ,Polygon
2
0
0
(请您对文章做出评价)

<script src="http://partner.googleadservices.com/gampad/google_service.js" type="text/javascript"></script><script type="text/javascript"> try { GS_googleAddAdSenseService(&quot;ca-pub-4210569241504288&quot;); GS_googleEnableAllServices(); } catch (e) { } </script><script src="http://partner.googleadservices.com/gampad/google_ads.js"></script><script type="text/javascript"> try { GA_googleAddSlot(&quot;ca-pub-4210569241504288&quot;, &quot;cnblogs_blogpost_body&quot;); GA_googleAddSlot(&quot;ca-pub-4210569241504288&quot;, &quot;cnblogs_commentbox_up&quot;); GA_googleAddSlot(&quot;ca-pub-4210569241504288&quot;, &quot;cnblogs_blogpost_bottom&quot;); } catch (e) { } </script><script type="text/javascript"> try { GA_googleFetchAds(); } catch (e) { } </script><script type="text/javascript"> var blog_ad_has_shown = false; </script>

posted @ 2009-12-09 00:22 Bēniaǒ 阅读(1397) 评论(6)  编辑 收藏 网摘 所属分类: Bing Maps

<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.cnblogs.com/beniao/archive/2009/12/09/1616956.html" dc:identifier="http://www.cnblogs.com/beniao/archive/2009/12/09/1616956.html" dc:title="" trackback:ping="http://www.cnblogs.com/beniao/services/trackbacks/1616956.aspx" /> </rdf:RDF> --> <!-- end: topics 文章、评论容器-->

<!-- done-->
1722468
#1楼 psman[未注册用户] 在2009-12-09 08:54说:
请问楼主,你是的地图是如何显示中文的?如何设置?
  回复   引用     
#2楼 psman[未注册用户] 在2009-12-09 09:14说:
看了楼主上一篇,原来中文地图是从live地图上另加的,这样有个不好的地方,就是要下载双层数据,被覆盖的那层也会下载,导致速度变慢,还是等微软出改进版吧
  回复   引用     
#3楼 [楼主 ]Bēniaǒ        在2009-12-09 13:13说:
@ psman
显示中文地图是通过程序动态从Bing Maps的Tile系统里读取的对应的图层加载出来的。
具体实现在上一篇文章里有详细代码。


  回复   引用   查看     
#4楼 [楼主 ]Bēniaǒ        在2009-12-09 13:18说:
@ psman
对于你说的会下载双层地图的情况确实是存在的,英文和中文地图回同时下载,这种情况只会出现在地图模式为:RoadMode和AerialMode(false|true)这两种模式中,你只需要将地图的Mode设置为MercatorMode就不会下载英文地图了。

  回复   引用   查看     
#5楼 looklook[未注册用户] 在2009-12-12 00:26说:
如果不能访问公网咋办。。。
  回复   引用     
#6楼 [楼主 ] Bēniaǒ        在2009-12-12 18:07说:

@ looklook
如果不能访问公网就需要自己搭建Map数据服务器,这也是地图的一个最大的的卖点,企业需要在地图上进行二次开发,将自己企业需要的一些东西扩展在地图上,如果自己不搭建Map服务器用公网的所有东西都暴露了。
比如电信通信行业的地图应用就很典型,电信通过地图的二次开发,可以将他们所建立的通信基站全部呈现在地图上,通过地图搜索进行基站定位,通过监控系统可以监控基站运行状态,查询基站运行相关信息。

分享到:
评论

相关推荐

    百度地图绘制多边形几何图形并保存坐标转成覆盖物

    本话题聚焦于如何使用百度地图API来绘制多边形几何图形,并将这些图形的坐标保存,以便后续转化为地图上的覆盖物。下面将详细阐述这一过程。 首先,我们要了解百度地图API的核心功能。百度地图API提供了丰富的地图...

    Bing Maps开发手册中文电子版(B3)

    4. **图形绘制**:绘制多边形(Polygon)图形是地图应用中常见的需求之一,开发者需要了解如何使用Bing Maps提供的API来绘制各种形状。 5. **扩展模式**:使用扩展模式可以增强地图的功能性,例如实现地图的个性化...

    Bing Maps 教程(从入门到精通)

    本篇主要介绍了 Bing Maps Silverlight Control 的基础开发环境搭建、显示地图的方法、控制地图的操作、使用图钉层和地图图层以及绘制多边形图形等知识点。通过这些基础知识的学习,开发者可以更加深入地掌握 Bing ...

    画多边形_多边形绘制_mfc鼠标点击绘制多边形_源码

    在MFC(Microsoft Foundation Classes)框架中,实现鼠标点击绘制多边形的功能是一项常见的图形用户界面编程任务。本文将深入探讨这一技术,包括其基本原理、实现步骤以及关键代码片段。 首先,我们要理解多边形的...

    Siverlight for arcgis环境下polygon和polyline两种方式绘制多边形

    通过查看和运行这些文件,开发者可以学习如何在实际项目中实现多边形和线条的绘制。 在实际应用中,了解如何有效地绘制和管理Polygon和Polyline对于开发复杂的GIS应用至关重要。例如,可以结合使用这两者来创建复杂...

    【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 ).zip

    【OpenGL】十八、OpenGL 绘制多边形 ( 绘制 GL_POLYGON 模式多边形 ) https://hanshuliang.blog.csdn.net/article/details/112855351 博客源码

    Silverlight中使用Polygon画五角星

    在Silverlight中,`Polygon`是一种用于绘制由一系列线段组成的多边形图形的元素。通过指定一组顶点坐标,`Polygon`可以用来绘制各种形状,如矩形、三角形、五角星等。与`Path`元素不同的是,`Polygon`更加简单直接,...

    计算机图形学 画多边形

    总的来说,通过这个实验,你将能够掌握基本的多边形绘制技术,为后续的计算机图形学学习打下坚实的基础。无论是游戏开发、可视化应用,还是科学计算,计算机图形学都是不可或缺的一部分,而画多边形是理解和实践这个...

    多边形合并:使用 multiPolygon, polygon 方法进行合并

    多边形合并:使用 multiPolygon, polygon 方法进行合并,具体合并可以参考文章如下:https://zhuhukang.blog.csdn.net/article/details/133716577

    多边形三角划分 Polygon c++源码

    总结来说,“多边形三角划分 Polygon c++源码”项目涉及了计算机图形学中的关键算法,提供了C++实现扫描线算法的实例。通过学习和理解这个项目,开发者可以增强对3D图形处理的理解,并能应用于实际的图形应用开发中...

    QT通过创建一个DrawControl类可以绘制不同的图形项包括矩形,直线,多边形等

    这是一个QT的demo,通过创建一个绘画控制器可以绘制出不同的图形项包括矩形QGraphicsRectItem, 直线QGraphicsLineItem, 多边形QGraphicsPolygonItem等。 QT版本:5.15.2 VS版本:2019 1、创建一个drawControl类...

    C#018绘制多边形

    在C#编程中,绘制多边形是一项基本的图形处理任务,广泛应用于游戏开发、图形界面设计、数据可视化等多个领域。本教程将深入探讨如何在C#中利用GDI+(Graphics Device Interface Plus)库来实现多边形的绘制。 首先...

    asp.net 绘制多边形

    在ASP.NET中绘制多边形是一项实用的...通过"Example068-绘制多边形"这个资源,你可能会学习到如何在ASP.NET环境中实现上述技术,从而在Web应用中创建交互式的多边形图形。这将帮助你提升在Web开发中的图形处理能力。

    Arcgis api for javascript(4.5版本) - 点击多边形(Polygon)并高亮显示

    综上所述,"ArcGIS API for JavaScript(4.5版本) - 点击多边形(Polygon)并高亮显示"涉及到的关键技术包括地图事件监听、几何对象的碰撞检测、图层管理和图形样式控制。通过熟练掌握这些知识点,开发者可以构建出交互...

    C#绘制多边形

    在计算机图形学中,多边形通常是用直线段连接的一系列顶点。 在C#中,我们通常使用GDI+(Graphics Device Interface Plus)库来实现图形绘制。GDI+是.NET Framework的一部分,提供了丰富的图形绘制功能,包括线条、...

    绘制多边形

    在Qt框架中,绘制图形是通过QPainter类提供的各种绘图函数来实现的。"绘制多边形"这个主题涉及到的主要知识点包括QPainter类的使用、QPolygon类以及自定义事件处理。以下是对这些概念的详细说明: 1. **QPainter类*...

    C# 绘制多边形

    在C#编程中,绘制多边形是一项基本的图形操作,常常用于开发各种GUI应用程序,如游戏、数据可视化工具或自定义控件等。本文将深入探讨如何在C#环境中利用GDI+(Graphics Device Interface Plus)库来实现多边形的...

    交互式绘制多边形

    在IT领域,交互式绘制多边形是一种常见的计算机图形学技术,主要应用于各种软件和游戏开发中,使得用户能够实时地在屏幕上构建和修改多边形形状。在MFC(Microsoft Foundation Classes)框架下实现这样的功能,需要...

    canva绘制多边形.zip

    在提供的压缩包文件中,"canva绘制多边形.zip"应该包含了实现这个功能的完整代码,你可以解压并查看,以便更深入地理解和学习这个过程。这个例子不仅展示了Canvas的绘图能力,还涉及到了事件监听、坐标变换等前端...

    计算两个多边形的重叠面积(C++)

    写一个C++程序,计算两个多边形的重叠面积 多边形class定义如下: class Polygon { public: Polygon(float* polygon, int vertex) : polygon(polygon), vertex(vertex) {}; private: float* polygon; // 坐标形式...

Global site tag (gtag.js) - Google Analytics