文档章节

GIS(六)——实现js版搜狗地图周边搜索功能

白志华
 白志华
发布于 2015/10/18 10:54
字数 933
阅读 11
收藏 0

       在上一篇文章《GIS(五)——完成js版搜狗地图基本交互搜索功能》中,介绍了搜狗地图的关键字搜索功能,今天就实现以下另一个重要功能吧——那就是周边搜索功能。

       按照惯例,还是把官网上的示例代码给大家贴出来。飞机票在此。周边搜索的功能,跟关键字搜索其实是一样的,也是主要用到的了SearchRequest这个类,点击这里查看api文档。SearchRequest 对象规范:

属性 类型 说明
map Map 进行搜索的地图实例
renderer SearchRenderer 将结果进行渲染的对象。也可以通过setRenderer方法设置
range object 必选。表示查询范围。范围有多个属性,用于不同范围的查询{ city:城市<String>, boundFlag:0|2(0代表视野所在的城市内搜索; 2代表视野内搜索)<Number>, center:以中心点查询<LatLng |Point>, radius:以中心点进行查询时指定半径<Number>,limit:0|1(指定半径时有效,代表是否严格限制半径。0代表不限制,1代表限制)<Number> }
what object 必选。表示要查询的内容。有三个属性{ keyword:关键字<String>, classid:分类id<String>, id:uid或者dataid<String> }, 分类id:普通数字代表小类id,前缀加C_的代表大类id。查询时关键字与分类id 可以联合查询。id 只能单独查询,如果存在id属性,就只按id查询。 【查看所有分类id
clientid String 可选。为用户提供更稳定的服务。【查看详情

       从api文档中也可以看到,range这个参数是用来限定搜索范围的,而what制定查询内容的。所以只要我们想查什么,就要去找它的分类id,然后再进行检索。

       好了,要了解的也就这么多,接下来就是代码实现部分了。

       在原先的代码,添加一个对象,用来将结果渲染到右侧列表中:

var sRender_area;//搜索周边渲染对象
       在initialize方法中,添加创建周边搜索的渲染对象:
function initialize(){
  //....
  sRender=new sogou.maps.SearchRenderer();//创建搜索渲染对象
  sRender_area=new sogou.maps.SearchRenderer();//创建周边搜索渲染对象
}
       添加一个搜索周边的方法:
//搜索周边
function search_area(classid){
  clearMarker(sRender_area);//清除定位标记
  clearMarker(sRender);
  var request={
         'map':map,
         'what':{
              'classid':classid
         },
         'range':{
              'city':'北京',
              'center':new sogou.maps.Point(center.x,center.y),
              'radius':1000,
              'limit':1 //严格限制半径
         }
    };
  var search=new sogou.maps.Search();//创建搜索实例
  search.search(request);
  sRender_area=new sogou.maps.SearchRenderer({'panel':document.getElementById('result')});
  search.setRenderer(sRender_area);
}

       js都修改完了,添加上搜索周边的按钮:

<!--搜索周边-->
  <input type="button" onclick="search_area('1228,1403,1330,1332')" value="周边餐饮" />
  <input type="button" onclick="search_area('97,1264,1262')" value="周边公交" />
  <input type="button" onclick="search_area('83,1321,1259')" value="周边商场" />
  <input type="button" onclick="search_area('C_32')" value="周边酒店" />
  <input type="button" onclick="search_area('1261')" value="周边医院" />

       效果图如下:


点击这里到网站上查看

       周边搜索和关键字搜索都是同一个,只不过设定的参数不一致。而且我可以同时设定关键字和周边搜索,进行范围更小更精确的搜索。只是用的话,其实没什么太大的难度,只要按照官方的api文档和示例代码就可以了解怎么开发了。

       上面提到的都是从技术的角度来验证问题,如果真正使用的时候,最起码还是要提供智能提示的功能。界面也不能这么简陋,下一篇文章,我将解决这2个问题。敬请期待吧。


       

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/xiaoxian8023/article/details/39614855

共有 人打赏支持
白志华
粉丝 31
博文 265
码字总数 57524
作品 0
长沙
程序员
私信 提问
用javascript调用搜狗地图实现景点的显示

由于课程需要,最近做了搜狗地图服务的接入工作,要在地图上标注出景点位置,现略做总结,以备查阅。(部署该服务到Tomcat中的时候中文总是乱码,纠结了半天,最后不得不show in Eclipse) ja...

walk273
2013/05/28
0
0
各家地图公司地图开发API比较

各家地图公司地图开发API比较 一、谷歌地图API地址:http://code.google.com/apis/maps/ 基于Google Maps,能够使用 JavaScript 将 Google Maps 嵌入网页中。API 提供了大量实用工具用以处理...

睡得
2015/05/25
2.5K
5
基于Leaflet的地图GIS标记管理系统(面积、长度测量)

[概述] 本系统是基于Leaflet的地图GIS标注管理系统,基于在线的地图(支持离线地图),利用JavaScript实现画图(点、圆、多段线、多边形),能够实现面积测量、长度测量、能够实现标注对象的...

geliang123
2016/06/12
5
0
API文档链接汇总

JAVA J2SE 8.0 API文档 PHP PHP官网:在PHP官网搜索框中输入查询的方法,自动模糊匹配出搜索结果。 JavaScript W3school JavaScript参考手册 GIS地图引擎 JavaScript 百度地图API参考手册...

kklin
2015/04/10
13
1
CoreThink&OpenCMF技术分享之:谷歌地图接入

其实如果产品涉及到国外,那Mapbox也是一个很好的选择,Google map在国内毕竟无法正常使用,关于mapbox的分享后面可以再做一下。欢迎交流,开源互联网产品开发框架CoreThink 谷歌地图接入指南...

CoreThink
2016/05/11
395
0

没有更多内容

加载失败,请刷新页面

加载更多

tomcat线程模型

Connector结构 BIO模式 NIO模式

grace_233
24分钟前
1
0
Javascript

变量定义 以$,_,字母开头 大小写敏感 var 关键字声明变量 声明未赋值undefined 数据类型 字符串,数字,布尔,数组,NULL,undefined 变量均为对象 函数 无默认值 var声明的是局部变量 函数外声明...

关元
25分钟前
1
0
文件系统、服务、防火墙、SELINUX——安全四大金刚

一提到安全,大家都会想到防火墙,和文件系统权限。而实际工作环境中,我们在Linux的安全配置,会涉及到四个级别。我们思考一个场景,你要在百度盘中存放一个文件,这个动作需要考虑下面四个...

Linux就该这么学
26分钟前
1
0
从源码角度理解Java设计模式——门面模式

一、门面模式介绍 门面模式定义:也叫外观模式,定义了一个访问子系统的接口,除了这个接口以外,不允许其他访问子系统的行为发生。 适用场景:子系统很复杂时,增加一个接口供外部访问。 优...

我叫刘半仙
36分钟前
2
0
新鲜出炉,2019最新大厂面试题总汇!

在这个互联网技术快速迭代的时代,每个程序员都知道技术对于职业发展的重要性,那些技术好的程序员不仅薪资高,而且大多数集中在一线互联网企业工作,让人感觉非常高大上的同时,也想去大厂做...

Java架构资源分享
45分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部