[OpenLayers-Users] Re: zoom to feature(s) extent
Vladimir Stupar
stuparvladimir at gmail.com
Mon Dec 19 13:03:49 EST 2011
Dear Jim, thank you very, very much.
It worked perfectly.
I assume it would be too much to ask why my code didn't work. :)
Bests
Vlado
On Mon, Dec 19, 2011 at 6:33 PM, Jim White <jbw2003 at earthlink.net> wrote:
> Hi,
>
> You need to call
>
> map.zoomToExtent(new OpenLayers.Bounds(kml.getExtent()))
>
> from the event handler. Something like this
>
> deeds.events.on({
>
> 'loadend': function (evt) {
> var deeds_extent = deeds.getDataExtent();
> map.zoomToExtent(deeds_extent);
> }
> });
>
> Jim
>
>
>
>
> Hi to all,
>
> I am developing my app and every day I keep bumping in walls.
>
> Today I spend 12 hours trying to figure how to zoom to the extent of the
> queried features, but couldn't sort it out.
> I use *zoomToExtent(vector_layer.getExtent())*,
>
> but it zooms somewhere in the middle atlantic .
>
> In the firebug, when I call
>
> *getExtent()*
>
> it returns it. If I say
>
> *new OpenLayers.Bounds(vector_layer.getExtent())*
>
> it returns just left boundary?!
>
> If I try **vector_layer.calculateBounds** or **getBounds** it returns
> "undefined".
>
> The strangest thing is when I call **vector_layer.geometryType** it returns
> Null, although map displays all polygons perfectly.
>
> Can anybody help, I would be very grateful - this just makes me out of
> myself .
>
> Here is the code:
>
> var map, osm, kml;
>
> upit="*/kml/*";
> {%if search_details%}
>
> upit="*/kml/*?q={{x}}&r={{y}}";
>
> {%endif%}
>
> function init(){
>
>
> var options = {maxExtent: new OpenLayers.Bounds(
> 1813816.431496, 5245458.4167548, 2178341.4193136,
> 5664389.3081316),
> units: 'm',
> projection: new OpenLayers.Projection('EPSG:900913'),
> displayProjection: new OpenLayers.Projection('EPSG:3908')
>
> }
> map = new OpenLayers.Map('map', options);
>
> map.addControl(new OpenLayers.Control.LayerSwitcher());
> map.addControl(new OpenLayers.Control.MousePosition());
>
> osm = new OpenLayers.Layer.OSM(
> "OSM");
>
> kml = new OpenLayers.Layer.Vector("KML",
> {
> projection: new OpenLayers.Projection('EPSG:4326'),
> protocol: new OpenLayers.Protocol.HTTP({
> url: upit,
> format: new OpenLayers.Format.KML({
> extractAttributes: true,
> extractstyles: true
> })
> }),
> strategies: [new OpenLayers.Strategy.Fixed()]});
>
> map.addLayers([osm, kml]);
>
> var google_satellite = new OpenLayers.Layer.Google('Google', {
> type: google.maps.MapTypeId.SATELLITE
> });
> map.addLayer(google_satellite);
>
> /*map.zoomToExtent(
> new OpenLayers.Bounds(
> 1813816.431496, 5245458.4167548, 2178341.4193136,
> 5664389.3081316))*/
>
> map.zoomToExtent(new OpenLayers.Bounds(kml.getExtent()))
>
>
--
Vladimir Stupar
Katedra za Ekologiju šuma
Šumarski fakultet, Univerzitet u Banjaluci
S. Stepanovića 75a, 78000 Banjaluka
Bosna i Hercegovina
tel.:+38765692006
fax.:+38751460550
e-mail: stuparvladimir at gmail.com
skype: vmstupar
Vladimir Stupar
Department for Forest ecology
Forestry faculty, University in Banjaluka
S. Stepanovica 75a, 78000 Banjaluka
Bosnia & Hercegovina
tel.:+38765692006
fax.:+38751460550
e-mail: stuparvladimir at gmail.com
skype: vmstupar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20111219/b0e1145d/attachment.html
More information about the Users
mailing list