Okay, here's my test case ... Any idea what I'm missing?

-eP


<script>

// Our default list of colors
var colors = [ 'red', 'yellow', 'green', 'cyan', 'blue', 'magenta' ];

// The RGB codes for each color name
var colorCode = {
        red:     '#ff0000',
        yellow:  '#ffff00',
        green:   '#00ff00',
        cyan:    '#00ffff',
        blue:    '#0000ff',
        magenta: '#ff00ff'
};

var markerPath = "images/marker-";
var markerSuffix = ".png";

// A container for the style of each color
var style = {};

// Build the style for each color
for (var col in colors)
{
        style[colors[col]] = {
                strokeColor:   colorCode[colors[col]],
                strokeOpacity: 0.8,
                strokeWidth:   3,
                fillColor:     colorCode[colors[col]],
                pointRadius:   6,
                pointerEvents: "visiblePainted"
        };
}

// Default trail data
var data = [
        {
                tag: 'Set 1',
                points: [
                        new OpenLayers.LonLat (-80.100, 26.100),
                        new OpenLayers.LonLat (-80.110, 26.105),
                        new OpenLayers.LonLat (-80.120, 26.110),
                        new OpenLayers.LonLat (-80.130, 26.115),
                        new OpenLayers.LonLat (-80.140, 26.120)
                ]
        },
];

function olinit ()
{
        var myMap = new OpenLayers.Map ('map', {
                controls: [
                        new OpenLayers.Control.MouseDefaults(),
                        new OpenLayers.Control.LayerSwitcher(),
                        new OpenLayers.Control.PanZoomBar(),
                        new OpenLayers.Control.MousePosition(),
                        new OpenLayers.Control.Scale(),
                        new OpenLayers.Control.DragPan()
                ],
                tileSize: new OpenLayers.Size (256, 256),
projection: "EPSG:900913",
        });

        // Google Maps
        myMap.addLayer (new OpenLayers.Layer.Google("Google Normal",
{ type: G_NORMAL_MAP   }, { 'sphericalMercator': true }));
        myMap.addLayer (new OpenLayers.Layer.Google("Google Satellite",
{ type: G_SATELLITE_MAP}, { 'sphericalMercator': true }));
        myMap.addLayer (new OpenLayers.Layer.Google("Google Hybrid",
{ type: G_HYBRID_MAP   }, { 'sphericalMercator': true }));

        // Markers
        var myMarkerLayer = new OpenLayers.Layer.Markers ("Markers");
        myMap.addLayer (myMarkerLayer);

        // Add a new vector layer
        var myVectorLayer = new OpenLayers.Layer.Vector ("Vector
Features");
        myMap.addLayer (myVectorLayer);

        // Walk through each feature to draw
        for (var f = 0 ; f < data.length ; ++f)
        {
                // Build a new pointlist from the data
                var pointList = [];

                // Add the data points to the list
                for (var p = 0 ; p < data[f].points.length ; ++p)
                {
                        // Add a marker
                        myMarkerLayer.addMarker (new OpenLayers.Marker (
                                data[f].points[p],
                                new OpenLayers.Icon
("images/marker-red.png", new OpenLayers.Size(20, 20))
                        ));

                        // Create a new point
                        var myPoint = new OpenLayers.Geometry.Point
(data[f].points[p].lon, data[f].points[p].lat);

                        // Push the point onto the list
                        pointList.push (myPoint);

                        // Create a new point feature for this point
                        var myPointFeature = new
OpenLayers.Feature.Vector (myPoint, null, style[colors[f]]);
                        myVectorLayer.addFeatures ([myPointFeature]);
                }

                // Now build a new line feature from the points
                var lineFeature = new OpenLayers.Feature.Vector (
                        new OpenLayers.Geometry.LineString (pointList),
null, style[colors[f]]
                );

                // Add this line to the map
                myVectorLayer.addFeatures ([lineFeature]);
        }

        // Point to home
        myMap.setCenter (new OpenLayers.LonLat (-80, 26), 10);
}

</script> 

-----Original Message-----
From: Christopher Schmidt [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 28, 2007 10:02 AM
To: Peterson Eric-EEP002
Cc: [email protected]
Subject: Re: [OpenLayers-Users] Google and Markers and Vectors ... oh
my!

On Wed, Nov 28, 2007 at 09:53:15AM -0500, Peterson Eric-EEP002 wrote:
  
> It seems to me that it's behaving as though the markers are being 
> projected correctly over the base, which is spherical Mercator, but 
> the line feature is being projected according to EPSG:4326. But that's

> just a guess ... I'm not familiar enough with the guts of how that 
> thing works.
>  
> Is there something special I need to do to get Google, the markers, 
> and vector layer features to all sync up?

It sounds an awful lot like you're not really using Spherical Mercator.
Can you share a small piece of sample code that reproduces this
behavior?

Regards,
--
Christopher Schmidt
MetaCarta
_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to