Newer
Older
* GMap Shapes
* GMap API version / Base case
*/
/*global jQuery, Drupal, GEvent, GLatLng, GPolygon, GPolyline */
var obj = this;
/*
obj.bind('init',function() {
if (obj.vars.behavior.autozoom) {
obj.bounds = new GLatLngBounds(new GLatLng(obj.vars.latitude,obj.vars.longitude),new GLatLng(obj.vars.latitude,obj.vars.longitude));
}
});
*/
obj.bind('prepareshape', function (shape) {
var pa, cargs, style;
//var m = new GMarker(new GLatLng(marker.latitude,marker.longitude),marker.opts);
pa = []; // point array (array of GLatLng-objects)
var fillstyle = true;
if (shape.type === 'circle') {
pa = obj.poly.calcPolyPoints(new GLatLng(shape.center[0], shape.center[1]), shape.radius * 1000, shape.numpoints);
shape.center = new GLatLng(shape.center[0], shape.center[1]);
shape.point2 = new GLatLng(shape.point2[0], shape.point2[1]);
var radius = shape.center.distanceFrom(shape.point2);
pa = obj.poly.calcPolyPoints(shape.center, radius, shape.numpoints);
}
pa.push(new GLatLng(n[0], n[1]));
});
}
pa.push(new GLatLng(n[0], n[1]));
});
fillstyle = false;
}
cargs = [pa];
// Style normalization
if (fillstyle) {
if (obj.vars.styles[shape.style]) {
style = obj.vars.styles[shape.style].slice();
}
}
else {
style = shape.style.slice();
}
}
style[0] = '#' + style[0];
style[1] = Number(style[1]);
style[2] = style[2] / 100;
if (fillstyle) {
style[3] = '#' + style[3];
style[4] = style[4] / 100;
}
Rebecca White
committed
if (shape.type == 'encoded_line') {
shape.color = style[0];
shape.weight = style[1];
shape.opacity = style[2];
}
else if (shape.type == 'encoded_polygon') {
jQuery.each(shape.polylines, function(i, polyline) {
Rebecca White
committed
polyline.color = style[0];
polyline.weight = style[1];
polyline.opacity = style[2];
});
shape.fill = true;
shape.color = style[3];
shape.opacity = style[4];
shape.outline = true;
}
};
Pg.prototype = new GPolygon();
var Pl = function (args) {
GPolyline.apply(this, args);
};
Pl.prototype = new GPolyline();
switch (shape.type) {
case 'circle':
case 'polygon':
case 'rpolygon':
shape.shape = new Pg(cargs);
break;
case 'line':
shape.shape = new Pl(cargs);
break;
case 'encoded_line':
shape.shape = GPolyline.fromEncoded(shape);
break;
case 'encoded_polygon':
shape.shape = GPolygon.fromEncoded(shape);
break;
if (!obj.vars.shapes) {
obj.vars.shapes = [];
}
obj.vars.shapes.push(shape);
obj.map.addOverlay(shape.shape);
if (obj.vars.behavior.clickableshapes) {
obj.change('clickshape', -1, shape);
});
}
obj.map.removeOverlay(shape.shape);
});
jQuery.each(obj.vars.shapes, function (i, n) {
obj.change('delshape', -1, n);
});
}
});
});