Dumb questions about polygons

70 views
Skip to first unread message

waves

unread,
Sep 15, 2011, 7:03:13 PM9/15/11
to google-map...@googlegroups.com
Hi there,

I have the data for a single, simple polygon to be pushed to a map stored in mysql. I have retrieved that data, and put it into a simple javascript variable named "bounds" as a list of lat long pairs, delimited by a colon. My goal is to push the polygon (which should be editable) to the map. I am able to extract each pair, and I am using the following code (with no success) to load the polygon onto the map:

var map;
var poly;
var markers = new Array();
var path = new google.maps.MVCArray;

...

function initialize() {
    //set map options propertylatlng set through a geocode on the address
    var myOptions = {
      zoom: 15,
      center: propertylatlng,
      mapTypeId: google.maps.MapTypeId.HYBRID
      };
         
   //compose map     
    var map = new google.maps.Map(document.getElementById("map_canvas"),myOptions);

    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);
     
 }

function loadmap() {
    var pointsArray = bounds.split(":");
    if(pointsArray.length!=0){
        for(var i=0; i<pointsArray.length; i++){
       
        //check to see if the point is being isolated
        console.log(pointsArray[i]);

        var this_latlng = new google.maps.LatLng(pointsArray[i]);
        path.insertAt(i,this_latlng);
       
        var marker = new google.maps.Marker({
          position: this_latlng,
          map: map,
          draggable: true
        });
               
        markers.push(marker);
        marker.setTitle("##" + path.length);
        }
               
        poly = new google.maps.Polygon({
            strokeWeight: 3,
          fillColor: '##5555FF'
         });

        poly.setMap(map);
        poly.setPaths(new google.maps.MVCArray([path]));   
    }
}

I admit I am borrowing code for some of this; here is what I don't understand. For poly.setPaths, why pass "new google.maps.MVCArray([path])" - I have tried just passing "path" as poly.setPaths(path) for example. I just don't get how to reference the MVCArray, or how to push a polygon I to the map. I am dense I guess...from the code above, I have added elements to the array, so I wonder whether by pushing a "new" MVCArray, I just empty the path? Or does the path get copied to the array? I have to say, I find the documentation unnecessarily cryptic on these things. Examples are limited.

More fundamentally, if I have a set of lat/long pairs in a javascript variable, how do I push them to a polygon? Do the pairs have to close (repeat the first point)? There is no "event" like a click or double click, just have the data and want to push it. I need to use variable names that allow the user to edit the polygon afterwards, hence the use of common variables in the code above. At the moment, I can add polygons (by drawing them), save them to a database, retrieve them back from the database, I just can't display that saved data back onto the map. Help please!

Thanks!

Doug
Reply all
Reply to author
Forward
0 new messages