Primefaces Gmap从数据库加载坐标

时间:2013-11-13 15:40:50

标签: jpa collections primefaces

我想在字符串列中加载数据库中的坐标,并在LatLng对象中设置它们,如下所示:

public void loadAtlas() {
    advancedModel = new DefaultMapModel();
    List<String> list = new ArrayList<>();

    //get the map coordinates stored in ONE database string column
    for (TbDepUpb codUOR : getItems()) {    
        list.add(codUOR.getCoordenadas());
    }

    //set the coordinates in the list
    for (int i=0; i<list.size();i++) {
        advancedModel.addOverlay(new Marker(new LatLng(valueOf(list.get(i))), "Private Bank"));
    }

问题是LatLng需要一个(double,double)值。我使用了如上所述的valueOf,但它是Double。

如何从List获取值并将它们分开/设置为LatLng(double,double)需要?

参考:http://www.primefaces.org/showcase/ui/gmapHome.jsf

1 个答案:

答案 0 :(得分:0)

经过深入研究,我对以下内容感到满意:

Bean方法:

public void loadAtlas() {
    advancedModel = new DefaultMapModel();

    for (TbDepUpb codUOR : getItems()) {
        advancedModel.addOverlay(new Marker(new LatLng(codUOR.getLatitude(), codUOR.getLongitude()), codUOR.getNome()));

    }
}

JSF(主要代码):

<p:growl id="messages" showDetail="true" life="6000"/>
    <p:gmap center="-40,-50" zoom="4" type="HYBRID" model="#{tbDepUpbController.advancedModel}" style="width:1100px;height:1200px">
        <p:ajax event="overlaySelect" listener="#{tbDepUpbController.onMarkerSelect}" update="messages"/>
        </p:outputPanel>  
    </p:gmapInfoWindow>  
</p:gmap>