5 votos

Es posible bloquear la vista del mapa?

Problema: tengo openlayers aplicación con algunas mapa general que sólo tiene una escala para el tamaño de la misma no cambia aunque he ampliado mi mapa. Ahora me gustaría hacer el mapa general bloqueado - bloqueado, y en el mismo tiempo, para hacer posible mover el rectángulo de extensión en la vista del mapa, por lo que no siempre en el centro. Resumiendo quiero cambiar de propiedades entre el rectángulo de extensión en la vista del mapa y la vista general del mapa.

Voy a estar agradecido por su ayuda

23voto

Soldarnal Puntos 2646

No estoy seguro de entender lo que quiere, pero creo que el ejemplo de código siguiente puede ser útil:

map = new OpenLayers.Map("mapdiv");
var ol = new OpenLayers.Layer.WMS(
    "OpenLayers WMS", 
    "http://vmap0.tiles.osgeo.org/wms/vmap0",
    {layers: 'basic'}
);
map.addLayer(ol);
map.setCenter(new OpenLayers.LonLat(0, 0), 2);
ov = new OpenLayers.Control.OverviewMap({maximized: true});
map.addControl(ov);
ov.maxRatio = ov.ovmap.getResolution()/map.getResolutionForZoom(map.numZoomLevels);
ov.minRatio = ov.ovmap.getResolution()/map.getResolurionForZoom(0);

Enlace a jsfiddle.

15voto

goodwill Puntos 2280

Aquí usted puede encontrar un artículo sobre el OverviewMap de Control.

Voy a citar el párrafo pertinente:

[Si] te gustaría cambiar el criterio por el cual la vista del mapa que decide cuándo la actualización de sí mismo, usted puede reemplazar la isSuitableOverview() método. Para ello, en primer lugar, construir el control, a continuación, modifique las propiedades/métodos, a continuación, agregue el control en el mapa:

var ovControl = new OpenLayers.Control.OverviewMap();
ovControl.isSuitableOverview = function() {
    return false;
};
map.addControl(ovControl);

Esto hará que el mapa general para la actualización de sí mismo con cada movimiento del mapa principal - de modo que el rectángulo de extensión, que se mantendrá siempre en el centro. Si la misma función siempre devuelve true, entonces el mapa general nunca zoom o volver a centrar a sí mismo.

Así, tu problema debe ser resuelto con el siguiente código:

var ovControl = new OpenLayers.Control.OverviewMap();
ovControl.isSuitableOverview = function() {
    return true;
};
map.addControl(ovControl);

5voto

Chris Puntos 768

Muchas gracias. Funciona ahora correctamente :) Aún cuando muevo una vista del mapa principal en algún área en blanco en la vista del mapa se mueve así (quiero bloqueado). Pero ahora es simplemente un pequeño problema, no es importante.

Gracias de nuevo :)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X