Try something like this....
// transform myData into Array.<LatLng>
var path = [];
for (var i = 0, ii = myData.length; i < ii; i++) {
var point = myData[i];
path.push(new google.maps.LatLng(point.lat, point.lng));
}
var polygon = new google.maps.Polygon({
path: path,
strokeWeight: 3,
fillColor: '#5555FF'
map: map
});
On Tue, Oct 12, 2010 at 3:44 AM, Claus <[email protected]> wrote:
> I have created a map upon which the user can draw a polygon. The user
> can save the polygon info in our database.
>
> Now I am trying to re-display the saved polygon when the user calls it
> back from the database.
>
> I just don't seem to be able to get the syntax correct.
>
> I define the following global variables
>
> var map = null;
> var poly;
> var markers = [];
> var path = new google.maps.MVCArray;
>
> Then I initialize the map like this:
>
> function initialize() {
> var latlng = new google.maps.LatLng(41.904704529604835,
> -88.10674667358398);
>
> var myOptions = {
> zoom: 7,
> center: latlng,
> scaleControl: true,
> streetViewControl: true,
> mapTypeId: google.maps.MapTypeId.ROADMAP
> };
>
>
> map = new google.maps.Map(document.getElementById("map_canvas"),
> myOptions);
> infowindow = new google.maps.InfoWindow({
> content: ''
> });
>
> poly = new google.maps.Polygon({
> strokeWeight: 3,
> fillColor: '#5555FF'
> });
> poly.setMap(map);
> poly.setPaths(new google.maps.MVCArray([path]));
>
> google.maps.event.addListener(map, 'click', addPoint);
>
> infowindow = new google.maps.InfoWindow();
>
> }
>
> I use this function to let the user build the original polygon:
>
> //boundry functions
> function addPoint(event) {
> path.insertAt(path.length, event.latLng);
>
> var marker = new google.maps.Marker({
> position: event.latLng,
> map: map,
> draggable: true
> });
>
> markers.push(marker);
> marker.setTitle("#" + path.length);
>
> google.maps.event.addListener(marker, 'click', function() {
> marker.setMap(null);
> for (var i = 0, I = markers.length; i < I &&
> markers[i] != marker; +
> +i);
> markers.splice(i, 1);
> path.removeAt(i);
> }
> );
>
> google.maps.event.addListener(marker, 'dragend', function()
> {
> for (var i = 0, I = markers.length; i < I &&
> markers[i] != marker; +
> +i);
> path.setAt(i, marker.getPosition());
> }
> );
> }
>
>
>
> How can I re-load the MVCArray path with the stored data?
>
> The OLH states I can simply load an array of the coordinates and they
> will automatically be converted to the MVCArray. I have tried this,
> and it does not seem to work:
>
> poly.paths = myData[0].layout;
>
> where myData[0].layout is an array of Lat and Lngs like this:
>
> myData[0].layout[i].lat = 41.75074632037276
> myData[0].layout[i].lng = -88.1522571322632
>
> --
> You received this message because you are subscribed to the Google Groups
> "Google Maps JavaScript API v3" group.
> To post to this group, send email to
> [email protected].
> To unsubscribe from this group, send email to
> [email protected]<google-maps-js-api-v3%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-maps-js-api-v3?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Google Maps JavaScript API v3" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-maps-js-api-v3?hl=en.