Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing the Multiple Polyline stroke color on google map v3

I need to create multiple polylines ,each with its own color, and their markers are connected to each other,I am using google map v3.

For example,I have five markers and they are all the connected to each other through red color polylines. Now I want to show this red color polyline in multiple color schemes, first polyline in green, second in Blue, third in Black and so on.

Here is my code

<script type='text/javascript'>
var poly;
var map;
var path;
var i = parseInt(0, 10);
var marker;          

function initialize() {
  var chicago = new google.maps.LatLng(41.879535, -87.624333);
  var myOptions = {
    zoom: 7,
    center: chicago,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
  var polyOptions = {
    strokeColor: '#000000',
    strokeOpacity: 1.0,
    strokeWeight: 3
  }
  poly = new google.maps.Polyline(polyOptions);
  poly.setMap(map);
  // Add a listener for the click event
  google.maps.event.addListener(map, 'click', addLatLng);
}

/**
* Handles click events on a map, and adds a new point to the Polyline.
* @param {MouseEvent} mouseEvent
*/
function addLatLng(event) {
  i++;
  //var path = poly.getPath();
  path = poly.getPath();
  var polyOptions2 = {
    strokeColor: '#FFFFFF',
    strokeOpacity: 1.0,
    strokeWeight: 3
  }
  if (i == 2) {
    poly.setOptions(polyOptions2);

  }
  else {
    polyOptions2.strokeColor = "#FF0000";
    poly.setOptions(polyOptions2);
  }
  path.push(event.latLng);
  // Add a new marker at the new plotted point on the polyline.
  marker = new google.maps.Marker({
    position: event.latLng,
    title: '#' + path.getLength(),
    map: map
  });
}
</script>
like image 937
amirhadi Avatar asked Oct 09 '22 22:10

amirhadi


2 Answers

Load your marker options and color for the polylines into an json array and loop through them creating the markers and polylines.

Hope this gets you going.

like image 197
nodrog Avatar answered Oct 13 '22 11:10

nodrog


set this portion of your code in for loop like

       var colorVariable = ["red","green","blue","yellow","black"];

        for(var a =0;a<=5;a++){
              var polyOptions = {
                strokeColor: colorVariable[a],
                strokeOpacity: 1.0,
                strokeWeight: 2
              }
              poly = new google.maps.Polyline(polyOptions);
              poly.setMap(map);
        }

It will work fine

like image 22
Anup Avatar answered Oct 13 '22 11:10

Anup