Код: Выделить всё
type=WMS
url=http://plazoom.ru/cgi-bin/mapserv?MAP=/var/www/daler/data/www/plazoom.ru/ufakarta/ufa_all.map&
extension=png
layers=granicy_region,rayeny_region_ontitle,teritoria_kvartalov_region,sadovye_uchastki_region,zelonye_lesa_region,vadaem,kladbisha_region,mosty_and_truby_region,reki_region_notitle,mosty_and_truby_polyline,shosse_bottom_polyline,avtotrassy2_bottom_polyline,avtotrassy_polyline_12,avtotrassy2_polyline,avtotrassy_polyline567,avtotrassy_polyline_34,avtotrassy_bottom_k_34,avtotrassy_bottom_k_12,avtotrassy_bottom_k_567,strit_notitle,shosse_polyline4567,strit_big_podlojka,strit_big_osnova,stroeneie_region_notitle2,stroeneie_uchebki_notitle,stroeneie_region5,stroeneie_region6,stroeneie_region7,avtostayanki_region,sport_stroenie_region,rynki_region,parki_region,strit3,strit_title_other,strit_big_title,stroeneie_uchebki5,stroeneie_uchebki6,stroeneie_uchebki7
srs=EPSG:900913
bbox=-18673.953, -31136.298, 21526.319, 24312.353
size=256,256
resolutions=74.20494699646643, 30.3886925795053, 12.36749116607774, 4.946996466431095, 2.100353356890459, 0.8614840989399293, 0.353356890459364,226.093198,92.590548,37.682200,15.072880,6.399514,2.624834,1.076634
metaTile=true
metaSize=5,5
metaBuffer=100
extent_type = loose
Код: Выделить всё
var lon = 3000;
var lat = 0;
var zoom = 4;
var map, layer;
function init(zoom_level, nomer, searchGo)
{
document.getElementById('map').innerHTML = '';
if(map)
{
// map.destroy();
// map = null;
}
if (nomer && nomer > 0 && nomer <= zoom_level)
{
OpenLayers.DOTS_PER_INCH = 72;
var options = {
// maxScale: 1000,
//minScale: 210000,
numZoomLevels: zoom_level,
panEnabled: true,
minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
maxExtent: new OpenLayers.Bounds(-18673.953, -31136.298, 21526.319, 24312.353),
projection: "EPSG:900913",
controls: [new OpenLayers.Control.MouseDefaults(),
],
units: 'm',
resolutions: [74.20494699646643, 30.3886925795053, 12.36749116607774, 4.946996466431095, 2.100353356890459, 0.8614840989399293, 0.353356890459364],
};
map = new OpenLayers.Map( 'map' , options);
map.addControl(new OpenLayers.Control.PanZoomBar());
map.addControl(new OpenLayers.Control.MousePosition());
layer = new OpenLayers.Layer.WMS( "WMS", "/cgi-bin/tilecache.cgi?", {layers: 'basic', format: 'image/png'} );
var popup = null;
info = new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://plazoom.ru/cgi-bin/tilecache.cgi?',
title: 'Описание объекта',
infoFormat: 'application/vnd.ogc.gml',
layers: [layer],
vendorParams: {map: '/var/www/daler/data/www/plazoom.ru/ufakarta/ufa_all.map'},
output: "object",
queryVisible: true,
eventListeners: {
getfeatureinfo: function(event) {
if (!event.text.match(/<body>\s*<\/body>/)) //проверка: ответил ли сервер на запрос
{
if (popup) //проверка: существуют ли popup'ы на карте, если да, то закрываем
{
popup.destroy();
popup = null;
}
popup = new OpenLayers.Popup.FramedCloud(
"chicken",
map.getLonLatFromPixel(event.xy),
null,
event.text,
null,
true
);
map.addPopup(popup);
}
}
}
});
map.addControl(info);
info.activate();
//////////////////////////////////////
if(searchGo==1)
{
if(markers)
{
markers.destroy();
markers = null;
}
var markers = new OpenLayers.Layer.Markers( "Markers" );
var req = new JsHttpRequest();
req.onreadystatechange = function() {
if (req.readyState == 4) {
listObjects = req.responseJS.listObjects;
document.getElementById('map_1').innerHTML = req.responseText;
for (opt in listObjects){
// document.getElementById('map_1').innerHTML += opt+': '+listObjects[opt].x+', '+listObjects[opt].x+'<br />';
var x = listObjects[opt].x; var y= listObjects[opt].y; var strit = listObjects[opt].address;
var size = new OpenLayers.Size(21,25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('http://www.openlayers.org/dev/img/marker.png', size, offset);
var feature = new OpenLayers.Feature(markers, new OpenLayers.LonLat( x,y));
feature.closeBox = true;
feature.popupClass = OpenLayers.Class(OpenLayers.Popup.AnchoredBubble, {minSize: new OpenLayers.Size(300, 180) } );
feature.data.popupContentHTML = strit;
feature.data.overflow = "hidden";
var marker = new OpenLayers.Marker(new OpenLayers.LonLat(x,y), icon);
marker.feature = feature;
var markerClick = function(evt) {
if (this.popup) //проверка: существуют ли popup'ы на карте, если да, то закрываем
{
this.popup.destroy();
this.popup = null;
}
if (this.popup == null) {
this.popup = this.createPopup(this.closeBox);
map.addPopup(this.popup);
this.popup.show();
} else {
this.popup.toggle();
}
OpenLayers.Event.stop(evt);
};
marker.events.register("mousedown", feature, markerClick);
markers.addMarker(marker);
}
}
}
req.open(null, 'http://plazoom.ru/index.php?option=com_content&controller=content&task=getSearchResult', true);
req.send( { q: document.getElementById('minisearchform') } );
map.addLayer(markers);
}
map.addLayer(layer);
map.setCenter(new OpenLayers.LonLat(lon, lat), zoom);
map.zoomToMaxExtent();
map.zoomTo(nomer - 1);
}
}
init(7, 2,0);
при тыкание на карту выводит такую информацию: An error occurred: Current x value -10425.407106 is too far from tile corner x -18673.953000
как решить данную проблему?