最有一个项目经理让我把地图的智能感知做一下,一开始的时候,真是怕做不出来,压力真是大呀,这个地图我从来没用过,说白了吧,我根本就没有做过和地图相关的开发,头脑里的思路就是一个0,要不怎么说人的潜力是无限的呢,经过2天的奋斗OK了,十分的高兴,现在把代码Show 给大家看看一下,如果大家再遇到相同的问题时就不用这么纠结了,废话少说,看代码吧:
<!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" />
<title>自驾搜索</title>
<style type="text/css">
#map
{
width: 1011px;
height: 500px;
}
#position
{
padding: 5px;
width: 1002px;
border: solid 1px #CCCCCC;
}
</style>
<script type="text/javascript" src="http://api.go2map.com/maps/js/api_v2.5.1.js"></script>
<script src="Scripts/jquery-1.7.2.js" type="text/javascript"></script>
<script src="Scripts/jquery.autocomplete.js" type="text/javascript"></script>
<link href="Scripts/jquery.autocomplete.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="position">
<div style="width: 1005px; background-color: #CCCC00;">
起始点:<input type="text" id="origin" size="35" />
<br />
结束点:<input type="text" id="destination" size="35" />
<br />
自驾策略:
<label>
<input name="tactic" type="radio" value="0" checked />距离短
</label>
<label>
<input name="tactic" type="radio" value="1" />时间短
</label>
<label>
<input name="tactic" type="radio" value="2" />不走高速路</label>
<br />
<input type="button" οnclick="doSearch()" value="查询" />
</div>
</div>
<div id="map">
</div>
</body>
<script>
var flag = 0;
/* 创建地图 */
var myLatLng = new sogou.maps.Point(12957062, 4827187);
var myOptions = {
zoom: 10,
center: myLatLng
};
var map = new sogou.maps.Map(document.getElementById("map"), myOptions);
var bdr = null;
//执行查询操作
//执行查询操作
function doSearch() {
var destination = document.getElementById("destination");
var origin = document.getElementById("origin");
var d = search(destination.value);
var o = setTimeout(function () {
search(origin.value);
}, 300); //做一延迟,保证起终点都已经查询到
map.clearAll();
}
var targets = [];
//在回调函数中执行路线查询操作
function callback(a) {
var ps, b, c;
(!!a && a.data && (ps = a.data.feature[0]));
if (!!ps) {
b = sogou.maps.FeatureNode.loadFromJson(ps);
targets.push(b);
}
if (targets.length > 1 && !flag) {
flag = 1;
var tactics = document.getElementsByName("tactic");
var tactic = 0;
for (var i = 0; i < tactics.length; i++) {
if (tactics[i].checked) {
tactic = tactics[i].value;
}
}
var request = {
'map': map,
'destination': targets[0].points[0],
'origin': targets[1].points[0],
'tactic': tactic
}
var nav = new sogou.maps.Driving();
//for(var i in request) alert(i+">>:"+request[i]);
nav.route(request, function (a) {
var option = {
'map': map,
'drivingResult': a
};
bdr = new sogou.maps.DrivingRenderer(option);
targets = [];
flag = 0;
});
}
}
//检索目标地点坐标信息
function search(kw) {
var search = new sogou.maps.Search();
var request = {
map: map,
what: { keyword: kw },
range: {
city: "全国"
}
};
search.search(request, callback);
}
//*****************************************************************************************88
var kws = ""; //智能感知串(后面有串Split)
$("#origin").change(function () {
FindFirst();
})
//****************************************************************
//调用API实现模糊智能感知
function FindFirst() {
var kws = "";
var kw = document.getElementById("origin").value;
find(kw);
}
function find(kw) {
var request = {
'map': map,
'what': {
'keyword': kw
}
};
function callback(a) {
for (var i = 0; i < a.data.feature.length; i++) {
// alert(a.data.feature[i].caption);
kws += a.data.feature[i].caption + ",";
}
$('#origin').autocomplete(kws.split(",")).result(function (event, data, formatted) {
// alert("调用成功" + data);
});
};
var search = new sogou.maps.Search(); //创建搜索实例
search.search(request, callback);
}
//*****************************************
// setInterval(FindFirst,1000);
</script>
</html>
(源码下载地址)http://download.csdn.net/detail/c979170768/4473320