Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1.     drawGeometry: function(geometry, style, featureId) {
  2.         var rendered = false;
  3.         if (geometry instanceof OpenLayers.Geometry.Point) {
  4.             var node = document.getElementById(featureId);
  5.             if (node) {
  6.                 if (style.display != "none") {
  7.                     var resolution = this.getResolution();
  8.                     var x = (geometry.x / resolution + this.left);
  9.                     var y = (this.top - geometry.y / resolution);
  10.                     node.style.left = parseInt(x) + "px";
  11.                     node.style.top = parseInt(y) + "px";
  12.                     rendered = true;
  13.                 }
  14.             } else {
  15.                 if (style.display == "none") { return rendered; }
  16.                 node = document.createElement("a");
  17.                 node.setAttribute('href', '#');
  18.                 node.id = featureId;
  19.                 node._featureId = featureId;
  20.                 if (style.cssClass === 'cluster') {
  21.                     var len = ("" + style.label).length;
  22.                     node.className = style.cssClass + " cluster-" + len;
  23.                 } else {
  24.                     node.className = style.cssClass;
  25.                 }
  26.                 var resolution = this.getResolution();
  27.                 var x = (geometry.x / resolution + this.left);
  28.                 var y = (this.top - geometry.y / resolution);
  29.                 var idx = node.id.substr(node.id.lastIndexOf('_')+1, node.id.length);
  30.                 // TODO see if there is no cleaner way to differentiate
  31.                 if (style.cssClass === 'cluster') {
  32.                     node.innerHTML = '<span>'+idx+'</span>';
  33.                 } else {
  34.                     node.innerHTML = idx;
  35.                 }
  36.                 node.style.left = parseInt(x) + "px";
  37.                 node.style.top = parseInt(y) + "px";
  38.                 this.root.appendChild(node);
  39.                 rendered = true;
  40.             }
  41.             if (rendered == false) {
  42.                 this.root.removeChild(node);
  43.             }
  44.             return rendered;
  45.         }
  46.     }