首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何裁剪<p:gmap>的一部分?

问如何裁剪<p:gmap>的一部分?
EN

Stack Overflow用户
提问于 2016-04-21 17:54:14
回答 1查看 809关注 0票数 1

我有一个带有特定标记的<p:gmap>。我想裁剪<p:gmap>的一部分。我不能用<p:imageCropper>做到这一点,因为它会裁剪图像,而不是谷歌地图。如何捕获Google地图的特定部分?

这是我的map bean:

代码语言:javascript
复制
@ManagedBean
@ViewScoped
public class InfoWindowView implements Serializable {

    private static final long serialVersionUID = 1L;

    @EJB
    GestionAnalyseLocal m;

    private MapModel advancedModel;

    private Marker marker;

    @PostConstruct
    public void init() throws IOException {
        advancedModel = new DefaultMapModel();

        List<Analyse> alys = new ArrayList<Analyse>();
        alys = m.findAll();
        for (int i = 2; i <= alys.size(); i++) {
            Double x = null;
            Double y = null;
            try {
                x = Double.parseDouble(alys.get(i).getLongitude());
                y = Double.parseDouble(alys.get(i).getLatitude());

                LatLng coord1 = new LatLng(y, x);
                if (alys.get(i).getUu_HandoffOk() == 1) {
                    advancedModel.addOverlay(new Marker(coord1, "test", "point.png",
                            "http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png  "));
                } else {
                    if (alys.get(i).getUu_OutgoingCallOk() == 1) {
                        advancedModel.addOverlay(new Marker(coord1, "test", "phone",
                                "http://maps.google.com/mapfiles/kml/pal4/icon52.png"));
                    }
                } 
            } catch (Exception e) {
                System.out.println("err");
            }

        }

    }

    public MapModel getAdvancedModel() {
        return advancedModel;
    }

    public void onMarkerSelect(OverlaySelectEvent event) {
        marker = (Marker) event.getOverlay();
    }

    public Marker getMarker() {
        return marker;
    }
}

这是JSF页面:

代码语言:javascript
复制
  <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
    xmlns:jsf="http://xmlns.jcp.org/jsf"
    xmlns:pt="http://xmlns.jcp.org/jsf/passthrough"
    xmlns:p="http://primefaces.org/ui">

<h:head>

      <script src="http://maps.google.com/maps/api/js?sensor=true|false" type="text/javascript" ></script>

 </h:head>
<h:body>
 <h:form >
 <h:commandButton action="#{infoWindowView.init()}" value="Generate" />

 </h:form>
 <h:form>
    <p:growl id="growl" showDetail="true" />

    <h:panelGrid columns="2" columnClasses="left,right" style="width:100%">
        <p:chart type="pie" model="#{chartView.pieModel1}" style="width:400px;height:300px">
            <p:ajax event="itemSelect" listener="#{chartView.itemSelect}" update="growl" />
        </p:chart>



    </h:panelGrid>

</h:form>
<h:form>  
    <p:gmap id="gmap" center="36.8189700,10.1657900" zoom="12" type="HYBRID" model="#{infoWindowView.advancedModel}" style="width:100%;height:400px">

        <p:ajax event="overlaySelect" listener="#{infoWindowView.onMarkerSelect}" />

        <p:gmapInfoWindow id="infoWindow">
            <p:outputPanel style="text-align: center; display: block; margin: auto">

                        <h:graphicImage value="resources/images/orange.png" height="150" />
                    <br />
                    <h:outputText value="#{infoWindowView.marker.title}" />

            </p:outputPanel>
        </p:gmapInfoWindow>
    </p:gmap>

    <!-- Preload for demo -->
    <p:outputPanel style="display:none">

        <p:graphicImage name="images/#{orange.png}" title="orange.png" />
    </p:outputPanel>
</h:form>
</h:body>
  </ui:composition>
EN

回答 1

Stack Overflow用户

发布于 2016-04-22 17:10:53

通过裁剪地图,你的意思是你仍然想要所有的地图设施,但是对于选定的区域,你可以做一些类似this的事情(当用户试图裁剪地图并从原始地图构建中获取坐标时,使用另一个地图,将选定的区域设置为新地图并显示给用户)用户仍然可以使用地图设施。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36766011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档