现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

google与百度地图api体验笔记

2013-09-20 06:37 工业·编程 ⁄ 共 4375字 ⁄ 字号 暂无评论

1:google地图

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->

google图像现可以使用为两个版本V2,V3. 其中为V2需要申请第一地图key,申请地图条件是必须要有一级域名。V3按现有策略(正在推广),暂时没有不需要key. google地图接口实例说明较多,对于入门教容易。google地图目前最大问题,已经很久没有更新了,但功能绝对酷,接口简洁。

api说明页面为:http://code.google.com/apis/maps/index.html,说明很强大。

功能测试:在tk dot 申请一级域名,定位自己电脑,使用Apache做web服务起,直接在index.html文件写js代码测试。

google的V2的实例

<html>

<title>

google map test

</title>

<body>

<div id="map" style="width: 1600px; height: 800px" align="center"></div>

<script type="text/javascript" src="http://www.google.com/jsapi?key=yourkey"></script>

<script type="text/javascript">

google.load("maps", "2.x");

// Call this function when the page has been loaded

function initialize() {

var map = new google.maps.Map2(document.getElementById("map"));

map.setCenter(new google.maps.LatLng(30.2777, 120.1579), 13);

}

google.setOnLoadCallback(initialize);

</script>

</body>

</html>

google的V3的实例, 功能描述 定位到杭州,并在添加一个摄像机图片

<!DOCTYPE html>

<html>

<head>

<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />

<style type="text/css">

html { height: 100% }

body { height: 100%; margin: 0px; padding: 0px }

#map_canvas { height: 100% }

</style>

<script type="text/javascript"

src="http://maps.google.com/maps/api/js?sensor=false&region=GB">

</script>

<script type="text/javascript">

function initialize() {

var latlng = new google.maps.LatLng(30.2777, 120.1579);

var myOptions = {

zoom: 13,

center: latlng,

mapTypeId: google.maps.MapTypeId.ROADMAP

};

var map = new google.maps.Map(document.getElementById("map_canvas"),

myOptions);

var image='Camera.jpg';

var myLatLng = new google.maps.LatLng(30.2773, 120.1572);

var beachMarker = new google.maps.Marker({

position: myLatLng,

map: map,

icon: image

});

}

</script>

</head>

<title>

google test map v3

</title>

<body onload="initialize()">

<div id="map_canvas" style="width:1400px; height:900px"></div>

</body>

</html>

2:baidu地图 定位到杭州,并在添加一个摄像机图片

<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } A:link { so-language: zxx } -->

baidu地图推出不久,使用必须有key,key申请必须有一级域名或固定ip。

api说明页面为:http://openapi.baidu.com/map/index.html,实例与类说明已经比较全。

测试方法同google地图测试。

实例,功能描述 定位到杭州,并在添加一个摄像机图片

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具" />

<meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图" />

<title >buidu map test</title>

<!--引用百度地图API-->

<style type="text/css">

html,body{margin:0;padding:0;}

.iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap}

.iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word}

</style>

<script type="text/javascript" src="http://api.map.baidu.com/api?key=25c22b0432f678a327e798c267ba5737&v=1.1&services=true"></script>

</head>

<body>

<!--百度地图容器-->

<div style="width:1400px;height:800px;border:#ccc solid 1px;" id="dituContent"></div>

</body>

<script type="text/javascript">

//创建和初始化地图函数:

function initMap(){

createMap();//创建地图

addMapMarker();//向地图添加一个图标

setMapEvent();//设置地图事件

addMapControl();//向地图添加控件

}

//创建地图函数:

function createMap(){

var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图

var point = new BMap.Point(120.1579, 30.2777);//定义一个中心点坐标

map.centerAndZoom(point,14);//设定地图的中心点和坐标并将地图显示在地图容器中

window.map = map;//将map变量存储在全局

}

//地图事件设置函数:

function setMapEvent(){

map.enableDragging();//启用地图拖拽事件,默认启用(可不写)

map.enableScrollWheelZoom();//启用地图滚轮放大缩小

map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)

map.enableKeyboard();//启用键盘上下左右键移动地图

}

//地图控件添加函数:

function addMapControl(){

//向地图中添加缩放控件

var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});

map.addControl(ctrl_nav);

//向地图中添加缩略图控件

var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});

map.addControl(ctrl_ove);

//向地图中添加比例尺控件

var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});

map.addControl(ctrl_sca);

}

// 编写自定义函数,创建标注

function addMapMarker(){

// 创建图标对象

var myIcon = new BMap.Icon("Camera.jpg",new BMap.Size(50, 50));

var mypoint = new BMap.Point(120.1572,30.2773) ;//定义一个中心点坐标

// 创建标注对象并添加到地图

var marker = new BMap.Marker(mypoint, {icon: myIcon});

map.addOverlay(marker);

}

initMap();//创建和初始化地图

</script>

</html>

3:坐标问题

实测baidu与google会发现相同地方坐标略有不同。其中一个原因在中国坐标是加密的,即baidu与google的坐标与实际经度与纬线都有偏差,偏差量大约为几百米到一千米,至于采用什么坐标系未明,转化方法非官方获取不到。而GRS出的为采用WGS84坐标系(World Geodetic System 1984),这是美国为GPS全球定位系统使用而建立的坐标系 。

结论:baidu与google的坐标数据只能适用各自本身地图。

给我留言

留言无头像?