2010.02.22——google map api----天气预报
标记管理器实用工具提供了一个解决这些问题的方案,允许在同一个地图上高效显示数百个标记,并能够指定应显示标记的缩放级别。
要添加该库中包含的工具,可以使用 <script> 标签直接添加 JavaScript 源代码。
<script src="http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/src/markermanager.js">
要使用标记管理器,请创建一个 MarkerManager 对象。在最简单的情况下,只需向其传递地图即可。
var map = new GMap2(document.getElementById("map_canvas"));
var mgr = new MarkerManager(map);
以下示例创建中国的模拟天气地图。在缩放级别 3 时,显示 20 个随机分布的天气图标。在级别 6 时,可以轻松地辨别出所有 200 个人口超过 30 万的城市,并显示额外 200 个标记。最后,在级别 8 时,会显示 1000 个标记。(注意:为了简化示例,标记将添加在随机位置。)
例子:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html >
<head>
<title>天气预报</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjU0EJWnWPMv7oQ-jjS7dYxQcTQoRJ_JVFHVwderj38GcfiXt6hQX5E6h3W3sV-l-QbtgIls1pN0iAw"
type="text/javascript"></script>
<script src="http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/src/markermanager.js"></script>
<script type="text/javascript">
//<![CDATA[
var IMAGES = [ "sun", "rain", "snow", "storm" ];
var ICONS = [];
var map = null;
var mgr = null;
var batch = [];
function setupMap() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(37, 107), 4);
map.enableDoubleClickZoom();
window.setTimeout(setupWeatherMarkers, 0);
}
}
//随即生成天气图片
function getWeatherIcon() {
var i = Math.floor(IMAGES.length*Math.random());
if (!ICONS[i]) {
var icon = new GIcon();
icon.image = "http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/examples/images/"
+ IMAGES[i] + ".png";
icon.iconAnchor = new GPoint(16, 16);
icon.infoWindowAnchor = new GPoint(16, 0);
icon.iconSize = new GSize(32, 32);
icon.shadow = "http://gmaps-utility-library.googlecode.com/svn/trunk/markermanager/release/examples/images/"
+ IMAGES[i] + "-shadow.png";
icon.shadowSize = new GSize(59, 32);
ICONS[i] = icon;
}
return ICONS[i];
}
//随即经纬度
function getRandomPoint() {
var lat = 37 + (Math.random() - 0.5)*14.5;
var lng = 101 + (Math.random() - 0.5)*36.0;
return new GLatLng(Math.round(lat*10)/10, Math.round(lng*10)/10);
}
//生成全部标注的数组
function getWeatherMarkers(n) {
//var batch = [];
for (var i = 0; i < n; ++i) {
var marker = new GMarker(getRandomPoint(), { icon: getWeatherIcon() });
batch.push(marker);
}
return batch;
}
//不同级别显示不同的数目
function setupWeatherMarkers() {
mgr = new MarkerManager(map);
mgr.addMarkers(getWeatherMarkers(20), 3);
mgr.addMarkers(getWeatherMarkers(200), 6);
mgr.addMarkers(getWeatherMarkers(1000), 8);
for(var i=0;i<batch.length;i++){
openWindow(batch[i]);
}
mgr.refresh();//只有显式地调用 MarkerManager 的 refresh() 方法,使用 addMarkers() 方法添加的标记才会显示在地图上
}
//给每一个标注添加信息窗口
function openWindow(marker){
GEvent.addListener(marker,"click",function(latLng){
marker.openInfoWindowHtml("<b>怒了</b>");
});
}
//]]>
</script>
</head>
<body onload="setupMap()" onunload="GUnload()">
<div id="map" style="margin: 5px auto; width: 650px; height: 400px"></div>
<div style="text-align: center; font-size: large;">
Random Weather Map
</div>
</body>
</html>
分享到:
相关推荐
赠送原API文档:mapstruct-jdk8-1.2.0.Final-javadoc.jar; 赠送源代码:mapstruct-jdk8-1.2.0.Final-sources.jar; 赠送Maven依赖信息文件:mapstruct-jdk8-1.2.0.Final.pom; 包含翻译后的API文档:mapstruct-jdk8...
赠送jar包:jakarta.validation-api-2.0.1.jar; 赠送原API文档:jakarta.validation-api-2.0.1-javadoc.jar; 赠送源代码:jakarta.validation-api-2.0.1-sources.jar; 赠送Maven依赖信息文件:jakarta.validation...
赠送jar包:javax.annotation-api-1.2.jar; 赠送原API文档:javax.annotation-api-1.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-1.2.pom;...
1,安装说明.txt ——————————安装手册 2,jdk-170.tar.gz ——————————JDK1.7deb包 3,switch_java.sh -------------------------java其它版本切换 4,check_java.sh———————————版本...
赠送jar包:javax.annotation-api-1.3.2.jar; 赠送原API文档:javax.annotation-api-1.3.2-javadoc.jar; 赠送源代码:javax.annotation-api-1.3.2-sources.jar; 赠送Maven依赖信息文件:javax.annotation-api-...
赠送jar包:avalon-framework-api-4.3.1.jar; 赠送原API文档:avalon-framework-api-4.3.1-javadoc.jar; 赠送源代码:avalon-framework-api-4.3.1-sources.jar; 赠送Maven依赖信息文件:avalon-framework-api-...
赠送jar包:jakarta.websocket-api-1.1.2.jar; 赠送原API文档:jakarta.websocket-api-1.1.2-javadoc.jar; 赠送源代码:jakarta.websocket-api-1.1.2-sources.jar; 赠送Maven依赖信息文件:jakarta.websocket-api...
《api-ms-win-core-heap-l2-1-0.dll:操作系统核心堆管理库解析》 在Windows操作系统中,`api-ms-win-core-heap-l2-1-0.dll`是一个至关重要的动态链接库文件,它是系统核心堆管理的一部分,用于32位和64位系统。该...
赠送jar包:jjwt-api-0.11.2.jar; 赠送原API文档:jjwt-api-0.11.2-javadoc.jar; 赠送源代码:jjwt-api-0.11.2-sources.jar; 赠送Maven依赖信息文件:jjwt-api-0.11.2.pom; 包含翻译后的API文档:jjwt-api-...
2020.4.11-措施项目——模板工程量计算规则
《API-MS-WIN-CORE-HEAP-L2-1-0.DLL:64位系统的核心内存管理组件解析》 在Windows操作系统中,DLL(Dynamic Link Library)文件扮演着至关重要的角色,它们包含了可被多个程序共享的代码和数据。"api-ms-win-core-...
基于因子分析的我国A股上市...争力评价——以医药企业为例_张澳.caj
**谷歌地图API详解** 谷歌地图API(Google Maps API)是谷歌提供的一项强大的服务,允许开发者在自己的网站或应用中嵌入交互式地图功能。通过这个API,你可以自定义地图显示的内容,添加标记、路径、信息窗口,甚至...
步骤一: ... 下载【X86】版,安装时出现已经有同类型在运行,打开软件管家发现已经有2017版的,卸载...将api-ms-win-downlevel-shlwapi-l1-1-0.dll拷贝到C:\Windows\System32和C:\Windows\SysWOW64. 'import cv2' 成功
微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+源码).zip 微信小程序——新闻客户端(截图+...
赠送jar包:jboss-annotations-api_1.3_spec-2.0.1.Final.jar; 赠送原API文档:jboss-annotations-api_1.3_spec-2.0.1.Final-javadoc.jar; 赠送源代码:jboss-annotations-api_1.3_spec-2.0.1.Final-sources.jar;...
包含翻译后的API文档:lettuce-core-5.0.5.RELEASE-javadoc-API文档-中文(简体)版.zip; Maven坐标:io.lettuce:lettuce-core:5.0.5.RELEASE; 标签:core、lettuce、jar包、java、API文档、中文版; 使用方法:解压...
python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目——Word助手.zip python项目...
赠送jar包:javax.activation-api-1.2.0.jar; 赠送原API文档:javax.activation-api-1.2.0-javadoc.jar; 赠送源代码:javax.activation-api-1.2.0-sources.jar; 包含翻译后的API文档:javax.activation-api-...
施耐德电气 Phaseo开关电源及安全隔离变压器产品认证——Phaseo-UL-e175001-qqgq2-2003-09-05pdf,施耐德电气 Phaseo开关电源及安全隔离变压器产品认证——Phaseo-UL-e175001-qqgq2-2003-09-05