will-belo/geo-location-service
最新稳定版本:v1.0.1
Composer 安装命令:
composer require will-belo/geo-location-service
包简介
Serviço para encontrar lojas mais próximas baseado em geolocalização
README 文档
README
Este projeto contém serviços para encontrar a loja mais próxima usando coordenadas geográficas.
📦 Instalação
via Composer:
composer require will-belo/geo-location-service
via git:
- Clone o repositório:
git clone https://github.com/seu-usuario/geo-location-service.git
cd geo-location-service
- Instale as dependências do Laravel (se aplicável):
composer install
⚙️ Configuração
- Adicione as configurações no
.envAdicione as seguintes variáveis ao seu arquivo.env
GEOLOCATION_RADIUS=6371 GEOLOCATION_CACHE_DURATION=60 GEOLOCATION_GOOGLE_API_KEY=<YOUR_GoogleAPIKey_HERE> GEOLOCATION_ADDRESS_MODEL=App\Models\Address # Altere para o seu modelo de endereço, se necessário
- Configure sua model de endereço
O pacote pode ser usado com qualquer model, contanto que ela tenha as seguintes características:
✅ Colunas
latitudeelongitude(em sua tabela de endereços) ✅ Um relacionamentorelatedEntity()que aponta para a entidade que deseja associar ao endereço (ex.Store,Shop, etc.).
namespace App\Models; use Illuminate\Database\Eloquent\Model; class MyAddress extends Model { protected $table = 'addresses'; // Nome da tabela // Relacionamento com a entidade associada, como uma loja public function relatedEntity() { return $this->hasOne(\App\Models\Store::class); // Modelo que você deseja associar } }
- Configuração de Cache
Certifique-se de que a configuração de cache esteja corretamente definida no arquivo
.enve emconfig/cache.php.
🚀 Uso
- Encontrando a entidade mais próxima Agora você pode usar o serviço de geolocalização para encontrar a entidade (por exemplo, uma loja) mais próxima de uma latitude e longitude específicas. Exemplo de uso:
use GeoLocationService\Services\GeocodingService; $geoService = new GeocodingService(); $latitude = -23.550520; // Exemplo de latitude $longitude = -46.633308; // Exemplo de longitude $nearestEntity = $geoService->findNearestAddress($latitude, $longitude); if ($nearestEntity) { echo "Entidade mais próxima: " . $nearestEntity->relatedEntity->name; } else { echo "Nenhuma entidade encontrada próxima."; }
- Utilizando a API de Geocodificação (Google) Se você configurou a chave da API do Google Maps, você também pode usar o serviço para obter as coordenadas de um endereço:
use GeoLocationService\Services\GeoCodingAPI; $geoAPI = new GeoCodingAPI(); $address = "São Paulo, Brasil"; $coordinates = $geoAPI->getCoordinates($address); if ($coordinates) { echo "Latitude: " . $coordinates['lat']; echo "Longitude: " . $coordinates['lng']; } else { echo "Endereço não encontrado."; }
Licença
Este projeto está sob a licença MIT.
统计信息
- 总下载量: 2
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-03-25