<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
<html>
|
<head>
|
<title>¼ÆËãÁ½µØ¼ä¾àÀë</title>
|
<meta http-equiv="Content-Type" content="text/html;charset=gb2312" />
|
<script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
|
</head>
|
<body style="max-width: 1210px;">
|
<div width="300px">·ÏßÓÉ:<input type="text" id="frm_street" size="20" value="" style="width:150px;" />ÖÁ<input type="text" id="frm_end" size="20" value="" style="width:150px;" /><input type="button" value="²éÕÒ" id="submit" onClick="getAddress()"/></div>
|
<div width="300px">×ø±êÓÉ:<input type="text" id="frm_street_co" size="20" value="" style="width:150px;" />ÖÁ<input type="text" id="frm_end_co" size="20" value="" style="width:150px;" /></div>
|
<div width="300px">¾àÀë<input type="text" id="Distance" name="Distance" value=""/> Ô¤¼ÆÐгÌʱ¼ä<input type="text" id="Duration" name="Duration" value=""/> </div>
|
|
<div id="result" style=" width:400px; float:left"></div>
|
<div style="width:800px;height:600px;border:1px solid gray; float:right" id="container"></div>
|
</body>
|
|
<script type="text/javascript">
|
|
var search="frm_street"; //¶¨Òå²éѯ¿òID£»
|
var search1="frm_end"; //¶¨Òå²éѯ¿òID£»
|
var local="¹ãÖÝÊÐ"; // ¶¨Òå±¾µØµØÖ·£»
|
var lng="104.290493"; //¾¶È
|
var lat="30.981528"; //γ¶È
|
|
var ret = "";
|
var ret1 = "";
|
|
var newmarker;
|
var map = new BMap.Map("container"); //´´½¨µØÍ¼ÊµÀý
|
var spoi = new BMap.Point(lng,lat); //¾Î³¶È
|
var point = new BMap.Point(lng,lat); //´´½¨µã×ø±ê
|
map.centerAndZoom(point,15); //³õʼ»¯µØÍ¼£¬ÉèÖÃÖÐÐĵã×ø±êºÍµØÍ¼¼¶±ð
|
map.enableScrollWheelZoom(); //ÆôÓùöÂÖ·Å´óËõСµØÍ¼
|
|
//add_flag0();
|
//=================»ñÈ¡ÔªËØ==========================\\
|
function G(id) {
|
return document.getElementById(id);
|
}
|
function GV(id){
|
return document.getElementById(id).value;
|
}
|
|
//=================Ìí¼Ó±ê¼Ç==========================\\
|
//Ìí¼Ó±ê¼Ç
|
function add_flag0(){
|
var localmarker=new BMap.Marker(new BMap.Point(lng,lat));
|
map.addOverlay(localmarker);
|
}
|
|
//Ìí¼ÓÄ¿µÄµØ±ê¼Ç
|
function add_flag1(point){
|
map.centerAndZoom(point, 15);
|
map.clearOverlays(); //Çå³ýµØÍ¼ÉÏËùÓи²¸ÇÎï
|
add_flag0(); //Ìí¼Ó±ê¼Ç
|
newmarker=new BMap.Marker(new BMap.Point(point.lng,point.lat));
|
map.addOverlay(newmarker);
|
newmarker.enableDragging();//¿ªÆôÍ϶¯
|
spoi = point;
|
//driveline(spoi,point);
|
//longAndtime(spoi,point);
|
|
// document.edit.lng.value=point.lng;
|
// document.edit.lat.value=point.lat;
|
}
|
|
|
function add_flag2(point){
|
|
map.centerAndZoom(point, 15);
|
//map.clearOverlays(); //Çå³ýµØÍ¼ÉÏËùÓи²¸ÇÎï
|
add_flag0(); //Ìí¼Ó±ê¼Ç
|
newmarker=new BMap.Marker(new BMap.Point(point.lng,point.lat));
|
map.addOverlay(newmarker);
|
newmarker.enableDragging();//¿ªÆôÍ϶¯
|
driveline(spoi,point);
|
longAndtime(spoi,point);
|
|
// document.edit.lng.value=point.lng;
|
// document.edit.lat.value=point.lat;
|
|
}
|
//=================´ÓÊäÈë¿ò»ñÈ¡µØÖ·µØÖ·==============\\
|
function getAddress(){
|
get_point(GV(search));
|
}
|
|
//=================µØÖ·½âÎö(¸ù¾ÝµØÖ·»ñÈ¡×ø±êµã)==========================\\
|
|
function get_point(address){
|
var myGeo = new BMap.Geocoder(); // ´´½¨µØÖ·½âÎöÆ÷ʵÀý
|
myGeo.getPoint(address, function(point){
|
if (point) { //Èç¹ûµØÖ·ÄܽâÎö£¬±ê¼Ç
|
//printObject(point); //Êä³öÄÚÈÝ
|
add_flag1(point);
|
}else{
|
alert("µØÖ·ÎÞ·¨ÕÒµ½!");
|
}
|
},local);
|
}
|
|
|
|
//=================µØÖ··´½âÎö(¸ù¾Ý×ø±êµã»ñÈ¡µØÖ·)==========================\\
|
function get_address(e){
|
var gc = new BMap.Geocoder(); // ´´½¨µØÖ··´½âÎöÆ÷ʵÀý
|
var pt = e.point;
|
var result;
|
add_flag1(pt);
|
gc.getLocation(pt, function(rs){
|
var addComp = rs.addressComponents;
|
if (addComp.street + addComp.streetNumber=="")
|
{
|
result="µØÖ·ÎÞ·¨ÕÒµ½£¡";
|
|
}
|
else{
|
result=addComp.street + addComp.streetNumber;
|
}
|
document.edit.frm_street.value=result;
|
return result;
|
|
});
|
|
}
|
|
|
//==============×Ô¶¯ÏÂÀÁбí=========================\\
|
|
var ac = new BMap.Autocomplete( {"input" : search,"location" : local} ); //½¨Á¢Ò»¸ö×Ô¶¯Íê³ÉµÄ¶ÔÏó
|
ac.addEventListener("onconfirm", function(e) { //Êó±êµã»÷ÏÂÀÁбíºóµÄʼþ
|
var _value = e.item.value;
|
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
|
setPlace();
|
});
|
|
function setPlace(){
|
// map.clearOverlays(); //Çå³ýµØÍ¼ÉÏËùÓи²¸ÇÎï
|
function myFun(){
|
var pp = ls.getResults().getPoi(0).point; //»ñÈ¡µÚÒ»¸öÖÇÄÜËÑË÷µÄ½á¹û
|
add_flag1(pp);
|
}
|
var ls = new BMap.LocalSearch(local, { //ÖÇÄÜËÑË÷
|
onSearchComplete: myFun
|
});
|
ls.search(myValue);
|
}
|
|
var ac1 = new BMap.Autocomplete( {"input" : search1,"location" : local} ); //½¨Á¢Ò»¸ö×Ô¶¯Íê³ÉµÄ¶ÔÏó
|
ac1.addEventListener("onconfirm", function(e) { //Êó±êµã»÷ÏÂÀÁбíºóµÄʼþ
|
var _value = e.item.value;
|
myValue = _value.province + _value.city + _value.district + _value.street + _value.business;
|
setPlace1();
|
});
|
|
function setPlace1(){
|
// map.clearOverlays(); //Çå³ýµØÍ¼ÉÏËùÓи²¸ÇÎï
|
function myFun(){
|
var pp = ls.getResults().getPoi(0).point; //»ñÈ¡µÚÒ»¸öÖÇÄÜËÑË÷µÄ½á¹û
|
add_flag2(pp);
|
}
|
var ls = new BMap.LocalSearch(local, { //ÖÇÄÜËÑË÷
|
onSearchComplete: myFun
|
});
|
ls.search(myValue);
|
}
|
|
|
//=================ËÑË÷Ïß·==========================\\
|
|
function driveline(myP1,myP2){
|
var driving = new BMap.DrivingRoute(map); //´´½¨¼Ý³µÊµÀý
|
driving.search(myP1, myP2); //µÚÒ»¸ö¼Ý³µËÑË÷
|
driving.setSearchCompleteCallback(function(){
|
var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //ͨ¹ý¼Ý³µÊµÀý£¬»ñµÃһϵÁеãµÄÊý×é
|
var polyline = new BMap.Polyline(pts);
|
map.addOverlay(polyline);
|
|
|
var lab1 = new BMap.Label("Æðµã",{position:myP1}); //´´½¨2¸ölabel
|
var lab2 = new BMap.Label("ÖÕµã",{position:myP2});
|
map.addOverlay(lab1);
|
map.addOverlay(lab2);
|
setTimeout(function(){
|
map.setViewport([myP1,myP2]); //µ÷Õûµ½×î¼ÑÊÓÒ°
|
},1000);
|
});}
|
|
|
//=================¼Ý³µÊ±¼ä¾àÀë==============\\
|
function longAndtime(spoi,point){
|
var output="";
|
var searchComplete = function (results){
|
if (transit.getStatus() != BMAP_STATUS_SUCCESS){ return ;}
|
var plan = results.getPlan(0);
|
//printObject(results.Lu.point);
|
ret = plan.getDistance(true);
|
ret1 = plan.getDuration(true);
|
//output += plan.getDuration(true) + "\n"; //»ñȡʱ¼ä
|
//output += "×Ü·³ÌΪ£º" ;
|
//output += plan.getDistance(true) + "\n"; //»ñÈ¡¾àÀë
|
//alert(output);
|
document.getElementById('frm_street_co').value=results.sw.point.lng + ','+ results.sw.point.lat; //Æðµã×ø±ê
|
document.getElementById('frm_end_co').value=results.Lu.point.lng + ','+ results.Lu.point.lat; //Æðµã×ø±ê
|
document.getElementById('Duration').value=plan.getDuration(true); //»ñȡʱ¼ä
|
document.getElementById('Distance').value=plan.getDistance(true); //»ñÈ¡¾àÀë
|
|
}
|
|
var transit = new BMap.DrivingRoute(map, {renderOptions: {map: map,panel:"result"},
|
onSearchComplete: searchComplete,
|
onPolylinesSet: function() {
|
setTimeout(function() { }, "1000");
|
}
|
});
|
transit.search(spoi, point);
|
}
|
|
/*
|
|
//=================µ¥»÷µØÍ¼¼àÌýʼþ==========================\\
|
map.addEventListener("click", function(e){
|
get_address(e);
|
// alert(get_address(e));
|
|
});
|
|
//=================ÒÆ¶¯µØÍ¼¼àÌýʼþ==========================\\
|
newmarker.addEventListener("dragend", function(e){
|
|
});
|
*/
|
|
//=================Êä³ö²âÊÔÊý×é==========================\\
|
function printObject(obj){
|
//obj = {"cid":"C0","ctext":"ÇøÏØ"};
|
var temp = "";
|
for(var i in obj){//ÓÃjavascriptµÄfor/inÑ»·±éÀú¶ÔÏóµÄÊôÐÔ
|
temp += i+":"+obj[i]+"\n\n";
|
}
|
alert(temp);//½á¹û£ºcid:C0 \n ctext:ÇøÏØ
|
}
|
|
function GetDis()
|
{
|
return ret;
|
}
|
|
function GetDis1()
|
{
|
return ret1;
|
}
|
|
function GetStart() {
|
//setTimeout(function(){},"1000");
|
return GV(search);
|
}
|
|
function GetEnd() {
|
//setTimeout(function(){},"1000");
|
return GV(search1);
|
}
|
|
</script>
|
</html>
|