• Stars
    star
    191
  • Rank 202,142 (Top 4 %)
  • Language
    PHP
  • License
    MIT License
  • Created about 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

📍中国行政区划地址库 SDK + 爬虫 + 数据。

中国行政区划地址库 SDK + 爬虫 + 数据

📍 本项目主要分为三大部分,如标题所示;数据来源为 淘宝 菜鸟物流,相比其它同类项目更加 真实准确,且包含 港澳台

🤔 典型应用场景如:选择省市区关联下级输入文本地址转换为结构化地址输入部分地址联想下级等。

Build Status Coverage Status StyleCI Packagist

SDK

使用方法十分简单,首先使用 Composer 安装。

composer require wi1dcard/china-divisions

方法概览如下:

use ChinaDivisions;

$division = new Division(1); // 参数为 DivisionID;1 代表中国,即根结点。

$division->self(); // 获取自身信息,返回键值数组
$division->children(); // 获取下一级子区划,返回 Division 对象数组
$division->parent(); // 获取上一级父区划,返回 Division 对象
$division->ancestors(); // 获取所有上级父区划,返回 Division 对象数组
$division->breadcrumb(); // 根据父区划拼接可读地址,返回字符串
$division->guess(); // 地址录入联想
$division->search(); // 地址规范查询

目前主要支持如下接口,基本满足多数地址应用。

地址选择联动 | 上下级区划查询

四级地址录入选择服务,向用户提供标准结构化的全国地址数据,适用于前端地址选择控件等多种应用场景。

地址录入联想 | 联想下级地址

地址录入联想服务,通过配置业务组件,帮助用户输入规范的地址信息,从源头上解决因地址混乱造成的物流链路流转问题。该服务依托权威标准的四、五级地址库,提供给用户规范的地址,用户可根据自己的输入习惯,通过选择 POI 或拼音输入联想等方法,录入自己想要的标准地址信息。

地址规范查询 | 文本地址规范化

五级地址查询服务基于权威五级地址库,可根据原始地址查询出标准五级地址,或对已有非标准地址进行清洗、结构化、纠错和补全。

爬虫

根据以上接口,可通过爬虫得到完整的区划数据。

使用方法:

composer install
php scripts/crawler.php

随后检查 script/output 目录即可。

亦可阅读 爬虫源码,自测两分钟左右即可生成一份区县级列表。

数据

最终输出的数据如下,更新日期见 Git 提交历史。

Why This

GitHub 上搜索关键词「地区」、「省市区」、「行政区划」等关键词有大量的仓库,但或多或少存在以下问题:

  • 数据陈旧,缺乏更新;
  • 数据格式不合适;
  • 缺少村级、街道级数据;
  • 基于国标,缺少港澳台数据;

而基于本项目,你可以随时使用爬虫获得最新区划,甚至是使用 SDK 实现抓取并输出属于自己的五级地址库。

其次,国内电商巨头阿里巴巴拥有大量物流、派送体系资源,同时线上业务也有对此的依赖需求;因此我认为其数据质量和更新速度或许不比国标文件差,甚至有可能优于后者,故本项目选用菜鸟物流 API 作为数据源。

声明

本仓库源代码基于 MIT 协议发布,数据版权属于阿里。

More Repositories

1

laravel-deployment

📗[WIP] 追求质量的 Laravel 应用部署上线课程。
Shell
208
star
2

v2ray-exporter

🧭 Prometheus exporter for V2Ray and V2Fly metrics, with a simple Grafana dashboard.
Go
87
star
3

baidu-mini-program-sdk

🐾百度小程序第三方 PHP SDK,遵循 PSR-7、支持 PHP 5.4,助力智能小程序开发。
PHP
50
star
4

weekly-report

🔧提取 Git 提交记录快速生成 Markdown 格式的日报 / 周报,旨在帮助像我这样健忘的程序员们快速编排工作记录。
PHP
39
star
5

RFID-Toolkit

收集常见 UHF RFID 设备协议、SDK、说明文档等,以供参考。
C#
25
star
6

learnku-deploy-bot

A deploy bot for personal use.
PHP
14
star
7

UHFReader.NET

UHFReader18.dll as CSharp version. A SDK to control UHF RFID readers.
C#
13
star
8

blog

This repo has now been deprecated and archived in favor of my new blog v3. All posts have been migrated. Check out there to get better expierence provided by Hugo.
Less
8
star
9

sms-decoder

📲Parse PDU-Mode SMS and decoding 7-bit, 8-bit, USC2 data in .NET Core.
C#
7
star
10

docker-kod-explorer

A couple of Docker images for running KodExplorer, with PHP-FPM and Nginx.
Dockerfile
5
star
11

wi1dcard

This is me.
3
star
12

RfidClient

UHF RFID Client Based on UHFReader.NET
C#
3
star
13

RfidServer

UHF RFID Server based on Supersocket.
C#
3
star
14

blog-v3

The blog that records my thoughts, attempts, and experiences.
HTML
2
star
15

laravel-broadcasting

A laravel broadcasting demo, supported public / private channel.
PHP
2
star
16

docker-qshell

Docker image for the Qiniu CLI tool, a.k.a. qshell.
Dockerfile
1
star