Based on the Google Maps JavaScript API v3 documentation, google.maps.Polygon
class's getPath()
function returns an MVCArray
. In a straightforward case, a Polygon's path can be a single array of LatLngs
that are converted to the MVCArray
type upon being passed into the google.maps.Polygon class's setPath()
function.
The above case is what I'm dealing with currently. I pass in an array of LatLngs
, and return (what I assume is) an MVCObject
when I call getPath()
on my Polygon object. My question is: How do I convert this MVCObject
back into a single array of LatLngs
that form the Polygon's shape? Is there some built in Google Maps API v3 way that I'm missing? I feel like there has to be some sort of obvious built in conversion function or something in the API that's eluding me.
Any help would be appreciated.
A LatLng is a point in geographical coordinates: latitude and longitude. Latitude ranges between -90 and 90 degrees, inclusive.
var polygonBounds = polygon.getPath();
var bounds = [];
for (var i = 0; i < polygonBounds.length; i++) {
var point = {
lat: polygonBounds.getAt(i).lat(),
lng: polygonBounds.getAt(i).lng()
};
bounds.push(point);
}
When you call Polygon.getPath()
api-doc, the return is an MVCArray
api-doc of LatLng
instances that represent the first path of the Polygon
. You can directly get to the members of the MVCAarray
in two ways:
MVCAarray.getArray
, which will return the underlying JavaScript Array
that contains LatLng
members.MVCArray.getAt( index )
, which will return whatever is at that index in the MVCArray
(a LatLng
in this case). This provides you a way to setup a JavaScript for
loop to iterate over the members of the array.You can also indirectly work with the members of the MVCArray
by using the forEach(callback:function(*, number))
function. In this case, you must pass a callback function that accepts two parameters:
MVCArray
.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With