Funções em php para quem quer criar mapas sem manipular o javascript.
Link Leaflet.js: https://leafletjs.com/
É necessário que você tenha o composer instalado.
Abra seu cmd (prompt), com o comando "cd c:/pasta/do/projeto" navegue até a raiz do seu projeto em adianti.
Execute os seguintes comandos (podem variar no caso de usar linux ou mac, ex utilizar sudo no início):
composer.phar config repositories.accordion vcs https://github.com/andre-gasparin/leafletadianti
composer require andregasparin/plugins @devCaso não consiga executar esses comandos:
Abra o composer.json (na raiz do projeto)
Adicione no inicio em 'repositories': { "type": "vcs", "url": "https://github.com/andre-gasparin/leafletadianti" },
Exemplo:
{
"repositories": [
{ "type": "vcs", "url": "https://github.com/andre-gasparin/leafletadianti" },
...Agora abra o prompt e execute apenas o comando:
composer require andregasparin/plugins @devAdicione a linha no início de onde você irá utilizar: use AndreGasparin\Plugins\Leaflet\LeafletMap;
Depois utilize a classe e insira o mapa em qualquer element que desejar, exemplo:
<?php
use AndreGasparin\Plugins\Leaflet\LeafletMap;
class LeafletPage extends TPage
{
function __construct()
{
parent::__construct();
$map = new LeafletMap('51.505','-0.09','13', 'google'); // set initial coordinates
$content = new TElement('div');
$content->id = 'my-map';
$content->add( $map );
parent::add( $content );
}
}Exemplo de uso de todas as funções:
<?php
use AndreGasparin\Plugins\Leaflet\LeafletMap;
class LeafletPage extends TPage
{
function __construct()
{
$points = array();
$points[] = ['lat' => 50.505, 'lng'=> -0.09, 'description'];
$points[] = ['lat' => 49.505, 'lng'=> -0.09, 'description49'];
$points_json = json_encode($points);
parent::__construct();
$map = new LeafletMap('51.505','-0.09','13', 'google'); // set initial coordinates
$map->setSize('100%', '400'); //set map size
//$map->width = '100%';
//$map->height = '600px';
//$map->myLocation(true); // use gps to show and center my location, use true to display poupup with precision
$map->addMarker('51.505', '-0.09', 'teste'); // add point on map
$map->addJsonMarker($points_json);
$map->center(); //center map to view all points
//#Version 1.0.1
$map->enableAddOnePoint('allPointsJson');
$map->enableAddPoints('allPointsJson');
//field
$allPointsJson = new TEntry('allPointsJson');
$allPointsJson->setSize("100%");
parent::add( $allPointsJson );
//#End Version 1.0.1
//#Version 1.0.2
$map->searchAddress('autocompleteLeaflet');
$map = $map->show(); //create map
//field
$autocompleteLeaflet = new TCombo('autocompleteLeaflet');
$autocompleteLeaflet->setSize("100%");
parent::add( $autocompleteLeaflet );
//#End Version 1.0.2
$content = new TElement('div');
$content->id = 'testediv';
$content->add( $map );
parent::add( $content );
}
}Caso queira implementar algo no sistema, utilize os padrões do Adianti Framework, ficaremos felizes com sua participação!
- 1.0.0
- Projeto criado
- 1.0.1
- adicionado enableAddOnePoint(RETORNO) Você pode adicionar um mapa que aceite apenas 1 marcador, o usuário tem a opção de clicar novamente no mapa e alterar o local. "Retorno" deve passar o nome do campo TEntry/THidden criado no formulário
- adicionado enableAddPoints(RETORNO) Você pode adicionar um mapa que aceite vários marcadores, o usuário tem a opção de clicar novamente no marcador para exclui-lo. "Retorno" deve passar o nome do campo TEntry/THidden criado no formulário
- 1.0.2
- adicionado searchAddress(RETORNO, addMarker) Você pode adicionar uma busca de geolocation, ou seja, pesquisa por endereço. "Retorno" deve passar o nome do campo TCombo criado no formulário "addMarker" = true, ele irá inserir automaticamente um alfinete no endereço localizado
André Gasparin – [@andre-gasparin] – andre@gasparimsat.com.br / andre.gasparin@hotmail.com
Distribuído sob a Licença Pública Geral GNU (GPLv3)
- Faça o fork do projeto (https://https://github.com/andre-gasparin/leafletadianti/fork)
- Crie uma branch para sua modificação (
git checkout -b feature/fooBar) - Faça o commit (
git commit -am 'Add some fooBar') - Push (
git push origin feature/fooBar) - Crie um novo Pull Request
