FCIPAddressGeocoder 1.3.0

FCIPAddressGeocoder 1.3.0

测试已测试
Lang语言 Obj-CObjective C
许可 MIT
发布上次发布2017年5月

Fabio Caccamo 维护。



  • Fabio Caccamo

应用于 iOS 的 Geocoder,用于通过 GeoIP 服务和基于块的语法解码设备 IP 地址位置。

支持的服务

(欢迎提出其他支持服务的建议)

要求 & 依赖

  • iOS >= 5.0
  • 启用 ARC
  • CoreLocation 框架

安装

手动安装

FCIPAddressGeocoder.hFCIPAddressGeocoder.m 文件复制到您的项目中。

用法

//the service used by default is FreeGeoIP, but you can set the default service to another one
//this method will affect the default service/url of all instances, included the shared one
//if you need to change the default service/url it's recommended to do it application:didFinishLaunching
[FCIPAddressGeocoder setDefaultService:FCIPAddressGeocoderServiceFreeGeoIP];

//some services like FreeGeoIP are open-source, and you could need to use an instance of it running on your own server
[FCIPAddressGeocoder setDefaultService:FCIPAddressGeocoderServiceFreeGeoIP andURL:@"http://127.0.0.1/"];
//you can use the shared instance
FCIPAddressGeocoder *geocoder = [FCIPAddressGeocoder sharedGeocoder];

//or create a new geocoder
FCIPAddressGeocoder *geocoder = [FCIPAddressGeocoder new];

//or create a new geocoder which uses a custom instance of the FreeGeoIP service installed on your own server
FCIPAddressGeocoder *geocoder = [[FCIPAddressGeocoder alloc] initWithService:FCIPAddressGeocoderServiceFreeGeoIP andURL:@"http://127.0.0.1/"];
//set if the geocoder can use all available services in case of failure of the default one
//very useful since 3rd party services are not depending by us and could be temporary unavailable or no more active
//by default this property value is set to YES only if you use the shared geocoder or if you create a geocoder without specifing its service/url
geocoder.canUseOtherServicesAsFallback = YES;
//IP Address geocoding (geocoding results are cached for 1 minute)
[geocoder geocode:^(BOOL success) {

    if(success)
    {
        //you can access the location info-dictionary containing all informations using 'geocoder.locationInfo'
        //you can access the location using 'geocoder.location'
        //you can access the location city using 'geocoder.locationCity' (it could be nil)
        //you can access the location country using 'geocoder.locationCountry'
        //you can access the location country-code using 'geocoder.locationCountryCode'
    }
    else {
        //you can debug what's going wrong using: 'geocoder.error'
    }
}];
//check if geocoding
[geocoder isGeocoding]; //returns YES or NO
//cancel geocoding
[geocoder cancelGeocode];

许可

MIT 许可证 下发布。