| Últimas 20 atualizações de José Darci Rodrigues Junior |
|
|
Neste artigo veremos como realizar o upload de arquivos com Flex e PHP em suas aplicações Flex.
O processo de envio de arquivos para o servidor web é realizado pelo PHP, mas antes de criarmos nosso código PHP, é necessário preparar o servidor para receber os arquivos, isto é, dar permissões a pastas específicas e tornar uma pasta habilitada a receber o arquivo enviado por upload.
Para dar permissão a uma pasta, clique com o botão direito do mouse no ambiente do servidor e escolha a opção “Permissões de Arquivo”. Na janela que se abrir, digite o código 777 para servidores Apache, isto dará permissões de escrita na pasta escolhida.
Partindo para o script PHP, iremos cria-lo desta maneira:
Listagem 1: Arquivo PHP responsável pelo upload
<?php
//Filedata é a variável que o flex envia com o arquivo para upload
$arquivo = $_FILES['Filedata'];
// Pasta onde o arquivo vai ser salvo
$_UP['pasta'] = 'arquivos/';
// Tamanho máximo do arquivo (em Bytes)
$_UP['tamanho'] = 1024 * 1024 * 2; // 2Mb
// Array com as extensões permitidas
$_UP['extensoes'] = array('pdf','doc','txt', 'jpg');
// Renomeia o arquivo? (Se true, o arquivo será salvo como .jpg e um nome único)
$_UP['renomeia'] = false;
// Array com os tipos de erros de upload do PHP
$_UP['erros'][0] = 'Não houve erro';
$_UP['erros'][1] = 'O arquivo no upload é maior do que o limite do PHP';
$_UP['erros'][2] = 'O arquivo ultrapassa o limite de tamanho especifiado no HTML';
$_UP['erros'][3] = 'O upload do arquivo foi feito parcialmente';
$_UP['erros'][4] = 'Não foi feito o upload do arquivo';
// Verifica se houve algum erro com o upload. Se sim, exibe a mensagem do erro
if ($_FILES['Filedata']['error'] != 0) {
die("Não foi possível fazer o upload, erro:<br />" .
$_UP['erros'][$_FILES['Filedata']['error']]);
exit; // Para a execução do script
}
// Caso script chegue a este ponto, não houve erro com o processo de upload
e o PHP pode continuar
// Faz a verificação da extensão do arquivo
//$extensao = strtolower(end(explode('.', $_FILES['arquivo']['name'])));
$arquivo = $_FILES['Filedata']['name'];
$extensao = substr($arquivo,-3);
if (array_search($extensao, $_UP['extensoes']) === false) {
echo "Por favor, envie arquivos com as seguintes extensões: doc,
pdf, txt ou jpg";
}
// Faz a verificação do tamanho do arquivo enviado
else if ($_UP['tamanho'] < $_FILES['Filedata']['size']) {
echo "O arquivo enviado é muito grande, envie arquivos de até 2Mb.";
}
// O arquivo passou em todas as verificações, hora de tentar movê-lo para a pasta
else {
// Primeiro verifica se deve trocar o nome do arquivo
if ($_UP['renomeia'] == true) {
// Cria um nome baseado no UNIX TIMESTAMP atual e com
extensão .jpg
$nome_final = date('d-m-Y').'_
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Criando um gráfico do tipo Pizza com Flex e PHP
Olá pessoal. Neste artigo veremos como criar um gráfico do tipo pizza, o famoso Pie Chart, no Flex Builder, com uso do PHP obtendo os dados de um servidor de banco de dados MySQL.
Inicialmente iremos criar, como de costume, um arquivo PHP que, nada mais nada menos, irá trazer os dados que precisamos do nosso banco de dados MySQL.
O banco que será usado como exemplo possui uma tabela de cargos, uma tabela de setor (entende-se por departamento) e uma tabela email. Cada departamento possui no mínimo um email cadastrado. Não se atente a tabela de emails, pois isto faz parte de uma regra de negócio específica e que não influenciará em nada na construção do gráfico, apenas para fins de esclarecimento sobre as relações entre as tabelas. O script para construção das tabelas segue abaixo.
Listagem 1: Tabela email
DROP TABLE IF EXISTS `comercial`.`email`;
CREATE TABLE `comercial`.`email` (
`idemail` int(11) NOT NULL AUTO_INCREMENT,
`descricao` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '''',
PRIMARY KEY (`idemail`)
) ENGINE=InnoDB AUTO_INCREMENT=34 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT=''emails da empresa'';
Listagem 2: Tabela Setor
DROP TABLE IF EXISTS `comercial`.`setor`;
CREATE TABLE `comercial`.`setor` (
`idsetor` int(11) NOT NULL AUTO_INCREMENT,
`descricao` varchar(200) COLLATE latin1_general_ci NOT NULL DEFAULT '''',
`idemail` int(11) NOT NULL DEFAULT ''0'',
`idemail2` int(11) DEFAULT NULL,
PRIMARY KEY (`idsetor`),
KEY `FK_setor_1` (`idemail`),
CONSTRAINT `FK_setor_1` FOREIGN KEY (`idemail`) REFERENCES `email` (`idemail`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Listagem 3: Tabela cargos
DROP TABLE IF EXISTS `comercial`.`cargos`;
CREATE TABLE `comercialesper`.`cargos` (
`idcargo` int(11) NOT NULL AUTO_INCREMENT,
`idsetor` int(11) NOT NULL DEFAULT ''0'',
`descricao` varchar(250) COLLATE latin1_general_ci NOT NULL DEFAULT '''',
PRIMARY KEY (`idcargo`),
KEY `FK_cargos_1` (`idsetor`),
CONSTRAINT `FK_cargos_1` FOREIGN KEY (`idsetor`) REFERENCES `setor` (`idsetor`)
) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
Após a criação das tabelas, iremos povoá-las com dados. Para exemplo, foram inseridos: Administrativo, Compras, Vendas , TI, Fiscal , Logística e Lojas. Idem para os cargos onde foi atribuído um idsetor a cada cargo. Como são diversos cargos, não é necessário mencioná-los aqui, pois o objetivo didático é explicar o procedimento. O leitor pode povoar as tabelas como preferir.
O passo seguinte é criar um arquivo PHP que carrega as informações que iremos exibir no gráfico pizza. Aqui iremos demonstrar a relação de cargos cadastrados por setor específico. Para isso, criaremos o arquivo PHP que segue abaixo. Não será exibido aqui o arquivo de conexão com o banco de dados MySQL, apenas será citado no código, como conn.php. Há diversos exemplos sobre como conectar o PHP ao banco de dados MySQL, como não faz parte do escopo, também iremos pular esta parte.
Listagem 4: Consultando os dados
<?php
include "conn.php";
$link = getConnDB();
$sql = ''select
se.descricao as setor,
count(*) as total from cargos ca
inner join setor se
on ca.idsetor = se.idsetor
group by setor'';
// Perform Query
$result = mysql_query($sql, $link);
if ($result)
{
/* xml result */
$xml = XMLHeader() . "<all>";
while ($row = mysql_fetch_assoc($result))
{
$v_setor = $row[''setor''];
$v_total = $row[''total''];
$node = "<row" .
" setor = ". QuotedStr( $v_setor ).
" total = ". QuotedStr( $v_total ).
"/>" ;
$xml = $xml . $node;
}
$xml = $xml . "</all>" ;
/* close statement */
mysql_free_result($result);
/* return result */
echo $xml ;
}?>
Comentando o código do arquivo PHP , na primeira linha incluímos o arquivo de conexão que traz as configurações de conexão com banco de dados MySL. A variável $link = getConnDB() captura a conexão com o banco de dados, enquanto $sql armazena a query que vai trazer o total de cargos agrupados por departamento e o nome do departamento. Na sequência, a query é executada e se existir resultado, o XML é montado, respeitando os nós setor e total que possuem os valores retornados pela query. No final, o XML é exibido pelo comando echo que é executado com a variável que o armazena ($xml).
Ao executarmos essa página, que foi chamada de load_totalcargo.php, retornamos o seguinte XML para o banco de dados utilizado neste exemplo:
Listagem 5: XML retornado
<?xml version="1.0" encoding="ISO-8859-1"?>
<all>
<row total="15" setor="ADMINISTRATIVO"/>
<row total="3" setor="COZINHA"/>
<row total="8" setor="LOGISTICA"/>
<row total="11" setor="LOJA"/>
<row total="1" setor="TI"/>
</all>
Com o retorno do XML podemos confirmar que nosso script PHP está correto e funcionado. Iremos ao Flex Builder e criaremos um novo projeto.
Este projeto de exemplo foi chamado de comercial, sua estrutura será um arquivo principal chamado comercial.mxml. Iremos criar uma classe chamada Total, onde iremos colocar as informações, atributos desta classe, que são setor e total. Segue o código da classe:
Listagem 6: Classe Total
package classes.Total
{
import flash.xml.XMLNode;
public class TotalData
{
public var setor:String;
public var total:String;
public function TotalData()
{
}
public function doLoadFromXML(loNode:XMLNode):void
{
this.setor = loNode.attributes.setor;
this.total = loNode.attributes.total;
}
publi
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Neste artigo será explicado de forma bem simples, como enviar email em uma aplicação Flex, com uso de um arquivo PHP.
Em primeiríssimo lugar iremos criar um arquivo php para testar o envio de email, segue o script comentado:
Listagem 1: Arquivo PHP utilizado
<?php
//Esta função serve para adicionar aspas duplas quando não existir
function Param($loParam)
{
if (isset($loParam))
{
return $loParam;
}
else
{
return "";
}
}
// variáveis nome, email e mensagem sendo decodificadas para utf-8 e // recebidas o seu valor pelo método POST que o flex irá utilizar.
$v_nome = utf8_decode(Param($_POST["nome"]));
$v_email = utf8_decode(Param($_POST["email"]));
$v_mensagem = utf8_decode(Param($_POST["mensagem"]));
// pequena validação do conteúdo para não enviar nada vazio.
if(empty($v_nome)) {
echo "Informe seu nome";
}
if(empty($v_email)) {
echo "Informe seu email";
}
if(empty($v_mensagem)) {
echo "Digite sua mensagem";
}
else { // se não tiver nada vazio tudo vai sendo reunido para
// envio .
$adicional = "Mensagem enviada por um visitante do site:\n\n";
$adicional .= "Nome: $v_nome \n";
$adicional .= "Email: $v_email\n";
$adicional .= "Mensagem: $v_mensagem\n";
// a função ‘mail’ do php é a que realiza o envio, para isso ela //necessita de 3 parâmetros como email destinatário, titulo e a //mensagem que foi concatenada na variável $adicional.
mail("jose.rodrigues@jdcondominios.com.br", "Email de visitante", $adicional);
echo "Mensagem enviada!";
}
?>
Podemos criar um pequeno formulário em HTML para teste do arquivo php:
Listagem 2: Arquivo HTML para testar o envio do email
<html>
<head><title>Formulário de envio de email</title></head>
<body>
<form action="enviaMail.php" method="POST">
Nome:<input type="text" name="nome"><br>
Email:<input type="text" name="email"><br>
Mensagem:<input type="text" name="mensagem"><br>
<input type="submit" name="enviar" value="Enviar!">
</form>
</body>
</html>
Após verificarmos que o php realmente envia o email e também valida o envio, partiremos para a parte do Flex propriamente dita.
Criaremos inicialmente uma aplicação chamada Mail, no Flex, iniciando um novo projeto. O caminho para isso é File > New > Flex Project.
Na caixa de seleção que surge, nomeie o seu projeto e pronto.
Para melhorar a organização, criaremos pastas dentro da pasta “src”, clicando com o botão direito do mouse sobre esta pasta e escolhendo: “src” > New > Folder. Criamos a pasta ‘Classes’, a pasta ‘ws’ e a pasta ‘Componentes’.
Dentro da pasta Classes, iremos criar algumas classes que são bastante úteis nos projetos: MyEventTypes, MySession, StringHelper, Util e WindowEvent.
Segue o fonte comentado da Classe Util:
Listagem 3: Classe Util
package classes
{
import flash.display.DisplayObject;
import mx.controls.Alert;
import mx.core.IFlexDisplayObject;
import mx.managers.PopUpManager;
import mx.rpc.http.HTTPService;
import mx.formatters.DateFormatter;
import mx.formatters.NumberFormatter;
public class Util
{
public function Util()
{
}
// Este método emite uma mensagem na tela
static public function ShowMessage(lcMsg:String): void
{
Alert.show(lcMsg);
}
// Este método fecha uma janela modal
static public function CloseWindow(Obj:IFlexDisplayObject): void
{
PopUpManager.removePopUp(Obj);
}
//Metodo desenha uma janela modal na tela.
public function ShowModal(loWindow:IFlexDisplayObject, loParent: DisplayObject): void
{
PopUpManager.addPopUp(loWindow, loParent, true);
PopUpManager.centerPopUp(loWindow);
}
public function Show(loWindow:IFlexDisplayObject, loParent: DisplayObject): void
{
PopUpManager.addPopUp(loWindow, loParent, false);
PopUpManager.centerPopUp(loWindow);
}
// O método GetBasePath se refere ao caminho ou url do meu projeto
// onde irei colocar o arquivo php;
static public function GetBasePath():String
{
return "http://www.jdcondominios.com.br/ ";
}
static public function doRefresh(loService:HTTPService):void
{
loService.disconnect();
loService.logout();
}
public static function StringReplaceAll( source:String, find:Str
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Olá pessoal, neste exemplo será demonstrado como popular um componente DataGrid, de maneira bem prática, no flex builder , utilizando o PHP e o Mysql. Será tomado como exemplo um projeto jurídico, onde há um componente DataGrid que exibe uma lista de processos ,com informações sobre número, autor, vara, valor, cidade e Data. Esses dados são retornados do banco de dados, no formato XML, com a ajuda do PHP. Partimos para o PHP, criando a página load_process.php. Esta página irá realizar uma consulta no banco de dados , na tabela process para extrair do banco no formato XML os dados de um processo. Na página load_process.php podemos passar parâmetros que incrementarão a busca de processos, como fase que está o processo, o número do processo, o nome do autor e o valor da causa, esses parâmetros não são obrigatórios , mas se forem informados, seus valores serão passados para algumas variáveis e utilizados para filtrar os processos, como vemos a seguir. Listagem 1: Recuperando valor dos parâmetros <?php
header("Cache-control: private");
include "conn.php"; # aqui incluo o arquivo de conexão com o mysql
$link = getConnDB(); # chamo a conexão
# passo os parametros de busca e armazeno nas variáveis php.
$v_idfase = Param($_POST["idfase"]);
$v_num_proc = Param($_POST["num_proc"]);
$v_name_aut = Param($_POST["name_aut"]);
$v_valor_causa = Param($_POST["valor_causa"]);
# aqui monto a query para trazer os dados de um processo
$sql = ' select
pro.idprocess,
pro.num_proc,
pro.name_aut,
pro.vara,
pro.idstate,
pro.idcity,
cty.name as cityname,
pro.request,
pro.idposto,
pst.name_posto as postoname,
pro.user_insert,
pro.user_upd,
pro.dt_ins,
pro.dt_upd,
pro.idfase,
pro.valor_causa,
fas.name_fase as fasename
from jr_process pro
inner join Cities cty on pro.idcity = cty.IdCity
inner join jr_posto pst on pro.idposto = pst.idposto
inner join jr_fase fas on pro.idfase = fas.idfase ';
# neste trecho do codigo verifico se as variaveis que armazenam parametros foram prenchidas, e então adiciona seus valores na consulta acima.
if ($v_num_proc > 0)
{
$sql = $sql . " WHERE pro.num_proc = " . $v_num_proc;
}
if ($v_idfase > 0 )
{
$sql = $sql . " WHERE pro.idfase = " . $v_idfase;
}
if($v_name_aut != "" )
{
$sql = $sql . " WHERE upper(pro.name_aut) like upper('%" . $v_name_aut ."%')";
}
if($v_valor_causa > 0 )
{
$sql = $sql . " WHERE pro.valor_causa >= " . $v_valor_causa;
}
// Perform Query
$result = mysql_query($sql, $link);
# aqui verificamos se existe resultado e então o php inicia a montagem do XML.
if ($result)
{
/* xml result */
$xml = XMLHeader() . "<all>";
while ($row = mysql_fetch_assoc($result))
{
$v_idprocess = $row['idprocess'];
$v_num_proc = $row['num_proc'];
$v_name_aut = $row['name_aut'];
$v_vara = $row['vara'];
$v_idstate = $row['idstate'];
$v_idcity = $row['idcity'];
$v_cityname = $row['cityname'];
$v_request = $row['request'];
$v_idposto = $row['idposto'];
$v_postoname = $row['postoname'];
$v_user_insert = $row['user_insert'];
$v_user_upd = $row['user_upd'];
$v_dt_ins = $row['dt_ins'];
$v_dt_upd = $row['dt_upd'];
$v_idfase = $row['idfase'];
$v_fasename = $row['fasename'];
$v_valor_causa = $row['valor_causa'];
$node = "<row" .
" idprocess = ". QuotedStr( $v_idprocess ).
" num_proc = ". QuotedStr( $v_num_proc ).
" name_aut = ". QuotedStr( $v_name_aut ).
" vara = ". QuotedStr( $v_vara ).
" idstate = ". QuotedStr( $v_idstate ).
" idcity = ". QuotedStr( $v_idcity ).
" cityname = ". QuotedStr( $v_cityname ).
" request = ". QuotedStr( $v_request ).
" idposto = ". QuotedStr( $v_idposto ).
" postoname = ". QuotedStr( $v_postoname ).
" user_insert = ". QuotedStr( $v_user_insert ).
" user_upd = ". QuotedStr( $v_user_upd ).
" dt_ins = ". QuotedStr( $v_dt_ins ).
" dt_upd = ". QuotedStr( $v_dt_upd ).
" idfase = ". QuotedStr( $v_idfase ).
" fasename = ". QuotedStr( $v_fasename ).
" valor_causa = ". QuotedStr( $v_valor_causa ).
"/>" ;
$xml = $xml . $node;
}
# Aqui o php termina a montagem do xml
$xml = $xml . "</all>" ;
/* close statement */
mysql_free_result($result);
/* return result */
echo $xml ;
}
?>Esse código retorna um arquivo XML. Feito o arquivo PHP, será necessário criar a classe Process no projeto do Flex. Segue o código da classe: Listagem 2: Classe Process package classes.Processos
{
// precisamos importar do flash, a classe xml que é nativa do Flex.
import flash.xml.XMLNode;
public class ProcessData
{
public function ProcessData()
{
}
// o método doLoadFromXML irá montar o nó xml que vem do php.
public function doLoadFromXML(loNode:XMLNode):void
{
this.idprocess = loNode.attributes.idprocess;
this.num_proc = loNode.attributes.num_proc;
this.name_aut = loNode.attributes.name_aut;
this.vara = loNode.attributes.vara;
this.idstate = loNode.attributes.idstate;
this.idcity = loNode.attributes.idcity;
this.cityname = loNode.attributes.cityname;
this.request = loNode.attributes.request;
this.idposto = loNode.attributes.idposto;
this.user_insert = loNode.attributes.user_insert;
this.user_upd = loNode.attributes.user_upd;
this.dt_ins = loNode.attributes.dt_ins;
this.dt_upd = loNode.attributes.dt_upd;
this.idfase = loNode.attributes.idfase;
this.dtreceb = loNode.attributes.dtreceb;
this.dtdistribuicao = loNode.attributes.dtdistribuicao;
this.notificacao = loNode.attributes.notificacao;
this.idadvogado = loNode.attributes.idadvogado;
this.idtpptocesspeg = loNode.attributes.idtpptocesspeg;
this.idtpprocessseg = loNode.attributes.idtpprocessseg;
this.idtribunal = loNode.attr
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Crie um projeto chamado DevTeste na IDE Flex Builder. Na página principal do projeto, arraste dois componentes para a área da página, no modo design. Nomeie os dois combos para CbxUF e CbxCidade. O primeiro combo irá receber de nosso banco de dados Mysql, a lista de unidades federativas do Brasil.Essa lista vira no formato xml e o combo ira ser alimentado por esses dados, idem para a lista de cidades. A idéia é que ao escolhermos a UF, o combo cidade exibirá apenas as cidades da UF selecionada. Devemos iniciar o trabalho criando no banco de dados duas tabelas: Cidades e UF(unidade federativa), ambas com suas chaves primárias que estabelecem a diferenciação entre cada registro no banco. Após a criação das tabelas realizaremos os inserts com os dados das cidades e estados do país. O segundo passo é a criação de um arquivo php que irá trazer os dados de cada tabela individualmente. O primeiro arquivo criado é o load_uf.php , ele buscará no banco de dados a relação de todas as UF’s em ordem alfabética.O arquivo load_uf.php após realizar a busca no banco retorna um XML com as informações da tabela de UF.A busca retorna o código da UF e a sigla em nós XML. Listagem 1: O código php que gera o xml: if ($result)
{
/* xml result */
$xml = XMLHeader() . "<all>";
while ($row = mysql_fetch_assoc($result))
{
$v_cd_uf = $row['cd_uf'];
$v_ds_uf_sigla = $row['ds_uf_sigla'];
$node = "<row" .
" cd_uf = ". QuotedStr( $v_cd_uf ).
" ds_uf_sigla = ". QuotedStr( $v_ds_uf_sigla ).
"/>" ;
$xml = $xml . $node;
} $xml = $xml . "</all>" ;Após a execução desse arquivo obtemos um retorno assim: Listagem 2: XML gerado <?xml version="1.0" encoding="ISO-8859-1" ?>
<all>
<row cd_uf="1" ds_uf_sigla="AC" />
<row cd_uf="2" ds_uf_sigla="AL" />
<row cd_uf="3" ds_uf_sigla="AM" />
<row cd_uf="4" ds_uf_sigla="AP" />
<row cd_uf="5" ds_uf_sigla="BA" />
<row cd_uf="6" ds_uf_sigla="CE" />
<row cd_uf="7" ds_uf_sigla="DF" />
<row cd_uf="8" ds_uf_sigla="ES" />
<row cd_uf="9" ds_uf_sigla="GO" />
<row cd_uf="10" ds_uf_sigla="MA" />
<row cd_uf="11" ds_uf_sigla="MG" />
<row cd_uf="12" ds_uf_sigla="MS" />
<row cd_uf="13" ds_uf_sigla="MT" />
<row cd_uf="14" ds_uf_sigla="PA" />
<row cd_uf="15" ds_uf_sigla="PB" />
<row cd_uf="16" ds_uf_sigla="PE" />
<row cd_uf="17" ds_uf_sigla="PI" />
<row cd_uf="18" ds_uf_sigla="PR" />
<row cd_uf="19" ds_uf_sigla="RJ" />
<row cd_uf="20" ds_uf_sigla="RN" />
<row cd_uf="21" ds_uf_sigla="RO" />
<row cd_uf="22" ds_uf_sigla="RR" />
<row cd_uf="23" ds_uf_sigla="RS" />
<row cd_uf="24" ds_uf_sigla="SC" />
<row cd_uf="25" ds_uf_sigla="SE" />
<row cd_uf="26" ds_uf_sigla="SP" />
<row cd_uf="27" ds_uf_sigla="TO" />
</all> A segunda parte é irmos até o flex e criarmos um projeto, dentro deste projeto iremos criar pastas para organizarmos o projeto, com os nomes classes(cidades e uf) e ws .Clicando com o botão direito do mouse na pasta UF( criada dentro de classes) iremos criar uma nova ActionScript Class, daremos o nome de UFData. Dentro desta classe iremos atribuir os métodos para carregar os dados que retornam no formato XML.Para isso fazemos o import da classe flash.xml.XMLNode do Flex e criamos o método doLoadFromXML que recebe como parâmetro um nó XML. O Código do método é: Listagem 3: Método doLoadFromXML public function doLoadFromXML(loNode:XMLNode):void
{
this.cd_uf = loNode.attributes.cd_uf;
this.ds_uf_sigla= loNode.attributes.ds_uf_sigla;
}Iremos obter do XML o cd_uf e ds_uf_sigla, para isso criamos antes no ar
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
|
Neste artigo irei ensinar de maneira prática a utilizar a API do Google Maps para acessar informações de distâncias entre dois pontos, utilizando informações de logradouros, para que a api devolva um XML com as informações consultadas. Para mais informações sobre a API, basta acessar o endereço eletrônico a seguir: https://developers.google.com/maps/documentation/distancematrix. O Google disponibiliza um web service que gera um XML com informações de origem e destino, cálculo da distância entre os pontos e até tempo de chegada sabendo do meio de transporte utilizado. A url disponibilizada pelo Google é: http://maps.googleapis.com/maps/api/distancematrix/xml?, a partir desta url incluiremos os parâmetros de origem e destino além da linguagem na qual queremos o retorno do XML e o modo de transporte utilizado, que pode ser a pé, de carro e bicicleta. Criamos então um arquivo php que irá receber as variáveis de origem e destino para a aplicação e então colocamos no código os demais parâmetros que a api necessita para exibir a distância entre os dois pontos. O código PHP terá as seguintes variáveis: - $origins = $_POST[''origins''];
- $destinations = $_POST[''destinations''];
- $mode = ''CAR'';
- $language = ''PT'';
- $sensor = ''false'';
A variável $origins recebe o endereço de origem que pode ser uma cidade, ou um logradouro completo. Idem para a variável $destinations que receberá o endereço de destino. A variável $mode recebe o meio de transporte utilizado, a $language recebe a abreviação da linguagem de retorno do XML e $sensor informa ao web service do Google se estamos utilizando um GPS para receber a variável $origins. O segundo passo é criarmos um simples formulário com a action recebendo a url concatenada com os valores das variáveis, ao clicarmos no botão submit recebemos o retorno do XML. O formulário recebe os parâmetros de entrada digitados pelo usuário nos campos de origem e destino, que são atribuídos às variáveis e concatenados pelo php para serem enviados no acesso à url que ficará com o aspecto do código a seguir: Listagem 1: Formato da URL utilizada http://maps.googleapis.com/maps/api/distancematrix/xml?origins=''".$origins."''|&destinations=''".$destinations."''|&mode=''".$mode."''|&language=''".$language."''|&sensor=false O formulário que o php cria, recebe as variáveis estáticas ($mode, $language e $sensor) já design
...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
|
|
|
| |
|