【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能

简介: 原文:【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能任务描述:   有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥。他身上钱很少,只够坐公交的。所以,百度地图API快帮帮他吧! 如何实现:   把地图中心定在魏公村,在视野范围内搜索小学。
原文: 【百度地图API】小学生找哥哥——小学生没钱打车,所以此为公交查询功能

任务描述:

  有位在魏公村附近上小学的小朋友,要去北京邮电大学找哥哥。他身上钱很少,只够坐公交的。所以,百度地图API快帮帮他吧!

如何实现:

  把地图中心定在魏公村,在视野范围内搜索小学。

  搜索完毕后,点击出现的红色标注,在输入框中输入北京邮电大学,然后查询,即可得到公交路线图。

图示:

img_31bd55dd639c1ed16005512969db94ae.png

运行代码,点击这里

点击公交按钮需要做的查询工作。

在这里,请大家一定注意,所有公交查询,只创建一次对象。不然会有很大的内存消耗哦~

// 公交线路查询
function tSearch()
{
// 请不要在查询的时候创建公交对象

if (curTitle.length > 0 )
{
var dest = document.getElementById( " txtDest " ).value;
ts.search(curTitle,dest);
}
}

创建公交对象,最好和地图初始化一起做。这样能保证只创建一次公交对象。

var map = new BMap.Map( " container " );
map.centerAndZoom(
new BMap.Point( 116.330599 , 39.95536 ), 16 );
var curTitle = "" ;
// 一定要先建立一个公交查询的对象,以后都只用这个对象,不要再次创建了。
var ts = new BMap.TransitRoute(map,{
renderOptions:{
map:map,
panel:
" divResult "
}
});

全部代码:

<! 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 > 酸奶小妹——百度地图API学习 </ title >
< meta http-equiv ="X-UA-Compatible" content ="IE=EmulateIE7" />
< script type ="text/javascript" src ="http://api.map.baidu.com/api?key=25f144bb4491f54b83a7a7b39198c11e&v=1.1&services=true" ></ script >
< link rel ="stylesheet" type ="text/css" href ="http://ui-love.com/baidumap/base.css" media ="screen" />
</ head >
< body >
< div class ="wrapper" >
< div class ="header" >
< h1 > 公交查询 </ h1 >
< p >< span class ="f-r" > 2011-01-14 </ span > 任务描述: </ p >
< p > 首先,周边查询,比如“小学”; < br />
然后,点击任一个红色标注;
< br />
弹出信息窗口中,输入需要前往的地址,比如“北京邮电大学”,点击“前往”;
即可出现公交乘坐路线。
</ p >
</ div >
< div class ="container clearfix" >
< div class ="clearfix" >< input id ="txtSearch" type ="text" value ="小学" />< input type ="button" value ="查询" onclick ="search()" /></ div >
< div class ="myMap f-l" id ="container" ></ div >
< div id ="divResult" class ="myMap myMap2 f-l" ></ div >
</ div >

< div class ="footer" >
< span class ="f-r" > COPYRIGHT &copy; 酸奶小妹 </ span >
< span > 友情链接:
< a target ="_blank" href ="http://openapi.baidu.com/map/index.html" > 百度地图API </ a > |
< a target ="_blank" href ="http://tieba.baidu.com/f?kw=%B0%D9%B6%C8%B5%D8%CD%BCapi&fr=tb0_search&ie=utf-8" > 百度地图API贴吧 </ a > |
< a target ="_blank" href ="http://map.baidu.com/" > 百度地图 </ a > |
< a target ="_blank" href ="http://www.cnblogs.com/milkmap/" > 酸奶小妹 </ a >
</ span >
</ div >
</ div >
</ body >
< script type ="text/javascript" >
var map = new BMap.Map( " container " );
map.centerAndZoom(
new BMap.Point( 116.330599 , 39.95536 ), 16 );
var curTitle = "" ;
// 一定要先建立一个公交查询的对象,以后都只用这个对象,不要再次创建了。
var ts = new BMap.TransitRoute(map,{
renderOptions:{
map:map,
panel:
" divResult "
}
});

function search()
{
var s = document.getElementById( " txtSearch " );
var ls = new BMap.LocalSearch(map,{pageCapacity: 20 });

// 设置回调函数
ls.setSearchCompleteCallback( function (result){
map.clearOverlays();
// 清除所有覆盖物

// 自己添加对应的覆盖物
if (ls.getStatus() == BMAP_STATUS_SUCCESS)
{
// result为LocalResult类型
var curNum = result.getCurrentNumPois();
for ( var i = 0 ;i < curNum;i ++ )
{
// poi为LocalResultPoi类型
var poi = result.getPoi(i);
var lng = poi.point.lng;
var lat = poi.point.lat;
var title = poi.title;

var pt = new BMap.Point(lng,lat);

var marker = new BMap.Marker(pt);
marker.setTitle(title);

marker.addEventListener(
" click " ,fnClick(marker));

map.addOverlay(marker);
}
}
});
ls.searchInBounds(s.value,map.getBounds());
}
// 为每个标注制定不同的回调函数
function fnClick(marker)
{
return function ()
{
curTitle
= marker.getTitle();
var html = " " + curTitle + " 出发,坐<b>公交</b>到 " + " <input id='txtDest' type='text' value='北京邮电大学' /><input type='button' value='查询' onclick='tSearch()' /> " ;
var infoWin = new BMap.InfoWindow(html);
infoWin.addEventListener(
" open " , function (){
// 给输入框添加焦点
document.getElementById( " txtDest " ).focus();
});
marker.openInfoWindow(infoWin);
}
}
// 公交线路查询
function tSearch()
{
// 请不要在查询的时候创建公交对象

if (curTitle.length > 0 )
{
var dest = document.getElementById( " txtDest " ).value;
ts.search(curTitle,dest);
}
}
</ script >
</ html >
目录
相关文章
|
1月前
|
SQL Java API
Java一分钟之-JPA查询:JPQL与Criteria API
【6月更文挑战第14天】本文探讨了Java Persistence API (JPA)中的两种查询方式:JPQL和Criteria API。JPQL是面向对象的SQL,适用于简单查询,而Criteria API则提供类型安全的动态查询构造。文章指出了每种方法的常见问题和避免策略,如混淆实体属性与数据库字段、参数绑定错误、过度复杂化和性能问题。建议开发者根据需求选择适当的方法,并关注查询的可读性、可维护性和性能优化。
32 2
|
28天前
|
敏捷开发 测试技术 API
阿里云云效产品使用问题之如何通过API查询指定人在指定时间内提交了多少行代码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
1月前
|
安全 Java API
Java一分钟之-GraphQL:查询语言与API设计
【6月更文挑战第11天】GraphQL,一种革命性的查询语言,正在改变Web开发中的API构建和使用方式。它允许客户端按需请求数据,减少冗余,提升性能。本文概述了GraphQL的核心理念,如声明式查询、强类型和统一入口,并讨论了Java开发者常遇问题:过度查询、Schema设计和安全性。解决方案包括使用Dataloader、优化Schema和实现授权机制。通过理解原理、关注性能、重视安全和持续实践,开发者能更好地利用GraphQL构建高效API。
452 2
|
23天前
|
API 开发工具
支付系统17------支付宝支付-----API预览以及签名验签说明,出现支付宝扫描二维码的操作,支付完成之后,查询订单的状态,支付成功之后,需要退款调用的接口,退款状态的接口,完成退款之后,通知
支付系统17------支付宝支付-----API预览以及签名验签说明,出现支付宝扫描二维码的操作,支付完成之后,查询订单的状态,支付成功之后,需要退款调用的接口,退款状态的接口,完成退款之后,通知
|
25天前
|
JavaScript 前端开发 定位技术
vue 使用 vue-jsonp 解决跨域请求问题(访问百度地图API)
vue 使用 vue-jsonp 解决跨域请求问题(访问百度地图API)
37 0
|
29天前
|
域名解析 JavaScript 网络协议
技术心得记录:如何使用google地图的api(整理)
技术心得记录:如何使用google地图的api(整理)
52 0
|
29天前
|
Java API Apache
详尽分享百度翻译api
详尽分享百度翻译api
13 0
|
1月前
|
存储 缓存 Java
掌握Elasticsearch集群参数查询API
掌握Elasticsearch集群参数查询API
|
1月前
|
数据采集 JavaScript 前端开发
详尽分享网站网页中加入各种分享按钮功能百度分享
详尽分享网站网页中加入各种分享按钮功能百度分享
67 0
|
1月前
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
18 0