2014-02-21 28 views
0

我将使用primeface gmap创建地图。 我有我的JSF页面的代码,如图PM出现在网站:PrimeFaces地图中的标记

<h:head> 
    <title>Facelet Title</title> 
    <script src="http://maps.google.com/maps/api/js?sensor=false" 
     type="text/javascript"></script> 
</h:head> 
<h:body> 
    <h:body> 
<f:view contentType="text/html"> 
    <h1>Google Map</h1> 
    <p:gmap center="36.890257,30.707417" zoom="13" type="HYBRID" model="#{mapBean.simpleModel}" style="width:600px;height:400px"> 
    </p:gmap>  
</f:view> 

而且我mapBean是:

package mesbeans; 

import java.io.Serializable; 
import org.primefaces.model.map.DefaultMapModel; 
import org.primefaces.model.map.LatLng; 
import org.primefaces.model.map.MapModel; 
import org.primefaces.model.map.Marker; 

public class MapBean implements Serializable { 

    private MapModel simpleModel; 

    public MapBean() { 
     simpleModel = new DefaultMapModel(); 

     //Shared coordinates 
     LatLng coord1 = new LatLng(36.879466, 30.667648); 
     LatLng coord2 = new LatLng(36.883707, 30.689216); 
     LatLng coord3 = new LatLng(36.879703, 30.706707); 
     LatLng coord4 = new LatLng(36.885233, 30.702323); 

     //Basic marker 
     simpleModel.addOverlay(new Marker(coord1, "Konyaalti")); 
     simpleModel.addOverlay(new Marker(coord2, "Ataturk Parki")); 
     simpleModel.addOverlay(new Marker(coord3, "Karaalioglu Parki")); 
     simpleModel.addOverlay(new Marker(coord4, "Kaleici")); 
    } 

    public MapModel getSimpleModel() { 
     return simpleModel; 
    } 
} 

当我运行应用程序,只有地图显示没有标记?

回答

0

您的MapBean无法在jsf页面中识别。为了识别它,请使用@Named。所以你的bean应该如下。

import org.primefaces.model.map.DefaultMapModel; 
import org.primefaces.model.map.LatLng; 
import org.primefaces.model.map.MapModel; 
import org.primefaces.model.map.Marker; 

import javax.inject.Named 

@Named 
public class MapBean implements Serializable { 
    private MapModel simpleModel;  
    ...... 
0

您需要创建RINIT方法和其分配的坐标,因为执行该法第一和加载所有数据在JSF