$layer){ if(isLayerVisible($layer) === TRUE){ $oLayer = @$oMap->GetLayerByName($layer); // make sure the layer exists in the map. if(is_object($oLayer)){ $oLayer->set('tolerance', 0); if ($oLayer->type == MS_LAYER_RASTER || $oLayer->type == MS_LAYER_QUERY || $oLayer->type == MS_LAYER_CIRCLE || $oLayer->type == MS_LAYER_CHART) { die("{'error':'maptips are only valid for vector layers'}"); } if (@$oLayer->queryByShape($oSpatialFilter) == MS_SUCCESS) { $oRes = $oLayer->getResult(0); $oLayer->open(); $oShape = $oLayer->getShape($oRes->tileindex,$oRes->shapeindex); $szMapTipText .= $oLayer->name." : ".$oShape->values[$aMapTipTextField[$key]].$szBreak; $szLabels = $aLabel[$key]; $szMapTip = $oShape->values[$aMapTipTextField[$key]]; $szURL = buildCustonUrl($oShape->values,$aMapTipURL[$key]); $szMapTip = $szMapTip != "undefined" ? $szMapTip : ""; $szURL = $szURL != "undefined" ? $szURL : ""; $szLabels = $szLabels != "undefined" ? $szLabels : ""; array_push($aMapTips, $szMapTip); array_push($aURL, $szURL); array_push($aTipLabel,$szLabels); $oLayer->close(); } } } } echo "{'maptips':".var2json($aMapTips).",'url':".var2json($aURL).",'label':".var2json($aTipLabel).",'test':'casper'}"; } else { echo "{'maptips':'','url':'','label':''}"; } function isLayerVisible($szLayerName){ $aVisLayers = split(",",$_POST["visLayers"]); foreach($aVisLayers as $item){ if(trim($szLayerName) == trim($item)){ return true; } } return false; } function buildCustonUrl($aValues,$url){ if($url != ""){ $pattern = "/\[(.+?)\]/"; preg_match_all($pattern, $url, $values,PREG_PATTERN_ORDER); if(is_array($values[0])){ foreach($values[0] as $key=>$item){ $url = str_replace($item,$aValues[$values[1][$key]],$url); } } return $url; } else { return ""; } } ?>