Ошибка JavaScript в Internet Explorer (OpenLayers)

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Ошибка JavaScript в Internet Explorer (OpenLayers)

Сообщение Rex »

Есть карта города, построенная на MapServer+OpenLayers. В Opera, FireFox, Google Chrome все прекрасно работает. А Internet Explorer при открытии карты не отображает ее, при этом выдается ошибка:

Код: Выделить всё

Сведения об ошибке на веб-странице

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
штамп времени: Mon, 8 Feb 2010 05:29:14 UTC


Сообщение: 'null' -  есть null или не является объектом
Строка: 546
Символ: 309
Код: 0
URI-код: http://ugo.su/modules/map/OpenLayers.js

Если невидимую карту сдвинуть, то изображение появляется. При этом даже работает поиск объекта. Но вот эта ошибка все портит — большинство пользователей пользуется IE, и не увидев карты при открытии страницы они, скорее всего, просто закроют ее :(

Вот кусок скрипта со страницы, отвечающий за формирование карты:

Код: Выделить всё

      OpenLayers.loadURL('search.php?q=show','',this,ShowSearch);
      var link = "http://map.ugo.su/cgi-bin/mapserv?map=map/ugo.map&";
      var size = new OpenLayers.Size(400,300);


	var options = {
                            numZoomLevels: 3,
                            minResolution: "auto",
                            minExtent: new OpenLayers.Bounds(-1, -1, 1, 1),
                            maxResolution: "auto",
                            maxExtent: new OpenLayers.Bounds(-33, 0, 0, 29),
                            projection: "epsg:4326",
                            units: "m",
			    tileSize: size
                          };
        var map = new OpenLayers.Map('map', options);
        var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS", link, {layers:'streets,blocks,greens,builds', format: 'gif'},{singleTile: true});
        map.addLayer(wms);
Подозреваю, что нелады с параметрами карты (скорее всего что-то с extent'ом). Но что именно?
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Ошибка JavaScript в Internet Explorer (OpenLayers)

Сообщение Mavka »

В Firebug никаких варнингов?
Раз ошибка в OpenLayers.js - то возьмите несжатый вариант OL и посмотрите на какую строку ругается.
minExtent - ни разу его не указывал.
units - для 4326 должен быть dd?
лангольеры под окном жрали время ом-ном-ном
Rex
Интересующийся
Сообщения: 19
Зарегистрирован: 16 фев 2009, 15:43
Репутация: 0

Re: Ошибка JavaScript в Internet Explorer (OpenLayers)

Сообщение Rex »

minExtent убрал, units поправил — все так же.
Несжатый вариант OL не смог найти, где он есть?
FireBug показывает такие ошибки:

Код: Выделить всё

function getXmlHttp does not always return a value
reference to undefined property window.google
reference to undefined property window.Proj4js
anonymous function does not always return a value
Порылся в рабочем файле OL, нашел место, куда указывает IE (если нигде не ошибся). Он там показывает номер строки и номер символа в строке. В этом месте оказалось это:

this.position=position.clone();

Не знаю, поможет ли это чем-то...
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: Ошибка JavaScript в Internet Explorer (OpenLayers)

Сообщение Mavka »

Несжатый OL:
  1. Скачать полный дистрибутив с оф. сайта
  2. Распаковать
  3. Подключать не "OpenLayers-2.8\OpenLayers.js", а "OpenLayers-2.8\lib\OpenLayers.js"
Как трэйсить в IE я не знаю, не приходилось. В firebug таких ошибок быть, по идее, не должно. Как всегда - убрать все что можно и потом по одному добавлять в код пока не появиться проблема в ослике.
лангольеры под окном жрали время ом-ном-ном
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей