效果:

代碼如下圖所示:
```javascript
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=BDAK"></script>
<script>
{
var thetype = '0';
// 百度地圖API功能
var origin = '';
var destination = '廣西省北海潿洲島滴水丹屏125號';
var map = new BMap.Map("l-map");
map.centerAndZoom(new BMap.Point(116.404, 39.915), 12);
if(thetype==1){
var transit = new BMap.TransitRoute(map, {
renderOptions: { map: map, panel: "r-result"}
});
transit.search(origin, destination);
}
else if (thetype==2)
{
var driving = new BMap.DrivingRoute(map, { renderOptions: { map: map, panel: "r-result", autoViewport: true}});
driving.search(origin, destination);
}
else if (thetype==3)
{
// 百度地圖API功能
//var map = new BMap.Map("l-map");
//map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);
var walking = new BMap.WalkingRoute(map, { renderOptions: { map: map, panel: "r-result", autoViewport: true}});
walking.search(origin, destination);
}
//searchAssociativeWord(J.g("start"))
/**
* 搜索聯想詞
* @param int
* @returns {boolean}
*/
function searchAssociativeWord(int){
if (!int) {
return false;
}
var input = int, drop_box = $(".drop_box"), data_list = J.g("data_list");
var SELECTED = false; //判斷搜索框內的詞是否是選中的聯想詞;
associativeWordSelect();
closeBtnEvent();
searchButtonClick();
input.on("input", function(){
var value = input.val();
if (value.replace(/(^\s*)|(\s*$)/g, "")=="") {
clearDataList();
}
if (SELECTED) SELECTED = false;
});
//調用baidu Autocomplete API接口
var ac = new BMap.Autocomplete({
"input" : "start",
"location" : map,
//聯想成功回掉函數
onSearchComplete: function(results){
//如果該詞是選中聯想詞而填入搜索框的,不做聯想操作
if (SELECTED) {
return;
}
// 判斷狀態是否正確
drop_box.show();
//baidu api接口如果設備是移動設備,只會返回6條數據
var data_len = results.si.length;
var s = [], max_len, limit_len = 6;
max_len = data_len<limit_len?data_len:limit_len;
if (max_len) {
data_list&&data_list.html("");
for (var i = 0; i < max_len; i++){
if (results.getPoi(i)) {
s.push(results.getPoi(i).business);
createSearchDataList(results.getPoi(i).business);
}
}
SEARCHLIST = s;
} else {
clearDataList();
}
}
});
function createSearchDataList(title){
var key = input.val();
var n_title = title.replace(key, "<em>"+key+"</em>");
var list = J.create("li", {
"data-html": title
}).html(n_title);
data_list.append(list);
}
function clearDataList(){
data_list&&data_list.html("");
drop_box&&drop_box.hide();
}
//搜索按鈕點擊事件
function searchButtonClick(){
//綁定回車按鍵
J.g(document).on("keydown", function(e){
var key = e.which;
if (key==13) {
clearDataList();
//getPlacePoint(input.val());
e.preventDefault();
}
});
function getPlacePoint(value){
var myGeo = new BMap.Geocoder();
var myValue = value;
myGeo.getLocation(DESTPOINT, function(result){
PROVINCE = result.addressComponents.province;
myGeo.getPoint(myValue, function(point){
if (point) {
var start = {
lng: point.lng,
lat: point.lat
}
if (DIRECTION) {
//反向
getBusRoute(DESTPOINT, start, myValue);
} else {
//正向
getBusRoute(start, DESTPOINT, myValue);
}
} else {
importAssocWord();
headTitleShow("s_title");
navigationPanel.contSwitch(0);
setTimeout(function(){
navigationPanel.show();
}, PANEL_TIME);
T.trackEvent("track_" + J.site.info.pageName.toLowerCase() + "_nopoint_baiduapi_0");
}
}, PROVINCE);
});
}
/**
* 導入聯想詞到選擇面板
*/
function importAssocWord(){
var dest_panel = J.g("dest_panel"), list = SEARCHLIST, len = list.length;
dest_panel.s(".start_icon").eq(0).html(input.val());
dest_panel.s("li").each(function(i,v){
v.remove();
});
if (len > 0) {
for (var i=0; i<len; i++) {
if (list[i]==input.val()) {
continue;
}
var li = J.create("li", {}).html(list[i]);
dest_panel.append(li);
}
dest_panel.s("li").each(function(i,v){
v.on("click", function(e){
e.stop();
//解析地址獲取經緯度
//getPlacePoint(v.html());
input.val(v.html());
//因為替換input value會觸發input事件
clearDataList();
})
});
}
}
}
/**
* 關閉聯想詞按鈕點擊
*/
function closeBtnEvent(){
J.g("drop_close")&&J.g("drop_close").on("click", function(e){
e.stop();
clearDataList();
});
}
/**
* 聯想詞點擊事件
*/
function associativeWordSelect(){
J.g("data_list")&&J.g("data_list").on("click", function(e){
e = window.event || e;
var target = J.g(e.target || e.srcElement);
clearDataList();
//因為html中的內容被加過<i>標簽,所以使用data-html中的內容
J.g("start").val(target.attr("data-html"));
SELECTED = true;
});
}
}
</script>
```
- 說明
- PHP
- 數組操作
- file操作的常用方法
- PHP字符串輸出之Heredoc說明
- require(_once)和include(_once)的理解
- file_get_contents和curl
- PHP的json問題
- PHP提高效率的幾點
- PHP/異步任務隊列處理
- HTTP_AUTHORIZATION
- php中 intval和string的一些轉換問題
- 變量在 PHP7 內部的實現
- 關于exit和die
- php獲取微秒
- php高性能日志擴展seaslog的使用
- Curl使用說明
- echo的數據自動增加換行或其他
- php-memcache
- 根據18位數校驗前17位身份證號是否正確
- 將一個老項目升級到php7
- ord獲取ASCII碼
- 框架
- thinkphp5
- THINKPHP5常見問題
- Laravel5學習筆記
- homestead總結
- easywechat學習筆記
- wechat公眾號
- 獲取用戶信息的實現方式
- 前端
- HTML
- CSS
- 偽類和偽元素的區別
- Bootstrap使用
- Javascript
- Javascript梳理總結
- 巧用history.pushState無刷新改變頁面url
- jquery日期時間選擇器組件datepicker的使用說明
- 基本操作
- 比較
- 后端/Nodejs
- 多nodejs版本管理
- 小功能
- URLAPI
- 二維碼轉換
- 地圖URL直接實現導航
- 字體生成
- 網址長短互轉
- 百度短網址
- Fiddle模擬測試百度短網址api
- Composer備忘錄
- composer安裝配置
- Composer 錯誤集錦
- Composer使用自己的庫
- GIT簡單操作命令
- Git記住密碼
- git 顯示錯誤詳情和請求信息
- 工具軟件
- PHPStorm
- VI簡單操作命令
- ATOM
- browser提示shockwave false加載失敗
- Cmder使用說明
- Windows軟件總結
- 瀏覽器插件
- 支付
- 微信支付
- 支付寶
- 銀聯支付
- Ping++
- Beecloud支付
- Map
- 百度地圖BaiduMap
- RESTfulAPI設計實踐
- HTTP
- GET/POST 的請求大小
- 常見狀態碼說明
- Ubuntu
- 命令行中的>>和>的區別
- 筆記
- 正則
- Hybrid的使用記錄
- H5+和mui
- HTML5+和mui使用
- APP開發過程中藍牙問題總結
- Cordova的使用
- 服務器
- URL重寫
- 目錄限制訪問
- 軟鏈接和硬鏈接
- 票務系統對接資料和總結
- qunar去哪兒門票對接
- qunar對接case介紹及錯誤代碼
- tuniu門票對接總結
- 途牛小結
- 聯合票務對接途牛文檔說明
- 途牛簽名流程
- meituan美團
- 大眾點評
- 聯合票務
- 安卓使用技巧
- 安卓清理電池信息
- 安卓6.0使用時發現的問題
- 數據庫
- 數據庫mysql
- 分頁數據優化
- 手機號用不到索引的問題分析
- mysql配置的localhost和127.0.0.1的區別
- mysql5.5升級mysql5.7
- 數據庫MongoDB
- Redis使用說明
- phpredis使用說明
- 環境變量
- Twig使用
- 經典的文章
- 用超人的故事講解 IoC(控制反轉) 和 DI(依賴注入)