<!DOCTYPE html "-//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" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gbk"/>
<title>goole地图调用</title>
<script src="http://ditu.google.cn/maps?file=api&v=2&key=abcdefg&sensor=true_or_false&oe=gbk"
type="text/javascript"></script>
<script type="text/javascript">
var geocoder;
var map;
var address;
var erOptions;
var er;
var friends;
var dir;
function $(id){
return document.getElementById(id);
}
function initialize(){
if (GBrowserIsCompatible()) {
map = new GMap2($("map"));
geocoder = new GClientGeocoder();
map.addControl(new GSmallMapControl()); //滚动条var tinyIcon = new GIcon(G_DEFAULT_ICON); //创建图标对象
tinyIcon.iconAnchor = new GPoint(10, 30);
erOptions = { icon:tinyIcon,color:"blue"};
address= $("home").value;
geocoder.getLatLng(address,callback_home);friends=$("friend").value.split(",");
for(var i=0;i<friends.length;i++){
geocoder.getLatLng(friends[i],callback_friends);
}
}
} //回调
function callback_home(point){
if (!point) {
alert("无法解析:" + address);
} else {
map.setCenter(point, 6);
er = new GMarker(point,erOptions);
map.addOverlay(er);
}
}
function callback_friends(point){
if (!point) {
alert("无法解析该地址" );
} else {
er = new GMarker(point,erOptions);
var polyline = new GPolygon ([map.getCenter(), er.getLatLng()]);
GPolyStyleOptions = { opacity:1,color:"blue",weight:2};
polyline.setStrokeStyle(GPolyStyleOptions);
map.addOverlay(polyline);
map.addOverlay(er); dir = new GDirections(map,$("direction"));
GEvent.addListener(dir, "load", onGDirectionsLoad); var queryString="from: "+ map.getCenter()+"to: "+er.getLatLng();
dir.load(queryString,{"locale":"zh-CN"});
// alert(dir.getDistance().meters); //dir.getDistance() is undefined!!!! 怎么获取距离 }
}function onGDirectionsLoad(){
$("status").innerHTML = dir.getStatus().code;
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="direction" style="border: 1px solid ; width: 400px; height: 50px;">显示地图center到各地方的距离</div>
<div id="status" style="border: 1px solid;width: 400px; height: 50px;">状态</div>
<div id="map" style="border: 1px solid;width: 400px; height: 300px;"></div>
<input id="home" value="北京市" type="hidden">
<input id="friend" value="天津市,石家庄市,邯郸市,保定市" type="hidden">
</body>
</html>
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gbk"/>
<title>goole地图调用</title>
<script src="http://ditu.google.cn/maps?file=api&v=2&key=abcdefg&sensor=true_or_false&oe=gbk"
type="text/javascript"></script>
<script type="text/javascript">
var geocoder;
var map;
var address;
var erOptions;
var er;
var friends;
var dir;
function $(id){
return document.getElementById(id);
}
function initialize(){
if (GBrowserIsCompatible()) {
map = new GMap2($("map"));
geocoder = new GClientGeocoder();
map.addControl(new GSmallMapControl()); //滚动条var tinyIcon = new GIcon(G_DEFAULT_ICON); //创建图标对象
tinyIcon.iconAnchor = new GPoint(10, 30);
erOptions = { icon:tinyIcon,color:"blue"};
address= $("home").value;
geocoder.getLatLng(address,callback_home);friends=$("friend").value.split(",");
for(var i=0;i<friends.length;i++){
geocoder.getLatLng(friends[i],callback_friends);
}
}
} //回调
function callback_home(point){
if (!point) {
alert("无法解析:" + address);
} else {
map.setCenter(point, 6);
er = new GMarker(point,erOptions);
map.addOverlay(er);
}
}
function callback_friends(point){
if (!point) {
alert("无法解析该地址" );
} else {
er = new GMarker(point,erOptions);
var polyline = new GPolygon ([map.getCenter(), er.getLatLng()]);
GPolyStyleOptions = { opacity:1,color:"blue",weight:2};
polyline.setStrokeStyle(GPolyStyleOptions);
map.addOverlay(polyline);
map.addOverlay(er); dir = new GDirections(map,$("direction"));
GEvent.addListener(dir, "load", onGDirectionsLoad); var queryString="from: "+ map.getCenter()+"to: "+er.getLatLng();
dir.load(queryString,{"locale":"zh-CN"});
// alert(dir.getDistance().meters); //dir.getDistance() is undefined!!!! 怎么获取距离 }
}function onGDirectionsLoad(){
$("status").innerHTML = dir.getStatus().code;
}
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="direction" style="border: 1px solid ; width: 400px; height: 50px;">显示地图center到各地方的距离</div>
<div id="status" style="border: 1px solid;width: 400px; height: 50px;">状态</div>
<div id="map" style="border: 1px solid;width: 400px; height: 300px;"></div>
<input id="home" value="北京市" type="hidden">
<input id="friend" value="天津市,石家庄市,邯郸市,保定市" type="hidden">
</body>
</html>
搞好了 ,from 地名 to 地名 不是用经纬度 我靠 谢谢各位了 搞出来了也不好看 算出来的是按乘车路线到目的地的距离,是弯曲的,我直接弄了个算2点距离的方法
function rad(d)
{
return d * Math.PI / 180.0;
}function getDistance( lat1, lng1, lat2, lng2)
{
var radLat1 = rad(lat1);
var radLat2 = rad(lat2);
var a = radLat1 - radLat2;
var b = rad(lng1) - rad(lng2)
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s * EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
return s;
}自己调了 算了 。。郁闷 哈哈