发明内容:
为达到上述目的,本发明提供了一种房源搜索系统,包括服务器、若干与服务器连接的客户端;
所述客户端内能够显示电子地图,并设置有图形信息采集模块、通勤信息输入模块;其中:
所述图形信息采集模块用于用户在电子地图上画出任意封闭图形后采集封闭图形信息传输给服务器;
所述通勤信息输入模块用于用户输入通勤信息,并将通勤信息传输给服务器;
所述服务器设置有API连接到电子地图提供商,以获取电子地图数据,并设置有存储模块、图形房源匹配模块、通勤房源信息匹配模块;
所述存储模块内设置有预先设定的行政区域内楼盘相关信息、交通信息;
所述图形内房源匹配模块用于根据所接收的封闭图形信息,匹配该封闭图形内的房源信息;
所述通勤信息匹配模块用于根据用户输入的房源要求相关信息,匹配到合适的房源。
进一步的,所述图形内房源匹配模块的工作流程为:
步骤一:根据封闭图形信息,计算获得能够容纳封闭图形上、下、左、右四个方向上端点的最小面积图形;
步骤二:获取最小面积图形边缘的经纬度信息;
步骤三:服务端顺次匹配楼盘,匹配要求是:最小经度<=楼盘经度<=最大经度,最小纬度<=楼盘纬度<=最大纬度,所有匹配得楼盘信息组成初级匹配楼盘的信息;
步骤五:判断步骤四的初级匹配楼盘的地理位置是否在所画封闭图形区域内,如是,则判断为最终匹配楼盘信息,否则不为最终匹配楼盘信息;
步骤六:返回最终匹配楼盘信息到客户端。
进一步的,通勤信息匹配模块的工作流程为:
步骤一:接收通勤信息,包括通勤起点、出行方式、通勤时间上限;
步骤二:计算各个楼盘距离通勤起点的通勤时间,判断通勤时间是否小于或者等于通勤时间上限;
步骤三:筛选出通勤时间小于或者等于通勤时间上限的楼盘信息。
进一步的,通勤信息输入模块的工作流程中,步骤二采用并发请求的方式计算各个楼盘距离通勤起点的通勤时间。
进一步的,所述客户端设置有用户选择功能模块,用于用户根据系统展示的楼盘信息,选择一个或者多个楼盘;服务器还设置有资料包生成模块,所述资料包生成模块用于根据用户的需求信息匹配出的楼盘推荐信息打包发送到客户端或者根据用户选择的楼盘生成资料包。
进一步的,所述客户端还设置有自定义地图显示模块,服务器设置有楼盘距离计算模块;
所述自定义地图显示模块用于用户根据需要,自定义一种或者多种楼盘适配距离数值;
所述楼盘距离计算模块用于计算各个楼盘与其余楼盘之间的距离,并形成符合适配距离要求的楼盘组。
进一步的,客户端还设置打印模块,用于打印选定区域的电子地图,打印出来的地图上能够显示符合适配距离要求的楼盘信息。
进一步的,楼盘距离计算模块的工作流程为:
步骤一:选择某个楼盘作为起点楼盘;
步骤二:将起点楼盘的经、纬度值分别转化为经度坐标lat1、纬度坐标long1;lat1=起点经度/(180/pi);long1=起点纬度/(180/pi),其中,pi为圆周率;
步骤三:选定终点楼盘,该终点楼盘所在位置的经、纬度值分别转化为经度坐标lat2、纬度坐标long2;lat2=起点经度/(180/pi);long1=起点纬度/(180/pi);pi为圆周率;
步骤四:计算间距d;
d=E*arccos[(sin(lat1)*sin(lat2))+cos(lat1)*cos(lat2)*cos(long2-long1)]
其中,E是地位半径;
步骤五:判断间距d是否为符合预设的适配距离条件,符合的话则将终点楼盘信息与对应适配距离种类进行匹配;
步骤六:重复执行步骤三~五,直到得到每个楼盘与起点楼盘的距离,距离符合某个适配距离则形成一个对应于该适配距离的楼盘组;
步骤七:重复执行步骤一~六,直到遍历完所有楼盘为起点楼盘。
进一步的,所述楼盘距离计算模块在执行完步骤六之后,还需要进行楼盘去重步骤,具体为:遍历各个楼盘组,将该楼盘组与其余楼盘组顺次比较,判断两者是否有相同楼盘,如果有相同楼盘,则将这两个楼盘组合为一个楼盘组;重复执行,直到各个楼盘组无重叠楼盘。
进一步的,所述客户端还设置有区域房源信息展示模块,用于展示预定行政区域内楼盘信息,包括区域名称、楼盘数量、均价。
本发明的有益效果为:
本发明提供了一个多维度、扩展性强的找房工具,并交通通勤数据分析采用并发请求来提高响应速度,还可通过自定义属性可配置楼盘信息,从而达到信息的准确性。
本系统设置有多种功能模块,实现了地图多样筛选(如通勤找房,封闭图形找房、房源条件检索等),并可实现楼盘对比、单楼盘的多楼盘资料包的推送、在建交通、拿地信息、周边配套、纸质地图等。
具体实施方式:
本发明所述的一种房源搜索系统,包括服务器、若干与服务器连接的客户端。下面分别介绍。
一.服务器
所述服务器设置有API连接到电子地图提供商,以获取电子地图数据,作为其余功能实现的配套地图,并能获得相关计算支持。服务器还设置有存储模块、图形房源匹配模块、通勤房源信息匹配模块、资料包生成模块。
a.存储模块
所述存储模块内设置有预先设定的行政区域(如北京市)内楼盘相关信息、交通信息(如已建或者在建信息),还可以包括拿地信息。拿地信息、在建地铁、楼盘信息都是由导入脚本批量录入。楼盘相关信息包括楼盘自身信息,如户型、点评、动态(如开盘时间、楼盘当前动态、证件信息)、周配套边、通勤路线、建筑面积、单价、总价、首付、月供、朝向、容积率等等,还优选包括楼盘咨询师的个人资料、上传的楼盘信息等(如楼盘点评、周边配套信息、样板间照片、效果图等)。
b.图形内房源匹配模块
所述图形内房源匹配模块用于根据所接收的封闭图形信息,匹配该封闭图形内的房源信息。
所述图形内房源匹配模块的工作流程为:
步骤一:根据封闭图形信息,计算获得能够容纳封闭图形在上、下、左、右四个方向上端点的最小面积图形;最小面积图形一般为四边形。
步骤二:获取最小面积图形边缘的经纬度信息;
步骤三:服务端顺次匹配楼盘,匹配要求是:最小经度<=楼盘经度<=最大经度,最小纬度<=楼盘经度<=最大纬度,匹配得到的信息集合为初级匹配楼盘的信息;
步骤五:采用射线法算法(该算法是百度提供的工具类,属于现有技术),判断点面的关系,进而判断步骤四的初级匹配楼盘的地理位置是否在所画封闭图形区域内,如是,则判断匹配,否则不匹配;本步骤匹配得到的信息为最终的匹配楼盘信息。
步骤六:返回最终的匹配楼盘信息到客户端。此时客户端就会在电子地图上直接显示对应楼盘信息。
c.通勤房源信息匹配模块
所述通勤信息匹配模块用于根据用户输入的房源要求相关信息,匹配合适的房源。其工作流程为:
步骤一:接收通勤信息,包括通勤起点、出行方式(如地铁)、通勤时间上限(如30分钟);
步骤二:计算各个楼盘距离通勤起点的通勤时间,判断通勤时间是否小于或者等于通勤时间上限;
步骤三:根据步骤二所获取楼盘信息的经纬度并发请求百度地图通勤API,获取每个楼盘距离该地点的通勤时间;
步骤四:筛选出通勤时间小于或者等于通勤时间上限的楼盘信息。
d.资料包生成模块
所述资料包生成模块用于根据用户的需求信息匹配出的楼盘推荐信息打包发送到客户端。
资料包的概念就是将多个楼盘的资料集成到一个包中供用户参考,资料包中包含用户需求信息、楼盘价格、楼盘详细信息、通勤路线、周边配套、楼盘优劣势分析、楼盘户型图效果图、为其服务的咨询师资料。在生成资料包前,服务器端推送多个楼盘的属性信息(建筑面积、单价、总价、首付1、月供、朝向、容积率等等),然后用户自定对比后,选出1个或者若干几个符合心意的楼盘,由服务器生成资料包返回给客户端。
资料包中包含房贷计算器,以及根据首付比例、贷款年限、利率这三个因素和楼盘户型总价进行运算从而得到该户型的首付款和月供信息。
资料包中还会列出其中楼盘的物业信息、物业费、容积率、绿化率。
为了减少日常生活中楼盘咨询师的确认工作,服务器还保存有同一楼盘咨询师自定义过的楼盘信息数据,在下次进行资料打包的时候会自动带入该用户所选择咨询师对楼盘的评价信息(客户端设置有咨询师选择模块),如果该楼盘信息有变动,咨询师可以重新自定义。
资料包中的多个楼盘根据用户需求中的地址或选定的地址,通过百度API获取的信息,经过数据拆分和分析得出每个楼盘距离该地址自驾时间、路线、和乘坐公共交通的时间及路线,相当于整合了之前地图中通勤的功能。
周边配套信息的获取手段是通过百度API或者其他现有手段抓取到每个楼盘周边的商场、医院、学校等配套信息。有些通过百度API获取不到的信息可以通过楼盘咨询师进行自定义设置录入到系统中,使周边配套的信息更加完善,如周边二手房的信息、楼盘样板间图片和效果图或者楼盘咨询师自定义上传的图片。
资料包中还优选包括咨询师个人资料及买房问答,在资料包中展示为客服服务的咨询师资料,及该咨询师对资料包中楼盘和客户之间的问答,还有其他客户对该咨询师进行的点评。
以上提及的各种信息都由存储模块进行存储。
二、客户端
所述客户端内能够显示电子地图,并设置有图形信息采集模块、通勤信息输入模块画圈找房模块,优选设置有区域房源信息展示模块、通勤模式展示模块、用户选择功能模块、自定义功能模块、纸质地图模块。
所述图形信息采集模块用于用户在电子地图上画出任意封闭图形,并将封闭图形信息传输给服务器。
所述通勤信息输入模块用于用户输入通勤信息,并将通勤信息传输给服务器。如,用户在客户端标注出行起点(如现居住地/上班地)、出行方式,可接受的通勤时间(如30分钟)。
区域房源信息展示模块用于展示预定行政区域内楼盘的数量、均价。本实施例中,预定行政区域为城市的区、县(例如海淀区、朝阳区),每个区、县都对应一个气泡,气泡内展示该行政区域内楼盘的数量、均价、区域名称等信息,如东城区,共1009个楼盘,均价78900元。当点击某个气泡的时候,会展示所有位于对应区域内所有楼盘的信息。实现这样技术效果所采用的技术手段是:录入楼盘信息,并对其赋予区域属性,即区域ID,不需要根据地图边界确定楼盘,直接按区域ID进行分组统计的。
通勤模式展示模块是服务器通过百度API实时计算出从用户选定的位置到楼盘的驾车时间,并通过获取的经纬度在地图上画出驾车路线,还有公交模式算出乘坐公交时间及路线,票价,并通过获取的经纬度在地图上画出行驶路线。
用户选择功能模块,用于用户根据系统展示的楼盘信息,选择一个或者多个符合心意的楼盘去生成资料包。
自定义功能模块一般由具有定义权限的楼盘咨询师使用,用于其对楼盘信息进行编辑,同一咨询师自定义过的楼盘信息数据不会丢失,在下次进行资料打包的时候会自动带入该楼盘上次其编辑的信息。咨询师还可以编辑一些自定义的信息或者网络无法获取的信息到系统里,如周边配套信息、周边二手房信息(均价、拿地价)、专业人士对楼盘的评价信息、楼盘图片信息,使得楼盘信息更加完善。其中,周边二手房的信息是通过分析得出每个楼盘周边的二手房均价及拿地价,让用户能很清晰的知道该楼盘的商业价值及发展情况。
作为对现有技术的另外贡献,本申请还提供了纸质地图功能,可以打印城市地图,并可以通过自定义的一些配置在上面展示出相应楼盘信息。具体实现方式如下:
客户端设置有自定义地图显示模块、打印模块,服务器设置有楼盘距离计算模块。
所述自定义地图显示模块用于用户根据需要,自定义一种或者多种楼盘适配距离数值;如0.5、0.9、1.08、1.36公里。
所述楼盘距离计算模块用于计算各个楼盘与其余楼盘之间的距离,并形成出符合适配距离要求的楼盘组。
打印模块用于打印选定区域的电子地图,打印出来的地图上能够显示符合适配距离要求的楼盘信息。
楼盘距离计算模块的工作流程为:
步骤一:选择某个楼盘作为起点楼盘;
步骤二:将起点楼盘的经、纬度值分别转化为经度坐标lat1、纬度坐标long1;lat1=起点经度/(180/pi);long1=起点纬度/(180/pi),其中,pi为圆周率;
步骤三:选定终点楼盘,该终点楼盘所在位置的经、纬度值分别转化为经度坐标lat2、纬度坐标long2;lat2=起点经度/(180/pi);long1=起点纬度/(180/pi);pi为圆周率,值是22/7;
步骤四:计算间距d;
d=E*arccos[(sin(lat1)*sin(lat2))+cos(lat1)*cos(lat2)*cos(long2-long1)]
其中,E是地球半径,当d的单位是英里时,E取值为3,963(地球的半径,单位为英里)当d的单位为千米时,E的取值为6,378.8(地球的半径,单位为千米)需要说明的是,地球半径换算为千米的话,应该是6377.830272,本实施例为了计算方便,四舍五入为6378。
步骤五:判断间距d是否为符合预设的适配距离条件,符合的话则将终点楼盘信息与对应适配距离种类进行匹配;
步骤六:重复执行步骤三~五,直到得到每个楼盘与起点楼盘的距离,距离符合某个适配距离则形成一个对应于该适配距离的楼盘组;
步骤七:重复执行步骤一~六,直到遍历完所有楼盘作为起点楼盘。
优选的,执行完步骤六后,相近楼盘算完之后还需要遍历各个楼盘组,将各个楼盘组与其余楼盘组顺次比较,判断组内是否有相同楼盘,如果有相同楼盘,则将这两个楼盘组合为一个楼盘组;重复执行,直到各个楼盘组无重叠楼盘。进一步的,算法规则为:首先查询出城市中所有的楼盘经纬度,定义一个无限次循环的方法,之所以这么定义的原因就是因为最初不清楚最终需要循环的次数,需要一直到循环计算到发现没有重叠数据了才会最终跳出循环并结束该方法的执行,
结束算法后得出一个城市中各个不相互重的楼盘组数据信息展示在地图上,每种适配距离展示不同的文案(最小的展示标题和楼盘业态、依次展示标题+价格、标题+价格+业态、标题+价格+业态+面积),重复楼盘组的楼盘通过鼠标拖拽进行位置更换,此时存入该楼盘最新的经纬度信息,之后并会通过技术手段在地图上画一个箭头指向楼盘原来所在位置进行标注,这样可以分门别类的把房源信息归整到一起。