我有一个带有特定标记的<p:gmap>。我想裁剪<p:gmap>的一部分。我不能用<p:imageCropper>做到这一点,因为它会裁剪图像,而不是谷歌地图。如何捕获Google地图的特定部分?
这是我的map bean:
@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页面:
<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>发布于 2016-04-22 17:10:53
通过裁剪地图,你的意思是你仍然想要所有的地图设施,但是对于选定的区域,你可以做一些类似this的事情(当用户试图裁剪地图并从原始地图构建中获取坐标时,使用另一个地图,将选定的区域设置为新地图并显示给用户)用户仍然可以使用地图设施。
https://stackoverflow.com/questions/36766011
复制相似问题