[OpenLayers-Users] need help displaying a vector

LazyGun lazygun at gmx.de
Thu Jun 5 08:05:41 EDT 2008


Hi everyone,

i'm new to openlayers. on my webpage i want to display a number of markers
which represent gps positions which are stored in a database. These markers
then should be connected by a line. (in order)

To achieve this i dynamically create a script which uses the gps coordinates
i need. So far i have successfully created the markers but haven't been able
to create a line between them.

To draw a line between the markers, i want to use a
OpenLayers.Feature.Vector object.

here is an example of a generated script for two points/markers that i use
so far:

<script language = 'javascript'>
var x; var y; var userid; var speed; var date;
var map = new OpenLayers.Map('map',           
	{ maxExtent: new
OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),           
	numZoomLevels: 19,           
	maxResolution: 156543.0399,           
	units: 'm',           
	projection: new OpenLayers.Projection("EPSG:900913"),           
	displayProjection: new OpenLayers.Projection("EPSG:4326")         
}); 
var layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik (updated
weekly)"); 
var layerTah = new OpenLayers.Layer.OSM.Osmarender("Tiles at Home"); 
map.addLayers([layerMapnik,layerTah]); 
map.addControl(new OpenLayers.Control.LayerSwitcher()); 
var markers = new OpenLayers.Layer.Markers("Markers");
var centerPoint = new OpenLayers.LonLat(0,0).transform(new
OpenLayers.Projection("EPSG:4326"), new
OpenLayers.Projection("EPSG:900913"));
map.setCenter(centerPoint, 12);
var size = new OpenLayers.Size(30,30); 
var offset = new OpenLayers.Pixel(-(size.w/2), -(size.h/2));
var icon = new OpenLayers.Icon('pin2.gif', size, offset);
var geoPoints = new OpenLayers.Geometry.MultiPoint();
var vectorlayer = new OpenLayers.Layer.Vector("Route");

x = 52.498334;y = 13.391626;
var geoPoint0 = new OpenLayers.Geometry.Point(13.391626, 52.498334); 
geoPoints.addPoint(geoPoint0);
var point = new OpenLayers.LonLat(13.391626,52.498334).transform(new
OpenLayers.Projection("EPSG:4326"), new
OpenLayers.Projection("EPSG:900913"));
var marker0 = new OpenLayers.Marker(point, icon.clone()); 
var html = "05.03.2008"; 
marker0.events.register('mousedown', marker0, function() { alert("Datum:
05.03.2008\nZeit:  09:24:00\nBenutzername: Zimmermann\nUserID:
250e1336");});
markers.addMarker(marker0);
x = 52.497447;y = 13.391813;
var geoPoint1 = new OpenLayers.Geometry.Point(13.391813, 52.497447); 
geoPoints.addPoint(geoPoint1);
var point = new OpenLayers.LonLat(13.391813,52.497447).transform(new
OpenLayers.Projection("EPSG:4326"), new
OpenLayers.Projection("EPSG:900913"));
var marker1 = new OpenLayers.Marker(point, icon.clone()); 
var html = "05.03.2008"; marker1.events.register('mousedown', marker1,
function() { alert("Datum: 05.03.2008\nZeit:  09:25:01\nBenutzername:
Zimmermann\nUserID: 250e1336");});
markers.addMarker(marker1);
var centerPoint = new OpenLayers.LonLat(13.391813,52.497447).transform(new
OpenLayers.Projection("EPSG:4326"), new
OpenLayers.Projection("EPSG:900913"));
map.setCenter(centerPoint, 12);

var line = new OpenLayers.Geometry.Curve(geoPoints.components);
var vector = new OpenLayers.Feature.Vector(line); 
vectorlayer.addFeatures([vector]);
map.addLayer(vectorlayer);
map.addLayer(markers);
</script>


As i said, it shows the markers but not the vecctor.

Any advice would be welcome.

ps: sorry for bad english.
-- 
View this message in context: http://www.nabble.com/need-help-displaying-a-vector-tp17668316p17668316.html
Sent from the OpenLayers Users mailing list archive at Nabble.com.




More information about the Users mailing list