I want to create a marker and buffer around it with a given radius on map click event. Marker is displayed successfully but the polygon doesn't display. I guess there is problem in projection setting. Here are the projection settings for my map.
projection: new OpenLayers.Projection("EPSG:900913"),displayProjection: new OpenLayers.Projection("EPSG: 4326")The event handler is as under.
{ radius = 3000; var sides = 50; if (!markersLayer) { markersLayer = new OpenLayers.Layer.Markers("Markers"); bufferLayer = new OpenLayers.Layer.Vector("Buffer Layer"); map.addLayer(markersLayer); map.addLayer(bufferLayer); } position = map.getLonLatFromPixel(e.xy); //Create Marker var size = new OpenLayers.Size(15, 15); var offset = new OpenLayers.Pixel( - (size.w / 2), -size.h); var icon = new OpenLayers.Icon(iconURL, size, offset); var marker = new OpenLayers.Marker(position, icon); // Cleanup Markers First markersLayer.clearMarkers(); markersLayer.addMarker(marker); //Create Polygon var circle = new OpenLayers.Geometry.Polygon.createRegularPolygon(position, radius, sides, 0); var circleFeature = new OpenLayers.Feature.Vector(circle); var circleFeatures = []; circleFeatures.push(circleFeature); // Cleanup Features First bufferLayer.removeAllFeatures(); bufferLayer.addFeatures(circleFeatures);}
أكثر...
projection: new OpenLayers.Projection("EPSG:900913"),displayProjection: new OpenLayers.Projection("EPSG: 4326")The event handler is as under.
{ radius = 3000; var sides = 50; if (!markersLayer) { markersLayer = new OpenLayers.Layer.Markers("Markers"); bufferLayer = new OpenLayers.Layer.Vector("Buffer Layer"); map.addLayer(markersLayer); map.addLayer(bufferLayer); } position = map.getLonLatFromPixel(e.xy); //Create Marker var size = new OpenLayers.Size(15, 15); var offset = new OpenLayers.Pixel( - (size.w / 2), -size.h); var icon = new OpenLayers.Icon(iconURL, size, offset); var marker = new OpenLayers.Marker(position, icon); // Cleanup Markers First markersLayer.clearMarkers(); markersLayer.addMarker(marker); //Create Polygon var circle = new OpenLayers.Geometry.Polygon.createRegularPolygon(position, radius, sides, 0); var circleFeature = new OpenLayers.Feature.Vector(circle); var circleFeatures = []; circleFeatures.push(circleFeature); // Cleanup Features First bufferLayer.removeAllFeatures(); bufferLayer.addFeatures(circleFeatures);}
أكثر...