C#窗体应用调用谷歌地图经验分享(菜鸟的分享)
来源:互联网 发布:软件测试学linux 编辑:程序博客网 时间:2024/06/05 08:21
先说下,这个东西无需太多JS基础和高深只是,只需要一点面向对象基础+一点C#基础。最近在做毕业设计,项目中需要嵌入谷歌地图,用红色标记(就是想图钉的那个)来显示监测站点的方位。对于我这种没什么项目经验,没有学过javaScript,刚学会一点点C#的菜鸟来说,根本没有头绪。在几天的学习中,最终还是完成了任务。
首先很感谢一位大神的百度地图经验分享 http://blog.csdn.net/kkkkkxiaofei/article/details/8645856,正是得益于此文章,后续的开发才能如虎添翼,才让我有想法把自己的微薄经验作为分享,第一次写博客。好的东西真的确实应该分享,不然以后百度很多东西都找不到的。。送人玫瑰,手有余香!这是今天要实现的最终效果图:
个人喜欢多举例子,这样才容易懂。话不多说,开始正题。先强调下大小写,下面所有的代码,一定注意大小写问题,切记!!!!!然后网上可能有很多教程,大部分是针对谷歌地图 API V2 而言的,需要申请密钥,然后谷歌地图现在已经不需要密钥,今天的文章的讲解都是以V3.9为例的,但愿能给你们带来帮助!
(1) 显示简单地图
看一个简单示范列子。
<!DOCTYPE html><html> <head> <title>Simple Map</title> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <style> html, body, #map-canvas { height: 100%; margin: 0px; padding: 0px } </style> <script src="http://maps.googleapis.com/maps/api/js?v=3.9&sensor=false"></script> <script>var map;function initialize() { var mapOptions = { zoom: 15, //放大倍数(可选参数,默认为8) center: new google.maps.LatLng(25.81932,114.96518) //中心点(必选参数),必须是LatLng类型, //这里的位置是赣州火车站的经纬度 }; map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);//实例化map对象,并加载设定的选项参数, //第一个参数看不懂没关系};//initializegoogle.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="map-canvas"></div> </body></html>
把以上代码复制并保存在一个新建的html文件中,比如我在D盘根目录新建一个html文档,保存上述代码后,改名为”谷歌地图.html"。新建一个winForm项目后,在开发界面中拖入webBrowser控件,设置webBrowser控件的url属性文件路径,比如我设置URL为 D:\谷歌地图.html
运行后,可以显示地图(注:由于谷歌服务器不稳定,经常可能加载不了,稍后再次打开。还有,谷歌地图API的原例子中src是 https,要改成 http,否则加载不了,这个我纠结过好久,在这里我已经改过来了)。
对于菜鸟来说,可能不怎么能看懂代码,没事的,很多html 内容我现在也看不懂,很多都是框架的。我但是并不影响我们开发,们要做的,就是不改变框架,对里面的核心代码进行修改,实现自己的效果,我们要开发的重点也就在这里。
(2)定制参数
先看刚才代码的核心部分
var mapOptions = { zoom: 15, center: new google.maps.LatLng(25.81932,114.96518) };
mapOptions是初始地图的一些参数,如果不明确制定,那就是系统默认的,选项很多,可以参考https://developers.google.com/maps/documentation/javascript/reference?hl=zh-CN#MapOptions 往下翻至 google.maps.MapOptionsobject specification栏,说明了很多参数。格式为:参数名:值,比如:zoom:8 。可能读者会问,那我们需要哪些参数???
首先要指定初始时地图的中心点,可以用center参数(这个参数是必须的)。center的值必须是LatLng类型,看一下例子,也是可以的
var Ganzhou = newgoogle.maps.LatLng(25.81932,114.96518)//格式是:LatLng(纬度,经度)//负的纬度表示南半球,负的经度表示西经
function initialize() { varmapOptions = { zoom: 15, center: Ganzhou };
这里注意,如果在mapOptions中要指定多个参数,每个参数末尾要用逗号(英文输入状态下),最后一个参数不需要逗号。
其次,谷歌默认的地图都是道路模式ROADMAP,如果想显示卫星地图或混合地图(两者区别是:卫星地图不能显示地名,只有卫星图),就要修改mapTypeID属性,比如
mapTypeId: google.maps.MapTypeId.HYBRID
注意google.maps.MapTypeId前缀不能少,卫星地图是SATELLITE
(3) 显示标记
标记是一个marker
看如下代码:
var marker = new google.maps.Marker({ position: map.getCenter(),//获取中心位置 map: map });
注意代码的位置,应该放在map实例化的那段代码的后面,因为在上面的代码中,map对象这时候还没有实例化。
这样的话,我们就简单的做好了一张地图,全代码如下(仅供参考)
<!DOCTYPE html><html> <head> <title>Simple Map</title> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta charset="utf-8"> <style> html, body, #map-canvas { height: 100%; margin: 0px; padding: 0px } </style> <script src="http://maps.googleapis.com/maps/api/js?v=3.9&sensor=false"></script> <script>var map;function initialize() { var mapOptions = { zoom: 15, center: new google.maps.LatLng(25.81932,114.96518), mapTypeId: google.maps.MapTypeId.HYBRID }; map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);var marker = new google.maps.Marker({ position: map.getCenter(), map: map });};//initializegoogle.maps.event.addDomListener(window, 'load', initialize); </script> </head> <body> <div id="map-canvas"></div> </body></html>
如果大家有时间,可以多看看谷歌地图的API,虽然看英文慢一点,但只要你用心看,多看几次,你一定会受益匪浅的!
- C#窗体应用调用谷歌地图经验分享(菜鸟的分享)
- C#调用百度地图API经验分享(一)
- C#调用百度地图API经验分享(二)
- C#调用百度地图API经验分享(三)
- C#调用百度地图API经验分享(四)
- C#调用百度地图API经验分享(一)
- C#调用百度地图API经验分享(四)
- C#调用百度地图API经验分享(四)
- C#调用百度地图API经验分享(一)
- C#调用百度地图API经验分享(二)
- C#调用百度地图API经验分享(三)
- C#调用百度地图API经验分享(四)
- C#调用百度地图API经验分享(三)
- 分享经验,UI菜鸟是怎样成为大牛的
- 【分享C#项目开发经验】
- 软件工程师的经验分享
- 百度地图定位开发流程经验分享
- 关于调用三方地图实现路线查询的分享!
- chdir没起作用
- 实现自动登录Cookie
- java 判断是否中文字符
- hdu1496(用hash思想统计数目)
- Orchard 瘦身计划
- C#窗体应用调用谷歌地图经验分享(菜鸟的分享)
- Ubuntu 10.10使用PPA源安装VLC 1.1.6
- linux中system函数
- C#学习系列笔记
- java 判断含有中文的字符串的长度
- session自动退出登录解决方法
- 并发导论
- Linux exec函数族
- MFC 在多字节编码 下编程 如何 使用新样式控件。