Class-googleearth
Support polygon with inner rings.
Additional comments:
I've fixed this my self, and the patch to fix it follows below:
(contributing the normal way for such a small fix seemed to much of a hurdle)
Index: googleearth.js
===================================================================
--- googleearth.js (revisão 434)
+++ googleearth.js (cópia de trabalho)
@@ -426,32 +426,37 @@
/**
* @param {google.maps.Polygon} polygon the polygon overlay.
* @private
- */
-GoogleEarth.prototype.createPolygon_ = function(polygon) {
- var ge = this.instance_;
- var placemark = this.createPlacemark_(polygon);
-
- // Create polygon
- var poly = ge.createPolygon('');
- placemark.setGeometry(poly);
-
- //set the style
- var style = this.createStyle_(polygon);
- placemark.setStyleSelector(style);
-
-
- //assume single linearRing
- var outer = ge.createLinearRing('');
- poly.setOuterBoundary(outer);
- var coords = outer.getCoordinates();
- var path = polygon.getPath().getArray();
-
- //TODO(jlivni) use getPaths and multiple rings
- for (var i = 0, latLng; latLng = path[i]; i++) {
- coords.pushLatLngAlt(latLng.lat(), latLng.lng(), 0);
- }
-
- ge.getFeatures().appendChild(placemark);
+ */
+GoogleEarth.prototype.createPolygon_ = function (polygon) {
+ var ge = this.instance_;
+ var placemark = this.createPlacemark_(polygon);
+
+ // Create polygon
+ var poly = ge.createPolygon('');
+ placemark.setGeometry(poly);
+
+ //set the style
+ var style = this.createStyle_(polygon);
+ placemark.setStyleSelector(style);
+
+
+ var paths = polygon.getPaths().getArray();
+ for (var j = 0, gmPath; gmPath = paths[j]; j++) {
+ var path = gmPath.getArray()
+ var ring = ge.createLinearRing('');
+ var coords = ring.getCoordinates();
+
+ for (var i = 0, latLng; latLng = path[i]; i++) {
+ coords.pushLatLngAlt(latLng.lat(), latLng.lng(), 0);
+ }
+
+ if (j == 0) {
+ poly.setOuterBoundary(ring);
+ continue;
+ }
+ poly.getInnerBoundaries().appendChild(ring);
+ }
+ ge.getFeatures().appendChild(placemark);
};
*********************************************************
Tip: Star this issue (next to title) to receive notifications of status
changes against this issue, also used as a gauge for how many people are
interested in seeing it resolved.
*********************************************************
Original issue reported on code.google.com by Heitor.Z...@gmail.com on 22 May 2013 at 11:39
Original issue reported on code.google.com by
Heitor.Z...@gmail.com
on 22 May 2013 at 11:39