[OpenLayers-Dev] Set map extent to extent of a layer
Clark Woodward
cwoodward at redzonesoftware.com
Mon Oct 26 11:39:03 EDT 2009
I am having trouble setting the extent of my map to the extent of a layer.
The code below adds a Google base map and a WKT layer to the map and
correctly projects the polygon.
However, I need to set the map center and scale so that the layer is
correctly positioned on the map. Essentially I want to set the map extent =
layer extent.
I believe I am using the two lines below incorrectly
var bounds = new OpenLayers.Bounds(thrvec.getExtent);
alert (bounds.toString);
Can someone correct this code or provide me an alternate solution. Thanks in
advance!
Clark
Extent.js
______________________________________________________________
function init() {
var proj = new OpenLayers.Projection("EPSG:900913");
var display = new OpenLayers.Projection("EPSG:4326");
var map = new OpenLayers.Map("map", {projection: proj, displayProjection:
display});
map.addControl(new OpenLayers.Control.MousePosition());
var wkt = new OpenLayers.Format.WKT({'internalProjection': proj,
'externalProjection': display});
var gphy=new OpenLayers.Layer.Google("Google", {type: G_HYBRID_MAP,
numZoomLevels: 20, 'sphericalMercator': true, 'maxExtent': new
OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34)});
gphy.setIsBaseLayer(true);
map.addLayers([gphy]);
// WKT
str='POLYGON((-118.460185 34.095586,-118.458857 34.095874,-118.457521
34.095991,-118.456222 34.095947,-118.455012 34.095732,-118.453946
34.095366,-118.453056 34.094858,-118.452386 34.094218,-118.451945
34.093481,-118.451766 34.092677,-118.451837 34.091830,-118.452179
34.090969,-118.452769 34.090148,-118.453576 34.089374,-118.454575
34.088685,-118.455735 34.088115,-118.457001 34.087681,-118.458329
34.087392,-118.459664 34.087275,-118.460964 34.087320,-118.462163
34.087525,-118.463239 34.087900,-118.464118 34.088408,-118.464799
34.089048,-118.465240 34.089785,-118.465420 34.090589,-118.465338
34.091436,-118.464996 34.092288,-118.464417 34.093118,-118.463610
34.093892,-118.462600 34.094572,-118.461451 34.095152,-118.460185
34.095586))';
features=wkt.read([str]);
var style1 ={fillColor: '#FFFF33', fillOpacity: .5};
var thrvec=new OpenLayers.Layer.Vector('WKT', {style: style1});
map.addLayers([thrvec]);
thrvec.addFeatures(features);
var bounds = new OpenLayers.Bounds(thrvec.getExtent);
alert (bounds.toString);
bounds.transform(display,proj);
map.zoomToExtent(bounds)
var point = new OpenLayers.LonLat(-118.458591, 34.091633);
point.transform(display,proj);
map.setCenter(point,13);
}
HTML
______________________________________________________________
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script
src='http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAjpkAC9ePGe
m0lIq5XcMiuhR_wWLPFku8Ix9i2SXYRVK3e45q1BQUd_beF8dtzKET_EteAjPdGDwqpQ'></scri
pt>
<script src="OpenLayers.js"></script>
<script src="extent.js"></script>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>
<body onload="init()">
<div id="map" style="width: 671px; height: 461px; vertical-align:
middle; horizontal-align: center;"></div>
</body>
</html>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-dev/attachments/20091026/e561ad9b/attachment.html
More information about the Dev
mailing list