Commit 89f0378266ab26c1cbae64969f14130efc733a87
1 parent
82d249d6
Exists in
master
and in
7 other branches
Incluído método para obtenção das coordenadas do íltimo ponto em um layer
Showing
1 changed file
with
38 additions
and
0 deletions
Show diff stats
classesphp/classe_shp.php
| @@ -301,6 +301,44 @@ string - xy | @@ -301,6 +301,44 @@ string - xy | ||
| 301 | return $xy; | 301 | return $xy; |
| 302 | } | 302 | } |
| 303 | /* | 303 | /* |
| 304 | +function: ultimoXY | ||
| 305 | + | ||
| 306 | +Obtém as coordenadas xy do último ponto existente no layer. O último ponto é considerado entre aqueles que estão visíveis no mapa atual | ||
| 307 | + | ||
| 308 | +return: | ||
| 309 | +array("layerprj"=>$xylayer,"mapprj"=>$xymapa) | ||
| 310 | +*/ | ||
| 311 | + function ultimoXY() | ||
| 312 | + { | ||
| 313 | + if(!$this->layer){return "erro";} | ||
| 314 | + $this->layer->queryByrect($this->mapa->extent); | ||
| 315 | + $res_count = $this->layer->getNumresults(); | ||
| 316 | + $sopen = $this->layer->open(); | ||
| 317 | + if($sopen == MS_FAILURE){return "erro";} | ||
| 318 | + $xy = array(); | ||
| 319 | + | ||
| 320 | + $result = $this->layer->getResult($res_count - 1); | ||
| 321 | + $shp_index = $result->shapeindex; | ||
| 322 | + $shape = $this->layer->getshape(-1,$shp_index); | ||
| 323 | + $lin = $shape->line(0); | ||
| 324 | + $pt = $lin->point(0); | ||
| 325 | + $this->layer->close(); | ||
| 326 | + $xylayer = array("x"=>$pt->x,"y"=>$pt->y); | ||
| 327 | + $prjMapa = $this->mapa->getProjection(); | ||
| 328 | + $prjTema = $this->layer->getProjection(); | ||
| 329 | + if (($prjTema != "") && ($prjMapa != $prjTema)) | ||
| 330 | + { | ||
| 331 | + $projInObj = ms_newprojectionobj($prjTema); | ||
| 332 | + $projOutObj = ms_newprojectionobj($prjMapa); | ||
| 333 | + $pt->project($projInObj, $projOutObj); | ||
| 334 | + $xymapa = array("x"=>$pt->x,"y"=>$pt->y); | ||
| 335 | + } | ||
| 336 | + else | ||
| 337 | + {$xymapa = $xylayer;} | ||
| 338 | + return array("layerprj"=>$xylayer,"mapprj"=>$xymapa); | ||
| 339 | + } | ||
| 340 | + | ||
| 341 | +/* | ||
| 304 | function: shpPT2shp | 342 | function: shpPT2shp |
| 305 | 343 | ||
| 306 | Cria um tema linear ou poligonal com base em pontos de um tema pontual. | 344 | Cria um tema linear ou poligonal com base em pontos de um tema pontual. |