Skip to content

Commit

Permalink
little optimize
Browse files Browse the repository at this point in the history
  • Loading branch information
erik168 committed Jun 24, 2014
1 parent fdecbdd commit 604ee42
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 45 deletions.
58 changes: 30 additions & 28 deletions src/util/projection/normal.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,18 +31,19 @@ define(function() {
if (shape.properties.name && specialArea[shape.properties.name]) {
continue;
}
if (shape.type == 'Feature') {
convertorParse[shape.geometry.type](
shape.geometry.coordinates
);
}
else if (shape.type == 'GeometryCollection') {
geometries = shape.geometries;
for (var j = 0, len2 = geometries.length; j < len2; j++) {
convertorParse[geometries[j].type](
geometries[j].coordinates
);
}

switch (shape.type) {
case 'Feature':
convertorParse[shape.geometry.type](shape.geometry.coordinates);
break;
case 'GeometryCollection'
geometries = shape.geometries;
for (var j = 0, len2 = geometries.length; j < len2; j++) {
convertorParse[geometries[j].type](
geometries[j].coordinates
);
}
break;
}
}

Expand All @@ -58,13 +59,13 @@ define(function() {

var convertor = {
//调整俄罗斯东部到地图右侧与俄罗斯相连
'formatPoint' : function (p) {
formatPoint : function (p) {
return [
((p[0] < -168.5 && p[1] > 63.8) ? p[0] + 360 : p[0]) + 168.5,
90 - p[1]
];
},
'makePoint' : function (p) {
makePoint : function (p) {
var self = this;
var point = self.formatPoint(p);
// for cp
Expand All @@ -78,11 +79,11 @@ define(function() {
+ convertor.offset.top;
return [x, y];
},
'Point' : function (coordinates) {
Point : function (coordinates) {
coordinates = this.makePoint(coordinates);
return coordinates.join(',');
},
'LineString' : function (coordinates) {
LineString : function (coordinates) {
var str = '';
var point;
for (var i = 0, len = coordinates.length; i < len; i++) {
Expand All @@ -95,28 +96,28 @@ define(function() {
}
return str;
},
'Polygon' : function (coordinates) {
Polygon : function (coordinates) {
var str = '';
for (var i = 0, len = coordinates.length; i < len; i++) {
str = str + convertor.LineString(coordinates[i]) + 'z';
}
return str;
},
'MultiPoint' : function (coordinates) {
MultiPoint : function (coordinates) {
var arr = [];
for (var i = 0, len = coordinates.length; i < len; i++) {
arr.push(convertor.Point(coordinates[i]));
}
return arr;
},
'MultiLineString' : function (coordinates) {
MultiLineString : function (coordinates) {
var str = '';
for (var i = 0, len = coordinates.length; i < len; i++) {
str += convertor.LineString(coordinates[i]);
}
return str;
},
'MultiPolygon' : function (coordinates) {
MultiPolygon : function (coordinates) {
var str = '';
for (var i = 0, len = coordinates.length; i < len; i++) {
str += convertor.Polygon(coordinates[i]);
Expand All @@ -126,8 +127,9 @@ define(function() {
};

var convertorParse = {
'formatPoint' : convertor.formatPoint,
'makePoint' : function (p) {
formatPoint : convertor.formatPoint,

makePoint : function (p) {
var self = this;
var point = self.formatPoint(p);
var x = point[0];
Expand All @@ -137,30 +139,30 @@ define(function() {
if (self.ymin > y) { self.ymin = y; }
if (self.ymax < y) { self.ymax = y; }
},
'Point' : function (coordinates) {
Point : function (coordinates) {
this.makePoint(coordinates);
},
'LineString' : function (coordinates) {
LineString : function (coordinates) {
for (var i = 0, len = coordinates.length; i < len; i++) {
this.makePoint(coordinates[i]);
}
},
'Polygon' : function (coordinates) {
Polygon : function (coordinates) {
for (var i = 0, len = coordinates.length; i < len; i++) {
this.LineString(coordinates[i]);
}
},
'MultiPoint' : function (coordinates) {
MultiPoint : function (coordinates) {
for (var i = 0, len = coordinates.length; i < len; i++) {
this.Point(coordinates[i]);
}
},
'MultiLineString' : function (coordinates) {
MultiLineString : function (coordinates) {
for (var i = 0, len = coordinates.length; i < len; i++) {
this.LineString(coordinates[i]);
}
},
'MultiPolygon' : function (coordinates) {
MultiPolygon : function (coordinates) {
for (var i = 0, len = coordinates.length; i < len; i++) {
this.Polygon(coordinates[i]);
}
Expand Down
37 changes: 20 additions & 17 deletions src/util/projection/svg.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,21 @@
define(function(require) {

var PathShape = require('zrender/shape/Path');

function toFloat(str) {
return parseFloat(str || 0);
}

function getBbox(root) {
var svgNode = root.firstChild;
// Find the svg node
while (!(svgNode.nodeName.toLowerCase() == 'svg' && svgNode.nodeType == 1)) {
while (!(svgNode.nodeName == 'SVG' && svgNode.nodeType == 1)) {
svgNode = svgNode.nextSibling;
}

var x = parseFloat(svgNode.getAttribute('x') || 0);
var y = parseFloat(svgNode.getAttribute('y') || 0);
var width = parseFloat(svgNode.getAttribute('width') || 0);
var height = parseFloat(svgNode.getAttribute('height') || 0);
var x = toFloat(svgNode.getAttribute('x'));
var y = toFloat(svgNode.getAttribute('y'));
var width = toFloat(svgNode.getAttribute('width'));
var height = toFloat(svgNode.getAttribute('height'));
return {
left : x,
top : y,
Expand Down Expand Up @@ -135,10 +138,10 @@ define(function(require) {
},

rect: function(xmlNode, scale) {
var x = parseFloat(xmlNode.getAttribute('x') || 0);
var y = parseFloat(xmlNode.getAttribute('y') || 0);
var width = parseFloat(xmlNode.getAttribute('width') || 0);
var height = parseFloat(xmlNode.getAttribute('height') || 0);
var x = toFloat(xmlNode.getAttribute('x'));
var y = toFloat(xmlNode.getAttribute('y'));
var width = toFloat(xmlNode.getAttribute('width'));
var height = toFloat(xmlNode.getAttribute('height'));

return {
shapeType: 'rectangle',
Expand All @@ -154,10 +157,10 @@ define(function(require) {
},

line: function(xmlNode, scale) {
var x1 = parseFloat(xmlNode.getAttribute('x1') || 0);
var y1 = parseFloat(xmlNode.getAttribute('y1') || 0);
var x2 = parseFloat(xmlNode.getAttribute('x2') || 0);
var y2 = parseFloat(xmlNode.getAttribute('y2') || 0);
var x1 = toFloat(xmlNode.getAttribute('x1'));
var y1 = toFloat(xmlNode.getAttribute('y1'));
var x2 = toFloat(xmlNode.getAttribute('x2'));
var y2 = toFloat(xmlNode.getAttribute('y2'));

return {
shapeType: 'line',
Expand All @@ -173,9 +176,9 @@ define(function(require) {
},

circle: function(xmlNode, scale) {
var cx = parseFloat(xmlNode.getAttribute('cx') || 0);
var cy = parseFloat(xmlNode.getAttribute('cy') || 0);
var r = parseFloat(xmlNode.getAttribute('r') || 0);
var cx = toFloat(xmlNode.getAttribute('cx'));
var cy = toFloat(xmlNode.getAttribute('cy'));
var r = toFloat(xmlNode.getAttribute('r'));

return {
shapeType: 'circle',
Expand Down

0 comments on commit 604ee42

Please sign in to comment.