我将使用primeface gmap创建一个地图。 我在我的jsf页面中有这个代码,如PM展示案例网站所示:
<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 :(得分: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;
......
答案 1 :(得分:0)
你需要创建rinit方法并在其中分配坐标,因为首先执行此方法并加载jsf中的所有数据