利用Google Map显示指定位置地理位置

首先,到google申请Google Maps API,申请后会给你一个key还有一段代码
http://code.google.com/apis/maps/index.html
要注意的是一个 API Key 只能对一个地址有效


申请后的key如下:

代码: [Copy to clipboard]

ABQIAAAAM5BY-rSwAwjpnCo7EkRoehTbZX4g8VFP3M2bjMNtSqa5T9xH-BQlEjHNx26rxnbv6ZGnzQ6CP-Oiqw



示范代码:

代码: [Copy to clipboard]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src=" http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAM5BY-rSwAwjpnCo7EkRoehTbZX4g8VFP3M2bjMNtSqa5T9xH-BQlEjHNx26rxnbv6ZGnzQ6CP-Oiqw"
type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
}
}
//]]>
</script>
</head>
<body οnlοad="load()" οnunlοad="GUnload()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>




这样就可以了,但是这样的话只能显示默认的地方
如果要显示指定地方的话,还需要把坐标传递进去
这样一来,就有一个问题了:如果我只是知道他们的中文地址的话,如何转换成Google能够识别的坐标呢?

找了半天,终于看到有人做了一个差不多的,主要是利用了51ditu的api来做下转换

于是去了51ditu,看了下demo,感觉还是比较简单的

51ditu Maps API 类参考文档: http://api.51ditu.com/docs/mapsapi/reference.html
51ditu Maps API 范例文档: http://api.51ditu.com/docs/mapsapi/examples.html


试了一下,发现只要把
<script language="javascript" src=http://api.51ditu.com/js/maps.js></script>
加载进去,然后传递中文地区的值给51ditu API 就可以了

于是大概修改了下:

代码: [Copy to clipboard]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
" http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns=" http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Bar Map</title>
<script language="javascript" src=http://api.51ditu.com/js/maps.js></script>
<script src=" http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAM5BY-rSwAwjpnCo7EkRoehTbZX4g8VFP3M2bjMNtSqa5T9xH-BQlEjHNx26rxnbv6ZGnzQ6CP-Oiqw"
type="text/javascript"></script>

<script type="text/javascript">

var area;
area='beijing';
var bw=LTPlaceList.getDefault().getPoint(area).getLatitude()/100000;
var bj=LTPlaceList.getDefault().getPoint(area).getLongitude()/100000;

//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(bw, bj), 13);
}
}
//]]>


</script>
</head>
<body οnlοad="load()" οnunlοad="GUnload()">
<div id="map" style="width: 500px; height: 300px"></div>
</body>
</html>



瓦咔咔,这样就可以显示到北京地区的地图,把 area="beijing"换成中文的"北京"也是一样

到这里,基本就算是解决了

如果需要从另外一个页面来调用这个程序的话,比如一个商城,里面有很多商店,这样就可以通过Google api 来显示商店的问题了,一目了然

可以通过get方式来传递值进来,然后用js来接受
稍微试了下,大概方式如下:

代码: [Copy to clipboard]

<script type="text/javascript">
var thisURL = document.location.search
var Request = new Object();
var area;
if(thisURL.indexOf("?")!=-1)
{
var str = thisURL.substr(1)
strs = str.split("&");
for(var i=0;i<strs.length;i++)
{
Request[strs .split("=")[0]]=unescape(strs.split("=")[1]);
}
area=Request['area'];
}
if(area=='') area='beijing';
var bw=LTPlaceList.getDefault().getPoint(area).getLatitude()/100000;
var bj=LTPlaceList.getDefault().getPoint(area).getLongitude()/100000;

//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(bw, bj), 13);
}
}
//]]>


</script>


'通过js来分析地址栏,然后获取指定的值,如同asp或者php接受变量一样

这样 比如测试文件保存为map.html的
只要访问" map.html?area=潮州 "就可以看到潮州的地图了

还有一个要说明的是
Google map 的中英文版本的数据,貌似是不大一样的
中文版的api是:
<script src="http://ditu.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAM5BY-rSwAwjpnCo7EkRoehTbZX4g8VFP3M2bjMNtSqa5T9xH-BQlEjHNx26rxnbv6ZGnzQ6CP-Oiqw" type="text/javascript"></script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值