
﻿
function FreestaParam(getParams){var valueArray=new Array();{var nCur=0,nRet=0;var sSearch=getParams.substr(1);var sName,sValue;nRet=sSearch.indexOf('=',nCur)
while(nRet>=0){sName=sSearch.substring(nCur,nRet);nCur=nRet+1;nRet=sSearch.indexOf('&',nCur);if(nRet==-1)nRet=sSearch.length+1;sValue=sSearch.substring(nCur,nRet);valueArray[sName]=sValue;nCur=nRet+1;nRet=sSearch.indexOf('=',nCur);}}
this.get=function(name){try{return valueArray[name];}catch(e){return null;}}
this.length=function(){return valueArray.length;}
this.toString=function(){return this.length+'';}}
function FreestaService(areacode,isASP)
{var _areacode=areacode;var _isASPVal=(isASP==true)?1:0;this.getAreaMaps=function(success,error)
{var param="area="+_areacode+"&type=area_maps"+"&isasp="+_isASPVal;param+='&t='+GEFunctions.getRandomString();var http=new GEXmlHttp("./rest/MapService.aspx","GET",param);http.beginExecute(success,error);http=null;}
this.getUserMaps=function(user_id,success,error)
{var param="area="+_areacode+"&type=user_maps&user_id="+user_id;param+='&t='+GEFunctions.getRandomString();var http=new GEXmlHttp("./rest/MapService.aspx","GET",param);http.beginExecute(success,error);http=null;}
this.getAddressInfo=function(p,success,error)
{var param="area="+_areacode+"&type=address_info&x="+p.x+"&y="+p.y+"&isasp="+_isASPVal;var http=new GEXmlHttp("./rest/GeocoderService.aspx","GET",param);http.beginExecute(success,error);http=null;}
this.searchByKeyword=function(key,limit,success,error)
{var layerlist="";for(var i=0;i<_openLayerSidList.length;i++)
{if(_openLayerStatus[i]!=0)
{if(layerlist!="")layerlist+=",";layerlist+=_openLayerSidList[i];}}
if(_isASP)
{for(var i=0;i<_layerSidList.length;i++)
{if(_layerStatus[i]!=0)
{if(layerlist!="")layerlist+=",";layerlist+=_layerSidList[i];}}}
var param="area="+_areacode+"&type=search_poi&limit="+limit+"&key="+escape(key)+"&isasp="+_isASPVal+"&targetlayer="+layerlist;var http=new GEXmlHttp("./rest/GeocoderService.aspx","GET",param);http.beginExecute(success,error);http=null;}
this.getPrintBounds=function(user_id,x,y,scale,rotate,paper,landscape,title,success,error)
{var param="area="+_areacode+"&type=bounds&user_id="+user_id+"&x="+x+"&y="+y+"&sc="+scale+"&rt="+rotate+"&paper="+paper+"&landscape="+landscape+"&title="+title;var http=new GEXmlHttp("./rest/PDFService.aspx","GET",param);http.beginExecute(success,error);http=null;}}
function setLandMarkLayer()
{if(_markMemoryLayerVisible==false)return;var map=new GEDynamicMap(_areaConfig.landmark_ws[0].dynamic_url,_areaConfig.landmark_ws[0].ws_id,_areaConfig.landmark_ws[0].name);if(_markMemoryLayer==null)
{_markMemoryLayer=_view.createMemoryLayer("landmark");}
else
{_markMemoryLayer.clear();}
var level=_view.getLevel();if(level<4)
{var layers=map.getLayers();if(layers!=null&&layers.length>0)
{var expression=new GEFeatureExpression();var range=_view.getRange();expression.spatial=GESpatialCondition.mbrIntersects(range);for(var i=0;i<layers.length;i++)
{layers[i].queryFeatureAsync(expression,function(features){if(features!=null&&features.length>0)
{_markMemoryLayer.hide();for(var j=0;j<features.length;j++){if(features[j].geometry==null)continue;_markMemoryLayer.add(features[j].geometry,features[j].layer.property,"MEMORY_LAYER_KEY",false);if(level<3)
{appendTextString(_markMemoryLayer,features[j].geometry.textString,features[j].geometry);}}
_markMemoryLayer.show();}});}}}}
function appendTextString(memoryLayer,textStr,geom)
{var bound=geom.getBoundary();var text=new GEGPoint(bound.getCenter());text.textString=textStr;var textProperty=new GETextProperty();textProperty.fontColor=new GEColor(0,0,0);textProperty.fontSize=12;textProperty.offset=new GESizeD(0,+16);textProperty.backColor=new GEColor(255,255,220);memoryLayer.add(text,textProperty,"LANDMARK",false);}
function setCurrentUrl()
{if(document.getElementById("url")!=null)
{var baseUrl=document.URL;var pos=baseUrl.indexOf('?',0);if(pos>=0){baseUrl=baseUrl.substring(0,pos);}
baseUrl=baseUrl.replace("map_asp.aspx","map.aspx");var control=document.getElementById("cboWorkspace");var mapId=control.options[control.selectedIndex].value;var cp=_view.getCenter();var level=_view.getLevel();if(_isASP)level--;if(level==0)level=1;var params='area='+_areacode+'&m='+mapId+'&x='+Math.round(cp.x)+'&y='+Math.round(cp.y)+'&lv='+level;var url=document.getElementById("url");url.value=baseUrl+'?'+params;url.select();}}
function getLayerLabelName()
{var val=document.getElementById("layer_label_name").value;return val;}
function escapeSqlString(text)
{var ret="";for(var i=0;i<text.length;i++)
{var c=text.substr(i,1);if(c=="\'")
{c="\\\'";}
ret=ret+c;}
return ret;}
