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 | 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 | 342 | function: shpPT2shp |
| 305 | 343 | |
| 306 | 344 | Cria um tema linear ou poligonal com base em pontos de um tema pontual. | ... | ... |