Aps Final 2
Aps Final 2
Aps Final 2
Tatuap
Cincia da Computao
SO PAULO
2015
Sumrio
OBJETIVO DO TRABALHO................................................................................. 1
INTRODUO ..................................................................................................... 3
3.1
Android .......................................................................................................... 6
3.2
3.3
3.4
3.5
3.6
4.2
XML ............................................................................................................. 12
4.3
PHP ............................................................................................................. 14
4.4
HTML 5........................................................................................................ 14
4.5
Bootstrap ..................................................................................................... 16
4.6
JavaScript .................................................................................................... 16
PROJETO .......................................................................................................... 18
6.1
Aplicativo ..................................................................................................... 22
6.2
Servidor ....................................................................................................... 22
7.2
BIBLIOGRAFIA .................................................................................................. 36
OBJETIVO DO TRABALHO
Oculta pelo asfalto, uma imensido de gua corre por mais de 1.500 km de rios e
crregos espalhados por toda a cidade. Antes usados pelos ndios como fonte de
navegao e alimento, passaram a ser tratados como obstculo ao desenvolvimento
e modernizao de So Paulo conforme o aumento da povoao. "Optou-se, ento,
por canaliz-los e escond-los para a construo de ruas e avenidas", explica a
arquiteta e urbanista ROLNIK. No entanto, na poca das chuvas - no h como contlos. Completamente cheios, eles transbordam e, como suas vrzeas esto ocupadas,
inclusive por moradias, ocorrem as enchentes. "Elas so produto da urbanizao",
avalia a gegrafa SEABRA.
INTRODUO
3.1
CONCEITOS GERAIS
Android
3.2
Para cada valor representado, atribui-se um nome (ou rtulo) que descreve seu
significado.
Apesar do XML ser uma linguagem mais rica e possuir maior grau de maturidade, o
JSON representa informaes de forma mais compacta, rpida e simples.
3.3
3.4
Sistemas Distribudos
Segundo TANENBAUM,
um
Sistema Distribudo
uma coleo de
10
3.5
Engenharia de Software
3.6
Web Service
11
12
4.1
App Inventor
avanado
de
programao,
roda
quase
inteiramente
no
navegador.Com ele possvel criar aplicativos (ou apps), de forma simplificada. Tudo
que voc tem a fazer apenas arrastar os cones correspondentes para o espao que
simula a tela do aparelho com Android.
4.2
XML
13
desconhecidas e de pouco uso tambm podem ser definidas sem maior trabalho e
sem necessidade de ser submetidas aos comits de padronizao.
14
4.3
PHP
4.4
HTML 5
15
linguagem HTML. Esta nova verso traz consigo importantes mudanas quanto ao
papel do HTML no mundo da Web, atravs de novas funcionalidades como semntica
e acessibilidade. Possibilita o uso de novos recursos antes possveis apenas com a
aplicao de outras tecnologias. Sua essncia tem sido melhorar a linguagem com o
suporte para as mais recentes multimdias, enquanto a mantm facilmente legvel por
seres humanos e consistentemente compreendida por computadores e outros
dispositivos (navegadores, parsers etc). O HTML5 ser o novo padro para HTML,
XHTML, e HTML DOM. Atualmente, est em fase de esboo, porm diversos
navegadores j implementam algumas de suas funcionalidades.
Aps seus predecessores imediatos HTML 4.01 e XHTML 1.1, HTML5 uma
resposta observao de que o HTML e o XHTML, de uso comum na World Wide
Web, uma mistura de caractersticas introduzidas por vrias especificaes,
juntamente com aquelas introduzidas por software, tais como os navegadores,
aqueles estabelecidos pela prtica comum, e os muitos erros de sintaxe em
documentos existentes na web. , tambm, uma tentativa de definir uma nica
linguagem simples de marcao que possa ser escrita em HTML ou em sintaxe
XHTML. Isso inclui modelos de processamento detalhados para incentivar
implementaes mais interoperveis; isso estende, melhora e racionaliza a marcao
disponvel para documentos, e introduz marcaes e interfaces de programao de
aplicativos (APIs) para aplicaes web complexas. Pelas mesmas razes, HTML5
tambm um candidato em potencial aplicaes multi-plataforma mveis. Muitos
recursos do HTML5 tem sido construdos com a considerao de ser capaz de
executar em dispositivos de baixa potncia como smartphones e tablets.
16
4.5
Bootstrap
4.6
JavaScript
17
18
PROJETO
Classe: google.maps.Geocoder;
Descrio: Cria uma nova instncia de um Geocoder que envia pedidos geocode para
os servidores do Google.
Classe: navigator.geolocation;
Descrio: O mtodo Geolocation.getCurrentPosition() utilizado para capturar a
posio atual do dispositivo. utilizado tambm para verificar se o dispositivo suporta
a utilizao do mtodo.
Classe: google.maps.LatLng;
Descrio: A LatLng um ponto em coordenadas geogrficas: latitude e longitude.
Latitude varia entre -90 e 90 graus, inclusive. Valores acima ou abaixo deste intervalo
ser fixada ao intervalo [-90, 90]. Isto significa que, se o valor especificado inferior a
-90, ele ser ajustado para -90. E se o valor for superior a 90, vai ser definido como
90. Longitude varia entre -180 e 180 graus, inclusive. Valores acima ou abaixo deste
intervalo ser envolvido de forma que eles fiquem dentro do intervalo. Por exemplo,
um valor de -190 ser convertido em 170. Um valor de 190 ser convertido para -170.
Isso reflete o fato de que longitudes se envolvem ao redor do globo. Embora o mapa
padro associados projeo longitude com a coordenada x do mapa, e latitude com a
coordenada y, a coordenada da latitude sempre escrito em primeiro lugar, seguido
19
Classe: google.maps.Marker;
Descrio: Cria um marcador com as opes especificadas. Se for especificado um
mapa, o marcador adicionado ao mapa sobre construo. Note-se que a posio
deve ser definida para o marcador para exibir.
Classe: google.maps.MapsEventListener;
Descrio: Esta classe opaca. Ele no tem mtodos e nenhum construtor. Seus
casos so devolvidos a partir addListener(), addDomListener() e, eventualmente, so
passados de volta para removeListener().
Classe: google.maps.Map;
Descrio: Cria um novo mapa dentro do recipiente HTML dado, que geralmente
um elemento DIV.
20
Figura 2: dados.xml
Figura 3: dados.txt
21
22
6.1
Aplicativo
Figura 4: Blocks
Figura 5: Designer
6.2
Servidor
23
index.php
<?php
require_once('lib/geraxml.php');
require_once('lib/Mobile_Detect.php');
$detect = new Mobile_Detect;
?>
<!doctype html>
<html lang=pt-BR>
<head>
<meta name=robots content="noindex, nofollow"/>
<link rel=icon href=img/rainy.png>
<meta charset=UTF-8>
<meta http-equiv=X-UA-Compatible content="IE=edge">
<meta name=viewport content="width=device-width, initial-scale=1">
<title>APS - Mapa do alagamento</title>
<meta name=description content="APS"/>
<link href=css/bootstrap.min.css rel=stylesheet>
<!--[if lt IE 9]>
<script
src=http://html5shiv-printshiv.googlecode.com/svn/trunk/html5shiv-
printshiv.js></script>
<![endif]-->
</head>
<body>
<?php if ($detect->isMobile()):?>
<div class=container>
<div class="col-lg-12 col-md-12 page-header">
<h1><strong>APS</strong></h1>
24
</div>
</div>
<div class=container>
<div class="panel panel-default">
<div class=panel-heading>Informaes obtidas via Google Maps API</div>
<div class=panel-body>
<form action=lib/salvar.php class=col-xs-12 method=post>
<p class="help-block text-uppercase">
<small><strong>Voc est aqui</strong></small>
</p>
<div class=form-group>
<label for=latitude>Latitude</label>
<input type=text class=form-control name=latitude id=latitude placeholder=Latitude
readonly=readonly>
</div>
<div class=form-group>
<label for=longitude> Longitude</label>
<input
type=text
class=form-control
name=longitude
id=longitude
name=endereco
id=endereco
placeholder=Longitude readonly=readonly>
</div>
<div class=form-group>
<label for=longitude> Endereo</label>
<input
type=text
class=form-control
placeholder=Endereo readonly=readonly>
</div>
<div class=form-group>
25
class=help-block>Pontos
de
alagamento:
<span
id=pontos
class=badge></span></p>
<div id=map class=col-xs-12 style=height:450px></div>
</div>
</div>
</div>
<div id=myModal class="modal fade bs-example-modal-sm" tabindex=-1 role=dialog
aria-labelledby=mySmallModalLabel>
<div class="modal-dialog modal-sm">
<div class=modal-content>
<div class=modal-header>
26
h=new
google.maps.Geocoder;modal=document.getElementById("msg");latitude=document.
getElementById("latitude");longitude=document.getElementById("longitude");enderec
o=document.getElementById("endereco");pontos=document.getElementById("pontos
");if(navigator.geolocation){navigator.geolocation.getCurrentPosition(d)}else{modal.in
nerHTML="O
seu
navegador
Geolocalizao.";$("#myModal").modal("show")}function
no
d(i){var
suporta
j=new
google.maps.LatLng(i.coords.latitude,i.coords.longitude);latitude.value=i.coords.latitu
de;longitude.value=i.coords.longitude;b=new
google.maps.Marker({position:new
google.maps.LatLng(parseFloat(i.coords.latitude),parseFloat(i.coords.longitude)),ma
p:g});google.maps.event.addListener(b,"click",(function(k,l){return
function(){e.setContent("Seu
27
local");e.open(g,k)}})(b,c));h.geocode({location:j},function(l,k){if(k===google.maps.Ge
ocoderStatus.OK){if(l[1]){endereco.value=l[1].formatted_address}else{window.alert("
Nenhum
resultado
encontrado")}}else{window.alert("Falha:
"+k)}})}var
g=new
google.maps.Map(document.getElementById("map"),{zoom:10,scrollwheel:false,cent
er:new
google.maps.LatLng(-23.5483498,-
46.3801577),mapTypeId:google.maps.MapTypeId.ROADMAP});var
e=new
a(j){var
"+o[t]+",
"+p[t]+"
<br>
Endereo:
em
dispositivo
"+i[t]);e.open(g,s)}})(b,c))}}});</script>
<?php else: ?>
<div class=container>
<div class="col-lg-12 col-md-12 page-header">
<h1
class=text><strong>Este
mvel.</strong></h1>
</div>
</div>
<?php endif ;?>
</body>
</html>
sistema
funciona
apenas
28
geraxml.php
<?php
$coordenadas = file('dados/dados.txt');
$dom = new DOMDocument('1.0', 'UTF-8');
$data = $dom->createElement('data');
$dom->appendChild($data);
foreach ($coordenadas as $coordenada) {
$dados = explode(":", $coordenada);
$local = $dom->createElement('local');
$cords = $dom->createElement('coordenadas', $dados[0]);
$endereco = $dom->createElement('endereco', $dados[1]);
$local->appendChild($cords);
$local->appendChild($endereco);
$data->appendChild($local);
}
file_put_contents('dados/dados.xml', $dom->saveXML());
salvar.php
<?php
if ($_POST['latitude'] != null && $_POST['longitude'] != null && $_POST['endereco'] !=
null):
$f = fopen("../dados/dados.txt", "a+", 0);
$linha = $_POST['latitude'] . ", " . $_POST['longitude'] . " : " . $_POST['endereco'] .
"\n";
fwrite($f, $linha, strlen($linha));
fclose($f);
echo "<script>window.location='../index.php';</script>";
29
else:
echo "<script>window.location='../index.php?null=true';</script>";
endif;
30
7.1
31
7.2
32
33
34
35
36
BIBLIOGRAFIA
37
38
39
40