我不知道我是否还要做其他事情,但我设置了标记的阴影,但这些没有显示在地图上
这是我的XHTML
<script src="http://maps.google.com/maps/api/js?sensor=true|false"
type="text/javascript"></script>
<script>
//<![CDATA[
function handleComplete(xhr, status, args){
var gmap = PF('gMapWV').getMap();
for(var i in gmap.markers)
{
var newMarker = eval("args.marker"+i);
var newPosition = eval("args.position"+i);
var oldMarker = gmap.markers[i];
oldMarker.setPosition(newPosition);
oldMarker.icon=newMarker.icon;
oldMarker.setShadow("https://maps.gstatic.com/mapfiles/ms2/micons/msmarker.shadow.png");
oldMarker.setMap(gmap);
}
}
// ]]>
</script>
</ui:define>
....
<p:poll interval="#{manageLoadExecution.refreshInterval}" listener="#{manageLoadExecution.ajaxPoll}" oncomplete="handleComplete(xhr, status, args)" />
<p:gmap widgetVar="gMapWV" id="gMapWV" center="#{manageLoadExecution.latitude} , #{manageLoadExecution.longitude}" zoom="#{manageLoadExecution.zoomLevel}" fitBounds="false" type="terrain" style="width:900px;height:400px" model="#{manageLoadExecution.mapLoadModel}" disableDefaultUI="false" >
<p:ajax event="overlaySelect" listener="#{manageLoadExecution.onMarkerSelect}" />
<p:gmapInfoWindow id="infoWindow" maxWidth="300">
<p:outputPanel style="text-align: left; display: block; margin: auto; height:270px; width:320px" rendered="#{! empty manageLoadExecution.selectedLoad}">
这是我的托管Bean
if(load.getColBuId() != null){
Marker colMarker = new Marker(new LatLng(load.getColBuId().getLatitude(),load.getColBuId().getLongitude()),load.getColBuId().getRef());
colMarker.setIcon(Constants.POI_COL_SITE);
colMarker.setShadow(Constants.POI_SHADOW);
markColList.add(colMarker);
}
if(load.getDelBuId() != null){
Marker delMarker = new Marker(new LatLng(load.getDelBuId().getLatitude(),load.getDelBuId().getLongitude()),load.getDelBuId().getRef());
delMarker.setIcon(Constants.POI_WELL_SITE);
delMarker.setShadow(Constants.POI_SHADOW);
markDelList.add(delMarker);
}
if(load.getLoadStatus().getLastLatitude() != null && load.getLoadStatus().getLastLongitude()!=null){
String alert = Constants.POI_LOAD_OK;
if(load.getMaxAlert()!= null && load.getMaxAlert()=='H'){
alert=Constants.POI_LOAD_ALERT;
}
//Marker loadMarker = new Marker(new LatLng(load.getLoadStatus().getLastLatitude(),load.getLoadStatus().getLastLongitude()),load.getRef(),alert,alert);
Marker loadMarker = new Marker(new LatLng(load.getLoadStatus().getLastLatitude(),load.getLoadStatus().getLastLongitude()),load.getRef());
loadMarker.setIcon(alert);
loadMarker.setShadow(Constants.POI_SHADOW);
markLoadList.add(loadMarker);
}
图标显示正确,但不显示阴影。 我错过了任何一步吗?我忘了设置任何财产吗? 图像的路径是可以的,事实上我正在使用:
https://maps.gstatic.com/mapfiles/ms2/micons/msmarker.shadow.png
作为阴影图像
非常感谢您提前
答案 0 :(得分:1)
标记阴影已在Google Maps Javascript API 3.14版中删除。以编程方式指定的任何阴影都将被忽略。
来自Google官方文档: https://developers.google.com/maps/documentation/javascript/markers#complex_icons