var proj_map="EPSG:28416";
var extent=new OpenLayers.Bounds(16483540,6206440,16486660,6208850);
var map,basemap,marker;
var orgInfo=null;
var orgPos=null;
var orgInfoBlock=null;
function initMap(infoBlock){
orgInfoBlock=infoBlock;
OpenLayers.Control.Click=OpenLayers.Class(OpenLayers.Control,{
defaultHandlerOptions:{
'single':true,
'double':false,
'pixelTolerance':0,
'stopSingle':false,
'stopDouble':false},
initialize:function(options){
this.handlerOptions=OpenLayers.Util.extend({},this.defaultHandlerOptions);
OpenLayers.Control.prototype.initialize.apply(
this,arguments);
this.handler=new OpenLayers.Handler.Click(
this,{
'click':this.trigger},this.handlerOptions);},
trigger:function(e){
var lonlat=map.getLonLatFromViewPortPx(e.xy);
mouseLoc=map.getLonLatFromPixel(e.xy);
prm=new Object();
prm.x=lonlat.lon;
prm.y=lonlat.lat;
prm.w=map.size.w;
prm.h=map.size.h;
OpenLayers.loadURL("/map/subquery.php",prm,this,
function(transport){
var j=new OpenLayers.Format.JSON();
var json=j.read(transport.responseText.substr(transport.responseText.indexOf("{")));
if(!json)return false;
if(!json.addr)return false;
if(orgInfoBlock){
document.getElementById(orgInfoBlock).innerHTML=showResultExt(json.data,json.addr);}else{
if(marker)marker.destroy();
marker=new OpenLayers.Popup.FramedCloud("chicken",
map.getLonLatFromPixel(e.xy),
null,
showResult(json.data,json.addr,e.xy),
null,
true);
marker.autoSize=true;
marker.maxSize=new OpenLayers.Size(550,350);
marker.minSize=new OpenLayers.Size(100,50);
map.addPopup(marker);}},
function(){});}});
var mapOptions={
resolutions:[4,2.666666666,1.777777777,1.185185185,0.79],
projection:proj_map,
maxExtent:extent,
restrictedExtent:extent,
units:"m",
controls:[]};
map=new OpenLayers.Map('map',mapOptions);
basemap=new OpenLayers.Layer.WMS("Region","http://info.krasn.ru:8180/geowebcache/service/wms",{layers:'cache_kras_akadem',format:'image/png'},{tileSize:new OpenLayers.Size(256,256),projection:proj_map,maxExtent:extent,units:"m"});
map.addLayer(basemap);
var click=new OpenLayers.Control.Click();
map.addControl(click);
click.activate();
map.addControl(new OpenLayers.Control.Navigation());
map.addControl(new OpenLayers.Control.KeyboardDefaults());
map.addControl(new OpenLayers.Control.ScaleLine({bottomOutUnits:'',bottomInUnits:''}));
map.zoomToExtent(extent,true);}
function showResult(res,addr,pos){
orgInfo=res;
orgPos=pos;
html='<table style="font-size:10px; border-collapse:collapse;">';
html+='<tr><td style="font-size:12px;"><b>'+addr+'</b></td></tr>';
if(res){
for(i=0;i<res.length;i++){
html+='<tr><td><a href="#" onclick="showInfo('+i+');">'+res[i][0]+'</a></td></tr>';}}else{
html+='<tr><td>нет организаций</td></tr>';}
html+='</table>';
return html;}
function showInfo(i){
html='';
res=orgInfo[i];
html='<table style="font-size:10px; border-collapse:collapse;">';
html+='<tr><td style="font-size:12px;"><b>'+res[0]+'</b></td></tr>';
if(res[1]!='')html+='<tr><td>Телефон: '+res[1]+'</td></tr>';
if(res[2]!='')html+='<tr><td>www: <a href="'+res[2]+'" target="_blank">'+res[2]+'</a></td></tr>';
html+='</table>';
if(marker)marker.destroy();
marker=new OpenLayers.Popup.FramedCloud("chicken",
map.getLonLatFromPixel(orgPos),
null,
html,
null,
true);
marker.autoSize=true;
marker.maxSize=new OpenLayers.Size(550,350);
map.addPopup(marker);}
function showResultExt(res,addr){
html='';
html='<div style="font-size:14px;"><b><u>'+addr+'</u></b></div>';
html+='<div style="height:2px;"></div>';
if(res){
for(i=0;i<res.length;i++){
html+='<table style="font-size:12px; border-collapse:collapse;">';
html+='<tr><td style="font-size:12px;"><b>'+res[i][0]+'</b></td></tr>';
if(res[i][1]!='')html+='<tr><td>Телефон: '+res[i][1]+'</td></tr>';
if(res[i][2]!='')html+='<tr><td>www: <a href="'+res[i][2]+'" target="_blank">'+res[i][2]+'</a></td></tr>';
html+='</table>';}}else{
html+='<div style="font-size:12px;">нет организаций</div>';}
html+='<div style="height:2px;"></div>';
return html;}


