地图l拉框选房数据库如何建立
紧急求助:我在做一房产中介网站,要建一房源数据库,在地图上感兴趣位置拉框选房,之后即显示框中位置的租房及售房信息,http://bj. http://hz. 这二家网站做得很不错,但我不会,请
高手帮忙,重金酬谢,QQ:617744745 电话:13776855115
程序代码:
var g_XMLHTTP = null;
var g_fullURL = "";
var maps;
var api_url = "MapSearchAjax.aspx"; //查找动态页,设置二手房、租房等查找地址
var lx,sx,ly,sy,RentNum;
var control;
var kk=2;
otherlist="";
var RentType=-1;
var RentValue=0;
//拉框结束执行的查找操作
function doit(bounds)
{
otherlist="";
maps.clearOverLays();//去掉所有的标注
//document.getElementById("decr").style.display='none';//隐藏提示层
lx=bounds.getXmax();
sx=bounds.getXmin();
ly=bounds.getYmax();
sy=bounds.getYmin();
RentType=document.getElementById("zfRentType").value;
RentValue=document.getElementById("zfRentValue").value;
RentNum=document.getElementById("zfRentNum").value;
if(RentType!="")
otherlist+="&RentType="+RentType;
if(RentValue!="")
otherlist+="&RentValue="+RentValue;
if(RentNum!="")
otherlist+="&RentNum="+RentNum;
//发布时间
var RentDays=document.getElementById("RentDays").value;
if(RentDays!=0)
otherlist+="&Days="+RentDays;
search_map(bounds.getXmax(),bounds.getXmin(),bounds.getYmax(),bounds.getYmin(),1,otherlist)
startit(document.getElementById("Map_Btnimg"));
}
//设置点击按钮的操作。切换点击按钮的html
function startit(obj)
{
if(obj.src.toLowerCase().indexOf('startsearch.gif') != -1)
obj.src="images/endsearch.gif";
else
obj.src="images/startsearch.gif";
control.btnClick();
}
//初始化地图
function initMap()
{
maps = new LTMaps("mapDiv");//指定地图放到那个层
maps.cityNameAndZoom( CurrentCity , 6 );//设置中心
maps.handleKeyboard(); //键盘操作支持
maps.handleMouseScroll();//鼠标滚轮支持
maps.addControl(new LTStandMapControl());
control = new LTZoomSearchControl(); //建立新的拉框查找控件
maps.addControl(control); //添加控件到地图
control.setVisible(false);//隐藏拉框控件按钮
var div=document.createElement("DIV");
div.style["position"]="absolute";;
div.style["zIndex"]="100000";
div.innerHTML='<img src="images/startsearch.gif" id="Map_Btnimg" style="cursor:pointer" onclick="startit(this);"/>';
var HEC = new LTHtmlElementControl(div);
HEC.setRight("15px");
HEC.setTop("15px");
maps.addControl(HEC);
LTEvent.addListener(control,"mouseup",doit); //设置在用户拉框完成之后执行do
}
//设置鼠标经过标注时显示信息浮窗,离开时关闭浮窗
function openInfoWin(marker,html,title)
{
return function(){
var win= this.openInfoWinHtml( html );
win.setTitle(title);
win.moveToShow();
//win.closeInfoWindowWithMouse(); //定义在鼠标移出时关闭信息浮窗
}
}
//拉框查找
var errmsg;
var ppp;
//查找地图
//参数说明lx: x最大 sx:x最小,ly:y最大,sy:y最小,index:页码
function search_map(lx,sx,ly,sy,index,other)
{
sendRequest(setPatchPoi,api_url+"?lx="+lx+"&sx="+sx+"&ly="+ly+"&sy="+sy+"&p="+index+other);
otherlist=other;
//errmsg="/map/SearchMap.aspx?lx="+lx+"&sx="+sx+"&ly="+ly+"&sy="+sy+"&p="+index;
ppp=index;
}
function search_map1(lx1,sx1,ly1,sy1,index,other)
{
if(kk==1)
{
sendRequest(setPatchPoi,api_url+"?lx="+lx1+"&sx="+sx1+"&ly="+ly1+"&sy="+sy1+"&p="+index+other);
otherlist=other;
//errmsg="/map/SearchMap.aspx?lx="+lx+"&sx="+sx+"&ly="+ly+"&sy="+sy+"&p="+index;
lx=lx1;
ly=ly1;
sx=sx1;
sy=sy1;
ppp=index;
kk=2;
}
}
var html=[];
var title=[];
var points=[];
var marknumber;
for(var iiii=0;iiii<20;iiii++)
{
eval(" var marker"+iiii+"; ")
}
//批量在地图上添加找到的标注
function setPatchPoi(pois)
{
maps.clearOverLays();//去掉所有的标注
var arrydate0 = pois.split("*%&^");//先分割出
document.getElementById("resultlist").innerHTML=arrydate0[1];
points=[];//清空后填充
var arrydate = arrydate0[0].split("{$}");//先分割出
if(maps==null)
alert("没有地图");
var x=[];
var y=[];
icon1 = new LTIcon();
//再次分割并且初始化标注点
marknumber=arrydate.length;
for(var i=0;i<arrydate.length-1;i++)
{
var temparry=arrydate[i].split(",");
//租房
x[i] = temparry[0];
y[i] = temparry[1];
html[i]= "<p><a href='detail.aspx?ID="+temparry[3]+"' target='_blank'>"+temparry[7]+"</a></p><p>"+temparry[4]+"元/月</p><p>类型:"+temparry[5]+"</p>";
title[i]="<font style='font-size:12px'>"+temparry[2]+"(<a href='detail.aspx?ID="+temparry[3]+"' target='_blank'>查看详情</a>)</font>";
icon1.setImageUrl("images/Mark_Company.gif");
points.push(new LTPoint( parseInt(x[i]) , parseInt(y[i]) ));
eval(" marker"+i+" = new LTMarker( points["+i+"] ,icon1);");
eval("maps.addOverLay( marker"+i+" ); ");
eval("LTEvent.addListener( marker"+i+" , \"mouseover\" ,openInfoWin(marker"+i+",html["+i+"],title["+i+"]));");
}
//同时把查找条件发送到iframe中,实现翻页
maps.getBestMap(points);//将地图定位到最佳视图
}
//当没有结果的时候清掉之前的结果
function clearresult()
{
document.getElementById("resultlist").innerHTML='<h2 style="margin-left:370px;margin-top:30px">暂无搜索结果</h2>';
}
//滑动实现地图中心移动到标注位置。
function gotocenter(i)
{
maps.moveToCenter(points[i]);//滑动实现地图中心移动到标注位置。
eval("var infoWin=marker"+i+".openInfoWinHtml(html["+i+"]);"); //在该标记上显示一个信息浮窗
eval("infoWin.setTitle(title["+i+"]);") //设置该信息浮窗的标题内容
window.scrollTo(0,246);
}
function getXMLHTTPRequest() {
if (g_XMLHTTP)
{
g_XMLHTTP = null;
}
try
{
g_XMLHTTP = new ActiveXObject("Msxml2.xmlhttp");
}
catch (e)
{
try
{
g_XMLHTTP = new ActiveXObject("Mcrosoft.xmlhttp");
}
catch (e2)
{
g_XMLHTTP = false;
}
}
if (!g_XMLHTTP && typeof XMLHttpRequest != "undefined")
{
try
{
g_XMLHTTP = new XMLHttpRequest();
}
catch (e)
{
g_XMLHTTP = false;
}
}
}
var data ;
function sendRequest(callback,url){
getXMLHTTPRequest();
var bakresult=document.getElementById("result");
if(document.getElementById("rentmapfinally").style.display=="none")
document.getElementById("rentmapfinally").style.display="";
if (g_XMLHTTP){
g_XMLHTTP.open("GET",url,true);
g_XMLHTTP.setRequestHeader("Content-Type","text/html;charset=gbk");
g_XMLHTTP.setRequestHeader("Cache-Control","no-store, no-cache, must-revalidate");
g_XMLHTTP.onreadystatechange = function()
{
if(g_XMLHTTP.readyState == 1)
{
bakresult.style.display="";
bakresult.innerHTML="<img src=\"images/map/load01.gif\" />正在加载";
}
if(g_XMLHTTP.readyState == 2|| g_XMLHTTP.readyState==3)
{
bakresult.style.display="";
bakresult.innerHTML="<img src=\"images/map/load01.gif\" />正在搜索";
}
if (g_XMLHTTP.readyState == 4)
{
if (g_XMLHTTP.status == 200)
{
data=g_XMLHTTP.responseText;
if (data == "-1")
{
bakresult.innerHTML="搜索条件为空";
clearresult();
return false;
}
if (data == "-2")
{
bakresult.innerHTML="没有符合条件的结果";
clearresult();
return false;
}
if (data == "-3")
{
bakresult.innerHTML="服务器繁忙";
clearresult();
return false;
}
bakresult.innerHTML="<img src=\"images/map/load01.gif\" />正在处理";
callback(data);
bakresult.style.display="none";
data = "";
}
else
{
bakresult.innerHTML="取出内容时出错";
clearresult();
}
}
}
g_XMLHTTP.send(null);
return true;
}
else
{
alert("建立对象出错");
}
return false;
}