网站开发之Google地图的应用


2023年12月22日发(作者:扑克牌游戏大全)

F … … …… … 。… 实用第一 智慧密集 . … … … , …… 3.2性能 Google地图要在自己的网站上显示自然也要有相应的条 var latlng=new google.maps.LatLng(29.753865833421 8.一 95.3460513679013∥定义地图窗口默认显示的地理位置。 ): var myOptions={ 件,这里所说的条件就是支持地图功能的底层环境。 对于Google地图的应用要求为以下两条: (1)浏览器必须是IE6或其以上版本,因为JavaScript是 运行在IE浏览器中的,而Google地图又是JavaScript编写脚 本的,因此浏览器的功能至关重要。。 zoom:13 //定义地图默认的缩放比列 center:tat ng, streetViewControh false, panControl:false。 (2)由于要调用谷歌提供的服务,所以在应用地图前必须 引入谷歌的开发包.基础JavaScfipt包地址为:http://maps. mapTypeld:google.maps.MapTypeld.ROADMAP): //定义地图显示模式是路况地图还是卫星也图 google.com/maps/api/js?sensor=true。如果要在地图上实现一些特 别的功能则必须再引入专用包(如实现在地图上做文字标记的 maplabe1.js)。 3.3可靠性与可用性 Google MAP API v3所兼容的浏览器为: (1)IE 6.0+(Windows)以及IE内核的其他浏览器,如: 搜狗高速浏览器、遨游浏览器、360浏览器、世界之窗浏览器 等。 (2)Firefox 2.0+(WindowslMaclLinux) (3)Safari 3.1+(MaclWindows) (4)chrome谷歌浏览器(Windows) (5)opera 10+(Windows) 由此看见Google MAP API v3兼容现在主流的多个版本的 浏览器。 4系统实现 4.1 搭建Google地图只用来显示的区域 首先.不讨论地图上的各种功能.先将一张空的地图窗口 显示在自己的网页上.这自然是实现各种地图功能的基础和先 决条件。 第一步.在html头标记<head></head>中引入Google地图 基本的JavaScript包,代码为: <script type='text/jfavascript src= http://maps.google.com/ maps,api/js?sensor=true ></script> 第二步.在<body></body>标记内定义地图窗13:的div层, 代码为: <div id= map_canvas‘style= width:1200px;height:800px >(| div> 以上代码在网页内容区域定义了地图要显示的窗口层,以 及这个窗口的宽和高。 第三步,在<head></head>标记内,写入Google MAP API 调用代码: <script type= text/javascript > var map;//定义地图对象 function initialize(){∥网页打开时将执行此方法 R 8 2013.01.... . .。电硒鞲栏靛的暑氍_ )): </script> 通过以上代码提供的功能现在就可以在自己的网页上显示 一张空地图了,地图默认显示的是美国, :斯敦市.地图的默认 缩放比例为13(如图5、图6所示)。 图7 图8 实现代码为根据GooSe map api在: mapTypeld:google.maps.MapTypeld.ROADMAP): 之后加入以下代码: map=new google。maps.Map(docurnent.getElementByld 《 map_canvas ) myOptions); var latlngl=new google.maps.Lat[.ng(29.7501 800,一 95.3499904)://定义星标点的位置 var marker1:new google.maps.Marker({ position:latlngl map:map, 

…… GRAPHICS AND IM^BE PROCESSING……… …………………………………… …1 "… ……‘ …r_…… title:,1_Capitol Oaks,})://定义星标点的提示文本 google.maps.event,addListener(markerl,"click“,function(){ window.1ocation.href= cavahome aspx?idcia= 1 01&webcia=(1 01)&wlink=7 )): 细心的读者可能已经发现,在这个星标点也也定义了鼠标 点击事件的驱动代码,就是说如果鼠标单击此星标点,那么 JavaScript将捕获此事件并作出相应的动作,这就是google. maps.event.addListener(markerl,”click”,function 0一段所起 的功能。 在此有以下几点要说明: (1)鼠标单击事件驱动代码里一般都是放人链接代码,当 鼠标单击一个星标后,JavaScript将把页面跳转到“cavahome. aspx”页面。 (2)除了“chck”事件以外,自然还有其他的事件可以获 取比如双击事件,鼠标移动上事件等,这些都是可以获取的到 的。通过这些事件自然可以实现一些实用的功能。 (3)如果对星标点的小红球图像感觉不满意的话,也可以 根据其JavaScript API接口更换其图片。将小红球换成自己想 要的图标,代码为在var marker=new google.maps.Marker后加 人以下代码: icon: images/marker/marker.png , 其效果如图9所示,将其换为棕的星标图片。 图9 4.3给地图加入区域标记 为了能够在地图上明显地标记出一片区域并能对此区域进 行交互就需要Google Map API里面的“polygon”对象. “polygon”对象可以在地图指定的区域画出多边形区域,并且 可以设置区域上的文字标记,点击事件等。 要实现在地图上显示多边形区域只要在添加星标的代码后 加入以下代码: var county: var fipsCoords; ifpsCoords=【//定义多边形各个定点坐标 new google.maps.LatLng (29.77181441550003,一 95.328753959741 22) new google.maps.LatLng(29.76019144780945.一 95.35038329323731) ,new google.maps.LatLng (29.7451 391 91 51 0482,一 95.363601 21 92627) ,new google.maps.LatLng (29.741 9347065621 26,一 95.36385871 1 3281 3) ,new google.maps.LatLng (29.739773484473744,一 95.361 8846O54931 7) ,new google.maps.LatLng (29.7388791 72054677,一 95.358880531 3965) ,new google maps.LatLng (29.74066778891 791,一 、95.3555331 3454591) ,new google.maps。LatLng (29.73559995829O96,一 95.3478O8372583O2) ,new google.maps.LatLng (29.754975575321616,一 95.3351 O543068848) ,new google.maps.LatLng 《29.761 681 64722902,一 95.32738O6687256) ,new google.maps.LatLng (29.76749321 31 97202,一 95.32789565285645) 】: county=new google.maps.Potlygon(( paths:fipsCoords, strokeColor: #006778 ,//设置多边形边界线区域颜 strokeOpacity:0.8.//设-置多边形边界不透明度 strokeWeight:2,//设置多边形边界线粗度 ifllCotor: '#006778 //设置多边:彩填充颜  ̄lOpaciyt:0.35//设置多边形内部透明度 )) county.setMap(map); google.maps.event.addListener(countV,‘'click ,//设置多边形 //区域上的单击事件 function(eve九t){ location.href= FindAHome.aspx?idcia=l 01&idarea=1 0 : )): var mapLabel:new MapLabel({ text: Downtown ,∥设置多边形区域提示文本 position:new google.maps.LatLng(29.753865833421 8.一 95.346051 367901 3//提示文本位置 ), map:map, fontSize:30,∥设置文字大小 align: center //:史字对齐方式 )): mapLabe1.set 《 position , new google.maps.LatLng {29_7538658334218,一95.3460513679013 )): 代码开头首先定义了一个“fipsCoords”数组。此数组保存 了多边形各个定点的地理位置坐标值。其中每个坐标有一个 google.maps.LatLng对象。 之后定义google.maps.Polygon对象,这正是构建多边形的 翩 脑蠊 

………………………… …… ……………………… 实用第一 智慧密集 … … … … … … … “polygon”对象.此对象初始化时就要设定好多边形边界线 区域颜、不透明度、边界线粗度、内部透明度、填充颜 。之后用此对象的.setMap(map)方法将此多边形应用到地 图中去。 为了在多边形上显示提示性的文本,在代码中又定义了 “MapLabel”对象。此对象初始化时要求给予文本位置、字体 大小、对齐方式、文字内容等参数。之后用此对象的map:map 参数将此文本对象应用于地图上。 细心的读者又会发现googte.maps.event.addListener方法, 不错此方法正是该多边形的单击事件响应方法,当鼠标在多边 形上单击时就会触发此方法,从而去执行跳转代码“location. href="FindAHome.aspx?idcia=101&idarea=10 ;”。 4.4可编辑多边形区域 在地图应用中除了能从网站后台初始化多边形区域外, Google Map API还提供了让用户在浏览器端编辑多边形的区域 的功能.并且编辑完成的多边形区域数据可以通过Javascifpt 提取出来并反馈给后台处理。 第一步,应当引入Google map api的响应借13和jquery基 础包。代码如下: <script type= text/javascript src= http://maps。google.com/ maps/api/js?sensor=true ><,script> <scr Fpt src='js/jquery-1.7.2.min.js type="text/javascript >< |script> <script src='js/polygon.min.js type= text/javascript ></ script> 第二步,引入以上这些基础包后就可以调用Google Map API接口了.首先要在<body></body>标记中加入地图框体代 码:<div id='map_canvas style='width:640px;height:480px; ></ div>。此代码定义了地图在网页中显示的位置大小。 第三步.用JavaScfipt调用Google Map API的接口,初始 化地图。代码如下: <script type='text/javascript > ¥(function0{//页面加载时的load事件 var latlng : new google.maps.LatLng ( 29.751 0262341 50952 一95.4091 7731 484376)://定义地图默认 ,/显示的地理位置 var myOptions:{ zoom:11.//定义缩放值 center:latlng。 mapTypeld:google.maps.MapTypeld.ROADMAP): var map = new google.maps.Map(document. getElementByld( map_canvas ).myOptiorls)://{殳置地图所在 ||钓div )): </script> 通过以上代码就可以在网页上绘制多边形区域了,如图 1O、图1l所示。 与蘸 嗡 嗨 蛳 蝻薅 ; _ 图10 图11 以上代码只实现了绘制多边形的功佳,那怎样提取绘制多 边形后生成的地图数据呢?下面通过以下方式获取所生成的数 据: 第一步,在<body></body>标签内添加按钮和div的html 代码: <input id: reset value= Reset type=="button /> <input id= ShowData value= Show Paths type= button ,> <div id= dataPanel ></div>。 <div id= dataPane2 l> 在此定义了一个输出数据按钮和一个重置按钮。 第二步,在javascript调用Google map印i的代码后加入以 下代码: var creator=new PolygonCreator(ma p); ¥《 #reset ).click(functionO{ ¥《 #dataPanel').empty0; creator.destroy0; creator=null; creator=new PolygonCreator(map); )): ¥( #showData,).click(functionO{∥显示数据按钮事件 ¥( #dataPanel,)_empty(): ¥《 #dataPane2 ).empty(); if(null==creatot.showData0){ ¥( #dataPanel,)_append( Please firs1 create a polygon }else{ ¥( #dataPane2,).append(map.getZoom0); ¥( #dataPanel').append(creator.shO、^’Data{)): ))): ¥( #showColor') click(function0{//显示颅按钮事件 ¥( #dataPanel ).empty(): if(null==creator.showData0){ ¥('#dataPanel r).append( Please first create a polygon ): }else{ ¥{ #dataPanel ).append(creatOr.sho ̄^ Color()); } }) 这样就写完了所有的关于编辑地图并显示相应数据的代码 了,然后试一下效果。 (下转第90页) 

……… ……… ………………… … …………… 实用第一 智慧密集 … 目名的不同进行不同的处理。是整个监控程序的实现核心。实 现的函数如下: break; case 4:case 5:case 6:case 7: HDDED rA CALLBACK DdeCallback(//回调函数 fTumout[1][i-・  ̄]=atof(tmp); break; UINT uType, //传输类型 UINT uFmt, ∥剪切板数据格式 HCONV hConv, //会话旬柄 HSZ hTopic, //主题字符串句柄 HSZ hltem. //项目名字符串句柄 HDDED rA hData.//全局内存对象句柄 DWORD dwData1,//指定的传输数据 DWORD dwData2)//指定的传输数据 { int i: ) ) ) return《HDDEDATA)DDE—FACK;#回执 ) return 0: ) (6)DDE退出。包括注销服务,注硝初始化和释放程序 名(Application)、主题名(Topic)和项E『名(Item)。 char tmp[255]; CString str; 6 结语 采用Windows DDEML实现LonWmks网络监控程序,原 理清晰简单,开发周期短,上手容易,效率高,能满足监控程 序的通信要求。 switch(uType) { case X-P(P._ADVSTART: case XTYPCONNECT://连接请求 _return(HDDEDATA)TRUE; case XTYPADVDATA:∥有数据到来 —for(=O;i<DDE—ITEM—NUMS:i++) { 参考文献 [1】高安邦,等.LonWorks技术开发和应用.北京:机械工业 出版社,2009. if(hltem==hszltem[i]) 角定数据项 { [2】高安邦,杨帅,陈俊生.LonWorks技术原理与应用.北 京:机械工业出版社,2009. DdeGetData(hData,(PBYTE)tmp,255,0):脓得数据 switch(i) { case 0:case 1:case 2:case 3: 『3】周江.利用VC实现DDE服务客户』由用.电脑编程技巧与 维护,2003,2. fTurnout[0][i]=atof(trrIp): 石 、 石 I_石 石 \! \! \! (收稿日期:2012—10—24) \! 石 分 (上接第70页) 首先在地图内画一个多边形区域,如图12所示。 5 结{吾 Google MAP API所提供的接口,丰 喜’了普通网站页面的内 容.为网站提供了免费的地理图形显示功能,在此基础上又提 供了多种地图应用,方便了用户和网站的交互。 通过GoogleMaps为开发者提供的地图API,可以开发出 各种各样有趣的地图Mash—up应用,还可以将不同地图图层 加载到应用中,如卫星影像、根据海拔高度绘制的高山和植 被地形图、街道视图等,从而帮助开发者打造个性化的地图 图12 应用站点。 然后分别点击“show data”、 “show color”按钮,效果如 地图API是一项免费的服务,任何非盈利性网站均可使用。 图13所示。数据和颜分别都显示出来了。 | 赫 酶l 氟 蝻 氟 60t -{ 4一 …70 ¨0 ∞ 0 { J 2g 7{0 95l53∞0 :.-%0 ;9 ? ,{ {2 6{ 协,l29.e0* 53B ¨ 95. l0 7∞“532_c掘8j} ∞∞时6 ll - { 带 5557 0{ { 5,0 0 B7时0 ?5∞# 参考文献 【1](Ooo ̄e map api v3》.Http://develop ̄Ir.google.corn/. 【2](Google map api)).Http://www.google.com/apis/maps/ (收稿日期:2012—09—05) 蘸 蜡 O∞0 il 蕊 图13 器与 


本文发布于:2024-09-23 06:35:57,感谢您对本站的认可!

本文链接:https://www.17tex.com/fanyi/24258.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地图   多边形   区域   显示   代码   定义   事件   浏览器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议