【百度地图API】如何调整结果面板的样式?如何获取指定页码的结果?

原文:【百度地图API】如何调整结果面板的样式?如何获取指定页码的结果?

摘要:

1、你是否想自定义查询后,结果面板的显示样式?

2、数据接口每次只返回10条结果,如何取到单独每一页的结果?

---------------------------------------------------------

一、如果自定义结果面板的样式?

我们通过数据接口拿到每一条数据,然后塞到自己想要的html结构里,如下:

if(cPNum > 0){
str += '<ul class="result">';
temp.mk = [];
for(var i=0;i<cPNum;i++){
var pInfo = r.getPoi(i);
var mk = new BMap.Marker(pInfo.point);
mk.addEventListener('onmouseover',function(){
this.setTop(true);
});
mk.addEventListener('onmouseout',function(){
this.setTop(false);
})
map.addOverlay(mk);
var lb = new BMap.Label(pInfo.title,{offset:new BMap.Size(10,-20)});
mk.setLabel(lb);
str += '<li>'+ pInfo.title+'</li>';
temp.mk.push(pInfo.point);
}
map.setViewport(temp.mk)
str += '</ul>';  

//这里略去页码显示部分,只显示第一页数据。

 
$('result').innerHTML = str;
}

然后再自己给这些生成的html写上样式:

<style>
.rsContent{float:left;width:200px;border:#ccc solid 1px;margin-left:5px;display:inline;font-size:12px;line-height:20px;padding:5px;}
.rsContent ul,.rsContent li{margin:0;padding:0;}
.result{}
.result li{list-style-type:none;border-bottom:#ccc solid 1px;}

.pageList{}
.pageList a{margin:0 5px;}
</style>

这样就有现在的样式:

二、接下来是页码显示的部分。

当鼠标点击页码的时候,就获取该页的十条数据。onclick="l_search.gotoPage(i)"

if(pageNum > 1){
pageStr += '<div class="pageList">';
for(var i =0;i<pageNum;i++){
var j = i+1;
if(i != cPage){
pageStr += '<a href = "javascript:void(0)" 

                 onclick="l_search.gotoPage('+i+')">' + j + '</a>'
}
else{
pageStr += j;
}
}
pageStr += '</div>';
}

          str += pageStr;

三、全部源代码如下,点击这里运行。

<!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=utf-8" />

<meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具" />

<meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图" />

<title>结果面板样式+制定页码结果</title>

<!--引用百度地图API-->

<link rel="stylesheet" type="text/css" href="http://api.map.baidu.com/res/11/bmap.css"/>

<script type="text/javascript" src="http://api.map.baidu.com/api?key=67bd734bd2ef5e5ccecfeccbb5a221ee&v=1.1&services=true"></script>

<!--script type="text/javascript" src="http://wxp.baidu.com/bugxiufu/api/api.js"></script-->

<style>

.rsContent{float:left;width:200px;border:#ccc solid 1px;margin-left:5px;display:inline;font-size:12px;line-height:20px;padding:5px;}

.rsContent ul,.rsContent li{margin:0;padding:0;}

.result{}

.result li{list-style-type:none;border-bottom:#ccc solid 1px;}

.pageList{}

.pageList a{margin:0 5px;}

</style>

</head>

<body>

<!--百度地图容器-->

<div style="width:597px;height:550px;border:#ccc solid 1px;float:left;" id="dituContent"></div>

<div id="result" class="rsContent"></div>

</body>

<script type="text/javascript">

function $(id) {

return document.getElementById(id);

}

var map = new BMap.Map("dituContent");

var point = new BMap.Point(116.331398,39.897445);

map.centerAndZoom(point,12);

map.enableScrollWheelZoom();

var temp = {};

var l_search = new BMap.LocalSearch(map,{

onSearchComplete : function(r){

map.clearOverlays();

var pageNum = r.getNumPages();

var cPage = r.getPageIndex();

var cPNum = r.getCurrentNumPois();

var str = '';

var pageStr = '';

if(cPNum > 0){

str += '<ul class="result">';

temp.mk = [];

for(var i=0;i<cPNum;i++){

var pInfo = r.getPoi(i);

var mk = new BMap.Marker(pInfo.point);

mk.addEventListener('onmouseover',function(){

this.setTop(true);

});

mk.addEventListener('onmouseout',function(){

this.setTop(false);

})

map.addOverlay(mk);

var lb = new BMap.Label(pInfo.title,{offset:new BMap.Size(10,-20)});

mk.setLabel(lb);

str += '<li>'+ pInfo.title+'</li>';

temp.mk.push(pInfo.point);

}

map.setViewport(temp.mk)

str += '</ul>';

if(pageNum > 1){

pageStr += '<div class="pageList">';

for(var i =0;i<pageNum;i++){

var j = i+1;

if(i != cPage){

pageStr += '<a href = "javascript:void(0)" onclick="l_search.gotoPage('+i+')">' + j + '</a>'

}

else{

pageStr += j;

}

}

pageStr += '</div>';

}

str += pageStr;

$('result').innerHTML = str;

}
}

});

l_search.search("1");

</script>

</html>

时间: 2024-10-22 06:56:13

【百度地图API】如何调整结果面板的样式?如何获取指定页码的结果?的相关文章

【百度地图API】如何制作自定义样式的公交导航结果面板?

原文:[百度地图API]如何制作自定义样式的公交导航结果面板? 摘要: 百度地图API有默认的公交导航结果面板,但样式比较单一:而百度地图上的结果面板就比较美观.如何利用百度地图API来制作一个比较美观的公交导航结果面板呢?一起来学习一下吧. ---------------------------------------------------------------------------------------------- 首先,看一下百度地图上的结果面板,如下图:   再来看看百度地图A

百度地图API之本地搜索与范围搜索_javascript技巧

地图服务是指可以提供数据信息的接口,比如说本地搜索/路线规划等,下面小编给大家整理下百度地图API之本地搜索和范围搜索,具体请看下文. 地图服务概述 地图服务是指那些提供数据信息的接口,比如本地搜索.路线规划等等.百度地图API提供的服务有: LocalSearch:本地搜索,提供某一特定地区的位置搜索服务,比如在北京市搜索"公园".TransitRoute:公交导航,提供某一特定地区的公交出行方案的搜索服务.DrivingRoute:驾车导航,提供驾车出行方案的搜索服务.Walkin

百度地图API的使用

好奇怪,习惯性使用有道云笔记记录心得与知识后就很少用博客园来记录了. 但是后来想想,有些东西还是要整理记录下来的好,多个备份也好.   -------------------------------------------- 下面正题,最近公司项目用百度地图API较多.后面还有使用高德地图API,后续整理记录上.   1.初始化地图,并设置地图中心点 var map = new BMap.Map("allmap"); // 创建Map实例 map.centerAndZoom(new B

【百度地图API】建立全国银行位置查询系统(三)——如何在地图上添加银行标注

原文:[百度地图API]建立全国银行位置查询系统(三)--如何在地图上添加银行标注 <摘要>你将在第三章中学会以下知识: 如何在地图上添加带银行logo的标注?(你也可以换成商场logo,酒店logo等) 如何在标注上显示信息窗口,以及添加文字标签等其他覆盖物: 最后,介绍一个获取坐标的给力工具. ---------------------------------------------------------------------------------------------------

如何利用【百度地图API】,制作房产酒店地图?(中)——使用右侧列表打开信息窗口

原文:如何利用[百度地图API],制作房产酒店地图?(中)--使用右侧列表打开信息窗口 摘要: 很多房产网.旅游酒店网上,都有一个列表,鼠标经过列表上的数据时,地图上就会打开相应的信息窗口. 如何实现这一功能呢? 快来学习吧. ----------------------------------------------------------------------------------------------- 一.制作列表 接着上一篇文章来讲,我们已经拥有了一张能显示自定义标注,和信息窗口

【百度地图API】如何进行地址解析与反地址解析?——模糊地址能搜索到精确地理信息!

原文:[百度地图API]如何进行地址解析与反地址解析?--模糊地址能搜索到精确地理信息! 摘要: 什么是地址解析? 什么是反地址解析? 如何运用地址解析,和反地址解析? 可以同时运用地址解析,和反地址解析麼?答案是,可以的.详见最后一个示例与代码. --------------------------------------------------------------------------------- 一.地址解析 地址解析,是用户输入一个详细到门牌号的地址.例如"北京市中关村南大街27

【百度地图API】让用户选择起点和终点的驾车导航

原文:[百度地图API]让用户选择起点和终点的驾车导航 摘要: 如果用户搜索"从机场到火车站",使用驾车导航DrivingRoute会默认显示一条结果.但同一个城市可能有多个机场和火车站,那么,如何用可视化的方法让用户自己选择起点和终点呢?答案是,使用数据接口.数据接口,可以让百度地图API的数据,按照自定义的形式展示. 这个功能非常实用,学会这个方法,可以让您的地图更加接近百度地图的功能!! ----------------------------------------------

百度地图api如何使用_javascript技巧

如果想用百度地图api,首先需要先获取一个百度地图api的密钥,然后引入百度地图的api,接下来,我们详细介绍下获取.引入api密钥的技巧,以及通过代码给大家详解下百度地图api如何使用,具体请看下文. 首先 ,如果想调用百度地图api,你需要获取一个百度地图api的密钥. 申请密钥很简单,在百度地图api的首页就有相关链接,填写相关信息百度就会给你一个密钥了. 接下来,就是引入百度地图的api 关键代码如下: 复制代码 代码如下: <script type="text/javascrip

【百度地图API】如何制作“从这里出发”“到这里去”——公交篇

原文:[百度地图API]如何制作"从这里出发""到这里去"--公交篇 摘要: 百度地图首页上的"从这里出发""到这里去",一直是开发者们很热衷的一个功能.那么,怎样结合百度的数据库,来制作这个功能呢?让我们一起来学习一下. -------------------------------------------------------------------------------------------------------