Я получаю эту ошибку при вызове map.AddPopup () в OpenLayers:
Невозможно получить значение свойства 'Left';объект является нулевым или неопределенным
http://www.openlayers.org/api/OpenLayers.js
Одна и та же ошибка возникает как в Chrome, так и в IE.Карта отлично работает, когда я закомментирую эту строку, и маркеры тоже работают.Позже, icon0 и lonLat0 будут несколькими элементами в цикле, но я справлюсь с этим.Конечным результатом должно быть какое-то текстовое поле, которое будет отображаться на маркере.
Отображается маркер на lonLat0, поэтому это не выглядит проблемой для объекта lonLat.
Да, я закончу отображать много маркеров с текстом на них сразу.Я знаю, это кажется глупым, но это требование.
Почему addPopup выдает мне эту ошибку?
<html><body>
<div id='mapdiv'></div> <script src='http://www.openlayers.org/api/OpenLayers.js'></script>
<script>
map = new OpenLayers.Map('mapdiv');
map.addLayer(new OpenLayers.Layer.OSM());
var lonLat = new OpenLayers.LonLat(-104.73,38.92).transform(new OpenLayers.Projection('EPSG:4326'), map.getProjectionObject() );
var markers = new OpenLayers.Layer.Markers( 'Markers' );
map.addLayer(markers);
markers.addMarker(new OpenLayers.Marker(lonLat));
function onPopupClose(evt) {selectControl.unselect(this.feature); }
var icon0 = new OpenLayers.Icon("pinMS.png", new OpenLayers.Size(32,32), new OpenLayers.Pixel(-16,-32));
var lonLat0 = new OpenLayers.LonLat(-104.73,38.92).transform(new OpenLayers.Projection('EPSG:4326'), map.getProjectionObject());
markers.addMarker(new OpenLayers.Marker(lonLat0, icon0.clone()));
// Error throws here
map.addPopup(new OpenLayers.Popup.FramedCloud("featurePopup", lonLat0, new OpenLayers.Size(10, 10), "<h2>Title</h2>description", null, true, onPopupClose));
map.setCenter (lonLat, 1);
</script></body></html>