Note that there are some explanatory texts on larger screens.

plurals
  1. POGoogle Maps, array + GLatLng + GPolyline
    text
    copied!<p>I am using the following code to group and show a list of ship positions on a map:</p> <pre><code>function configure_ship_polylines() { var shipPoints = new Array(); // Group positions by ship for (var ScenarioPositionID in __data['scenarioPositions']) { var scenarioPosition = __data['scenarioPositions'][ScenarioPositionID]; var key = "ShipID_" + scenarioPosition.ShipID; // Initialize if necessary if (shipPoints[key] == null) { shipPoints[key] = new Array(); } var latLong = new GLatLng(scenarioPosition.Latitude, scenarioPosition.Longitude); // Append coordinates shipPoints[key].push(latLong); } // Loop through the grouped coordinates and add to map for (var key in shipPoints) { var points = shipPoints[key]; var ShipID = key.substring(7); // Only add polygons with points.length &gt; 1 if (points.length &gt; 1) { var shipPolyline = new GPolyline(points); //alert("Adding polyline: " + shipPolyline + " for ship: " + ShipID + " " + points + " " + typeof points); __mapItems['shipPolylines'][key] = shipPolyline; __map.addOverlay(shipPolyline); } } } </code></pre> <p>What happens is that only <em>one</em> of the polylines are displayed on the map. The rest are invisible or aren't added at all (I'm not quite sure how to debug google maps to find out). I have used firebug extensively over and over again to debug this, but everything seems fine. </p> <p>If I create polylines manually I can add them to the map and everything works fine. If I create markers on each point instead of polylines then the markers display fine at the correct places.</p> <p>I'm getting kinda pissed at this because I have almost spent a full work day trying to figure out what the hell is going on. Any ideas?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload