在地图的边界内,随机放置一个标记【GMap 学习笔记】
2010-05-21 13:26
316 查看
1
<!
DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
2
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
3
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
4
<
head
>
5
<
meta
http-equiv
="content-type"
content
="text/html; charset=utf-8"
/>
6
<
title
>
Google Maps JavaScript API Example
</
title
>
7
<!--
使用 script 标签包含 Google 地图,key传递 sensor 参数以指明此应用程序是否使用传感器来确定用户位置
-->
8
<
script
src
="http://ditu.google.cn/maps?file=api&v=2&key=abcdefg&sensor=true_or_false"
9
type
="text/javascript"
></
script
>
10
<
script
type
="text/javascript"
>
11
12
function
initialize() {
13
var
map
=
new
GMap2(document.getElementById(
"
map_canvas
"
));
14
//
住:缩放级别:在普通地图视图内,可以使用 0(最低缩放级别,在地图上可以看到整个世界)
15
//
到 19(最高缩放级别,可以看到独立建筑物)
16
map.setCenter(
new
GLatLng(
38.881946
,
121.587964
),
15
);
17
//
在 Google 地图 API 中,地图使用标准的“绘制”图块显示
18
19
//
所有类型:G_NORMAL_MAP- 默认视图,
20
//
G_SATELLITE_MAP - 显示 Google 地球卫星图像
21
//
G_HYBRID_MAP - 混合显示普通视图和卫星视图
22
//
G_DEFAULT_MAP_TYPES - 这三个类型的数组,在需要重复处理的情况下非常有用
23
map.setMapType(G_SATELLITE_MAP);
24
25
//
获得地图边界
26
var
bounds
=
map.getBounds();
27
//
获得西南角坐标
28
var
southWest
=
bounds.getSouthWest();
29
//
获得东北角坐标
30
var
northEast
=
bounds.getNorthEast();
31
//
计算经度差
32
var
lngSpan
=
northEast.lng()
-
southWest.lng();
33
//
计算纬度差
34
var
latSpan
=
northEast.lat()
-
southWest.lat();
35
//
随机产生一个经度值和一个纬度值,构成一个坐标点
36
var
point
=
new
GLatLng(southWest.lat()
+
latSpan
*
Math.random(),
37
southWest.lng()
+
lngSpan
*
Math.random());
38
//
标记是 GMarker 类型的对象,将随机产生的坐标传给GMarker,并在地图上显示此标记。
39
map.addOverlay
(
new
GMarker
(point));
40
}
41
</
script
>
42
</
head
>
43
<!--
使用onLoad 事件初始化地图对象
-->
44
<
body
onload
="initialize()"
onunload
="GUnload()"
>
45
<!--
让其显示在网页中
-->
46
<
div
id
="map_canvas"
style
="width: 600px; height: 600px"
></
div
>
47
</
body
>
48
</
html
>
<!
DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN"
2
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
>
3
<
html
xmlns
="http://www.w3.org/1999/xhtml"
>
4
<
head
>
5
<
meta
http-equiv
="content-type"
content
="text/html; charset=utf-8"
/>
6
<
title
>
Google Maps JavaScript API Example
</
title
>
7
<!--
使用 script 标签包含 Google 地图,key传递 sensor 参数以指明此应用程序是否使用传感器来确定用户位置
-->
8
<
script
src
="http://ditu.google.cn/maps?file=api&v=2&key=abcdefg&sensor=true_or_false"
9
type
="text/javascript"
></
script
>
10
<
script
type
="text/javascript"
>
11
12
function
initialize() {
13
var
map
=
new
GMap2(document.getElementById(
"
map_canvas
"
));
14
//
住:缩放级别:在普通地图视图内,可以使用 0(最低缩放级别,在地图上可以看到整个世界)
15
//
到 19(最高缩放级别,可以看到独立建筑物)
16
map.setCenter(
new
GLatLng(
38.881946
,
121.587964
),
15
);
17
//
在 Google 地图 API 中,地图使用标准的“绘制”图块显示
18
19
//
所有类型:G_NORMAL_MAP- 默认视图,
20
//
G_SATELLITE_MAP - 显示 Google 地球卫星图像
21
//
G_HYBRID_MAP - 混合显示普通视图和卫星视图
22
//
G_DEFAULT_MAP_TYPES - 这三个类型的数组,在需要重复处理的情况下非常有用
23
map.setMapType(G_SATELLITE_MAP);
24
25
//
获得地图边界
26
var
bounds
=
map.getBounds();
27
//
获得西南角坐标
28
var
southWest
=
bounds.getSouthWest();
29
//
获得东北角坐标
30
var
northEast
=
bounds.getNorthEast();
31
//
计算经度差
32
var
lngSpan
=
northEast.lng()
-
southWest.lng();
33
//
计算纬度差
34
var
latSpan
=
northEast.lat()
-
southWest.lat();
35
//
随机产生一个经度值和一个纬度值,构成一个坐标点
36
var
point
=
new
GLatLng(southWest.lat()
+
latSpan
*
Math.random(),
37
southWest.lng()
+
lngSpan
*
Math.random());
38
//
标记是 GMarker 类型的对象,将随机产生的坐标传给GMarker,并在地图上显示此标记。
39
map.addOverlay
(
new
GMarker
(point));
40
}
41
</
script
>
42
</
head
>
43
<!--
使用onLoad 事件初始化地图对象
-->
44
<
body
onload
="initialize()"
onunload
="GUnload()"
>
45
<!--
让其显示在网页中
-->
46
<
div
id
="map_canvas"
style
="width: 600px; height: 600px"
></
div
>
47
</
body
>
48
</
html
>
相关文章推荐
- iOS学习笔记——随机打乱一个数组
- HelloWorld ——显示以大连星海广场为中心的600*600的地图网页【GMap学习笔记】
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(7)习题2.8 随机数组的三种生成算法
- 一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 习题2.8 随机数组的三种生成算法(补) 将bash的实现翻译成比较纯正的bash风格
- WPF下的地图开发控件(GMap.NET)使用心得—— GMap学习笔记(二)
- 地图事件概述【GMap 学习笔记】
- cesium 学习笔记(三) 在地图上放置3D建筑模型
- django学习笔记---结合cookie,onchange事件写出一个分页
- Objective-C 学习笔记 - part 9 - 静态标记的类型
- Effective C++ 学习笔记<1> 视C++为一个语言联邦
- IOS学习笔记之实现一个简单的表
- VS2010 C++ MFC框架学习笔记2 - 创建一个简单的加法计算器(2)
- 一个C++程序员的Delphi学习笔记
- 用PHP对一张图片进行九宫格位置的随机水印添加 (个人学习笔记)
- Extjs学习笔记之五——一个小细节renderTo和applyTo的区别 作者:Katmaier 来源:博客园
- CMake学习笔记(2)——建立一个标准的工程和安装程序
- ASP.NET学习笔记[7] - aspx页面打开一个新窗体无刷新传值
- 使用python-pygame包生成一个艺术照片-学习笔记13
- Docker学习笔记之一,搭建一个JAVA Tomcat运行环境
- jQuery 学习笔记1 弹出一个对话框