Google maps API开发(一)

 

 

最近做一个小东西用到google map,突击了一下,收获不小,把自己学习的一些小例子记录下来吧

 

一、加载Google maps API

<script type="text/javascript"

       src="http://ditu.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA&hl=zh-CN"></script>

您可以到http://code.google.com/intl/zh-CN/apis/maps/signup.html注册申请自己的API

二、加载简单的Google地图

1、  加载Google地图

//声明一个GMap2全局变量

var map;

function load()

{

    //检查浏览器的兼容性.

    if (GBrowserIsCompatible())

    {

        map = new GMap2(document.getElementById("map")); //加载地图

        map.addControl(new GLargeMapControl()); //增加全功能控件

        map.addControl(new GMapTypeControl()); //设置地图类型

        map.enableScrollWheelZoom(); //设置地图支持滚轮

        map.setCenter(new GLatLng(39.990168, 116.295304), 10); //设置地图的中心坐标

        map.enableDoubleClickZoom(); //开启双击google map会自动放大.

        map.enableScrollWheelZoom(); //开启滚动鼠标自动放大和缩小.

          //

    }

}

2、  添加一个创建GMarker的方法

function createMarker(baseIcon, point, html)

{

    var icon = new GIcon(baseIcon);

    var marker = new GMarker(point, icon);

    GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); });

    return marker;

}

3、  调用这个GMarker方法

var icon = new GIcon(G_DEFAULT_ICON);

var point = new GPoint(116.429114, 39.934322);

var html = '<div ><font color="blue">HelloWorld</font></div>';

var marker = createMarker(icon, point, html);

map.addOverlay(marker);

这样一个简单的HelloWorld就显示出来了

通过这个例子我们可以了解到GMap2GMarkerGIcon这几个核心类的基本应用

最后看看我截得图:

 

源文件下载

这几天整理了一下V3的版本,V3相比V2还是有很大进步的,比如烦人的api引用,发布的时候非常不爽;清爽的api对象,比以前精简不少对象,但是功能却没有打折扣……还有很多等着我们去挖掘,总之是

用的非常爽,废话不多说了,实现同样的功能V3的代码如下:

 <html>

                <head>

                <title></title>

                                <meta http-equiv="content-type" content="text/html; charset=utf-8" />

                    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>

                                <script type="text/javascript">

                                    var map;

                                    function load() {

                                        var myLatlng = new google.maps.LatLng(39.934322, 116.429114);

                                        var myOptions = {

                                            //这里的参数可以为多个参数,具体参考MapOptions对象

                                            zoom: 5,

                                            center: myLatlng,

                                            mapTypeId: google.maps.MapTypeId.ROADMAP

                                        };

                                        map = new google.maps.Map(document.getElementById("map"), myOptions);

                                        var marker = new google.maps.Marker({

                                        //可以为多个参数,具体参考MarkerOptions对象

                                            map: map,

                                            position: myLatlng

                                        });

                                        google.maps.event.addListener(marker, 'click', function(event) {

                                            //这里的infoWindow的参数可以为多个对象,具体可以参考InfoWindowOptions对象

                                            var html = '<div ><font color="blue">HelloWorld!</font></div>';

                                            var infowindow = new google.maps.InfoWindow({ content: html });

                                            infowindow.open(map, marker);

                                        });

                                    }

    </script>

                </head>

                <body onload="load()">

                                                <table border="2" id="table1" bordercolor="#FF0000">

                                                <tr>

                                                                <td>

                                <div id="map" style="width:800px; height:480px"></div>

                                                                </td>

                                                </tr>

                                </table>

                </body>

</html>

 

 

 

 

每天进步一点点...

posted @ 2010-03-15 08:19 亦心 阅读(4395) 评论(31) 编辑 收藏

 回复 引用 查看   
#1楼 2010-03-15 08:35 alangis      
这玩意儿是不错,但是谷歌退出中国后还能用不?
 回复 引用 查看   
#3楼 2010-03-15 08:42 Bēniaǒ      
这样做在开发上花费的资源比较大,有兴趣可以看看我写的关于Bing Maps的开发和 开源DeepEarth相关的资料来开发Maps
 回复 引用 查看   
#4楼 2010-03-15 08:44 曹晓耀      
Google Map的API算同类中不较规范和全面的了,个人认为。
 回复 引用 查看   
#5楼 2010-03-15 08:45 曹晓耀      
引用曹晓耀:Google Map的API算同类中不较规范和全面的了,个人认为。

Google Map的API算同类中比较规范和全面的了,个人认为。打错字了。

 回复 引用 查看   
#6楼[楼主] 2010-03-15 08:52 亦心      
google api我觉得还是蛮好的,应该是可以实现百度的所有效果,微软的bing不是很全,资料也不好找
我用google maps api已经实现了百度的90%的效果
近期可能会把源代码放出来

 回复 引用 查看   
#7楼 2010-03-15 09:09 贤达      

呵呵,期待续集!

 回复 引用 查看   
#8楼 2010-03-15 09:10 alby      
楼主有google maps中国各个城市(包括区县)的坐标没?
 回复 引用 查看   
#9楼[楼主] 2010-03-15 09:24 亦心      
@alby
没有,用google的一个api好像可以查到
具体不记得了,你到google maps api里面找

 回复 引用 查看   
#10楼 2010-03-15 09:30 汉马      
有用,收藏
 回复 引用 查看   
#11楼 2010-03-15 09:42 布尔      
@亦心
很有研究精神,佩服一个。

 回复 引用 查看   
#12楼[楼主] 2010-03-15 09:46 亦心      
谢谢大家的支持!
 回复 引用 查看   
#13楼 2010-03-15 09:47 冷眸      
学习一下!
 回复 引用 查看   
#14楼 2010-03-15 09:50 jiang_chao      
学习中!

 回复 引用 查看   
#15楼 2010-03-15 10:40 王一一      
lz是承德人?

 回复 引用 查看   
#16楼 2010-03-15 11:36 Paladin.lao --VSTO      
这个很不错,学习学习,我也想弄出来个
 回复 引用 查看   
#17楼 2010-03-15 11:40 pk的眼泪      
@亦心
lz,我在地址定位上遇到一个问题,请教一下,如我想定位“南京东路627号”(已设置中心城市为上海),但是却定位在江苏太仓。。

 回复 引用 查看   
#18楼 2010-03-15 11:47 风海迷沙      
google maps v3已经不再需要申请API了,新版的代码变化较大,我也在研究中,以前开发过很多v2的代码:http://www.cnblogs.com/fhmsha/archive/2008/12/28/how_google_map_api_and_google_earth_work_with_kml.html

哪看出是承德人的?

 回复 引用 查看   
#19楼 2010-03-15 11:51 风海迷沙      
再给你加两个比较好的资源:
google map 自定义marker生成器:
http://www.powerhut.co.uk/googlemaps/custom_markers.php
厌倦了旧版单调的图标?试试更时尚的更有意义的marker图标:
http://code.google.com/p/google-maps-icons/

 回复 引用 查看   
#20楼 2010-03-15 12:17 a-peng      
@alby
var geocoder = new GClientGeocoder();
geocoder.setBaseCountryCode("CN");
geocoder.getLatLng(keyword, function(point) {
});

根据keyword去查找吧

 回复 引用 查看   
#21楼 2010-03-15 13:02 alby      
@a-peng
太好了,谢谢

 回复 引用 查看   
#22楼[楼主] 2010-03-15 13:03 亦心      
 回复 引用 查看   
#23楼[楼主] 2010-03-15 13:04 亦心      
@风海迷沙
你给的资料很好
我们一起学习
我现在开发也是v2

 回复 引用 查看   
#24楼 2010-03-15 17:15 风海迷沙      
@亦心
我两年前用v2开发了http://huoche.omgsoft.com.cn/
现在开始使用v3了。
google maps是google的产品,不是谷歌中国的产品,只要它的服务器不被墙,我们都可以使用的。

 回复 引用 查看   
#25楼[楼主] 2010-03-15 17:44 亦心      
@风海迷沙
恩,很不错!

 回复 引用 查看   
#26楼 2010-03-15 23:17 pk的眼泪      
@亦心
这个我知道哈,只是在用的时候发现地址定位有问题,网上找半天没找到解决方案,不知你有没有什么好办法。

 回复 引用 查看   
#27楼[楼主] 2010-03-16 08:21 亦心      
@pk的眼泪
我的下一篇,你看着

 回复 引用 查看   
#28楼 2010-03-17 10:06 carner      
泪流满面,终于找到一点资料了...楼主继续!!!
 回复 引用 查看   
#29楼 2010-03-17 14:22 mingtian      
期待更精彩的内容
 回复 引用 查看   
#30楼 2011-03-28 18:55 阿摩罗识      
我做桌面或是手机开发,除了用webbrowser。还能用什么?
 回复 引用 查看   
#31楼[楼主] 2011-03-31 09:23 亦心      
@阿摩罗识
用HttpWebRequest 、HttpWebResponse吧
不行就重写WebRequest 、WebResponse