Fórumok

RE: OpenLayers Portlet

Pedro Mendes, módosítva 11 év-val korábban

OpenLayers Portlet

New Member Bejegyzések: 9 Csatlakozás dátuma: 2012.05.30. Legújabb bejegyzések
Hi,
I'm new to Liferay and Portlet development and I'm trying to show an OpenLayers map in a portlet but without success.

Here is my view.jsp


<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ page import="javax.portlet.PortletPreferences" %>
<script src="http://dev.openlayers.org/releases/OpenLayers-2.11/lib/OpenLayers.js" type="text/javascript"></script>

<p>My Map</p>

<div style="width:100%; height:100%" id="map"></div>
<script defer type="text/javascript">
    var map = new OpenLayers.Map('map');
    var wms = new OpenLayers.Layer.WMS( "OpenLayers WMS",
        "http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
    map.addLayer(wms);
    map.zoomToMaxExtent();
</script>


The map is assigned to the div but just isn't visible. Does anyone know why? Thanks
thumbnail
Nagendra Kumar Busam, módosítva 11 év-val korábban

RE: OpenLayers Portlet

Liferay Master Bejegyzések: 678 Csatlakozás dátuma: 2009.07.07. Legújabb bejegyzések
Can you try to debug your code with FireBug tool, actually div was filled with content. It seems there is some problem with css/display
thumbnail
Pilar Hidalgo, módosítva 11 év-val korábban

RE: OpenLayers Portlet

New Member Bejegyzések: 14 Csatlakozás dátuma: 2012.04.10. Legújabb bejegyzések
Hi,

Did yo solve it? I have the same problem.
thumbnail
Pilar Hidalgo, módosítva 11 év-val korábban

RE: OpenLayers Portlet

New Member Bejegyzések: 14 Csatlakozás dátuma: 2012.04.10. Legújabb bejegyzések
Me respondo a mi misma:


falta el onload() para que lo cargue al entrar en la página, este es el código que finalmente me funcionó:

<style type="text/css">
#map { width: 788px; height: 395px; }
</style>
<div id="map"> </div>
<script type="text/javascript" src="<%= request.getContextPath() %>/js/OpenLayers-2.10/OpenLayers.js"></script>
<script>
var body = document.getElementsByTagName("body")[0];

body.addEventListener("load", init(), false);

function init() {

var map = new OpenLayers.Map( 'map' );
var options = {numZoomLevels: 5, isBaseLayer:true};
var contextPath = "<%=request.getContextPath()%>";
var url= contextPath+ "/img/HYP_50M_SR_W.GIF";

var layer = new OpenLayers.Layer.Image('Mapa', url,
new OpenLayers.Bounds(-180, -90, 180, 90),
new OpenLayers.Size(788, 395),
options
);


map.addLayer(layer);

map.setCenter(new OpenLayers.LonLat(), 0);
map.addControl( new OpenLayers.Control.LayerSwitcher() );


};
</script>
Pedro Mendes, módosítva 11 év-val korábban

RE: OpenLayers Portlet

New Member Bejegyzések: 9 Csatlakozás dátuma: 2012.05.30. Legújabb bejegyzések