ride/lib-geocode 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ride/lib-geocode

最新稳定版本:1.3.1

Composer 安装命令:

composer require ride/lib-geocode

包简介

Geocode library of the Ride framework

README 文档

README

Geocoding library of the PHP Ride framework.

What's In This Library

GeocodeService

The GeocodeService interface is the main workhorse of this library. The implementations of this class perform the actual looking up of addresses to other providers.

There are a couple of implementations included in this library:

ArcgisGeocodeService

This service uses Arcgis to perform geocoding of addresses. Check https://www.arcgis.com for more information about this service.

FreeGeoIpGeocodeService

This service uses freegeoip.net to get the location of an IP address or domain names. Check https://www.freegeoip.net for more information about this service.

GoogleGeocodeService

This service uses Google Maps to perform geocoding of addresses. Check [https://developers.google.com/maps/documentation/geocoding/intro](https://developers.google.com/maps/documentation/geocoding/intro] for more information about this service.

ChainGeocodeService

Use the ChainGeocodeService to chain simular services together. When the first service can't handle the lookup, the following service will be polled and so on.

GeocodeResult

The GeocodeResult interface is used to return the result of a GeocodeService. A default implementation is provided by the GenericGeocodeResult class.

GeocodeCoordinate

The GeocodeCoordinate interface is used to obtain the found coordinates from a GeocodeResult. A default implementation is provided by the GenericGeocodeCoordinate class.

Geocoder

The Geocoder is the facade to this library. You can add different services and give them a name. This name is then used to lookup specific addresses.

Code Sample

Check this code sample to see some possibilities of this library:

<?php

use ride\library\http\client\Client;
use ride\library\geocode\service\ArcgisGeocodeService;
use ride\library\geocode\service\ChainGeocodeService;
use ride\library\geocode\service\FreeGeoIpGeocodeService;
use ride\library\geocode\service\GoogleGeocodeService;
use ride\library\geocode\Geocoder;

function createGeocoder(Client $httpClient) {
    // create a google service
    $googleService = new GoogleGeocodeService($httpClient);
    // optionally set a API key
    $googleService->setApiKey('your-api-key');
    
    // create a chain of address services
    $addressService = new ChainGeocodeService('address');
    $addressService->addService($googleService);
    $addressService->addService(new ArcgisGeocodeService($httpClient)); 
    
    // create a chain of ip services
    $ipService = new ChainGeocodeService('ip');
    $ipService->addService(new FreeGeoIpGeocodeService($httpClient));
    
    // create the geocoder and set our defined services to it
    $geocoder = new Geocoder();
    $geocoder->addService($addressService);
    $geocoder->addService($ipService);
    
    return $geocoder;
}

function geocodeStuff(Geocoder $geocoder) {
    try {
        $geocodeResult = $geocoder->geocode('address', 'Vital de costerstraat, Leuven'); 
        $geocodeResult = $geocoder->geocode('ip', 'github.com');
        $geocodeResult = $geocoder->geocode('ip', '8.8.8.8');
    } catch (GeocodeException $exception) {
        // could not find any result
    }
}

Related Modules

Installation

You can use Composer to install this library.

composer require ride/lib-geocode

统计信息

  • 总下载量: 2.68k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 4
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 8
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-05-26