Giter VIP home page Giter VIP logo

laravel-province-city-area's Introduction

Laravel-Province-City-Area 「全国省市县乡镇街道」数据(数据来源于京东,内置爬虫,可自行获取最新数据)

StyleCI build status

这是一个提供「全国省市县乡镇街道」数据的轮子

试过了很多数据来源(国家统计局、网上其他开发者提供的json等),发现还是会有小部分省市有遗漏。

这个包的数据是来自于京东,相对来说会更准确、详尽一些。

增加地址解析,粘贴一段收件地址,自动识别收件人、电话、省市县、地址

内部自带京东「省市县乡镇街道」数据爬虫,用户可以自行运行爬取最新的「省市县乡镇街道」数据

项目地址

https://github.com/aoxiang594/laravel-province-city-area

Composer 安装

composer require aoxiang/province-city-area

添加provider(laravel 版本 < 5.5)

Aoxiang\Pca\ProvinceCityAreaServiceProvider::class复制到config.phpproviders数组内

执行数据库迁移

php artisan migrate

最后一步:从京东获取新的「省市县乡镇街道」数据

php artisan pca:refreshData

其他

php artisan pca:refreshData -d:file|jd 更新数据有一个参数 driver

参数值 说明
file 从本地资源中获取数据,file是默认值
jd 从京东获取抓取最新数据
php artisan pca:refreshData

您选择从本地文件中载入省市县数据
如果您要强制从京东获取,请执行php artisan pca:refreshData -d jd
已从本地加载数据完毕,共48054条
数据最后更新时间:2019-06-08 22:50:30
正在插入数据库
48054/48054 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
数据已更新完成
共插入:48054条数据,其中省级行政区:34,城市:457,区县:5171,乡镇街道:42392

php artisan pca:refreshData -d jd

获取数据成功:云南昆明市盘龙区双龙街道
获取数据成功:云南昆明市盘龙区松华街道
获取数据成功:云南昆明市盘龙区城区
获取数据成功:云南昆明市盘龙区拓东街道
获取数据成功:云南昆明市盘龙区鼓楼街道
获取数据成功:云南昆明市盘龙区东华街道
获取数据成功:云南昆明市盘龙区联盟街道
获取数据成功:云南昆明市盘龙区金辰街道
获取数据成功:云南昆明市盘龙区青云街道
获取数据成功:云南昆明市盘龙区龙泉街道
获取数据成功:云南昆明市盘龙区茨坝街道
获取数据成功:云南昆明市盘龙区滇源街道
获取数据成功:云南昆明市五华区
获取数据成功:云南昆明市五华区沙朗镇
获取数据成功:云南昆明市五华区厂口镇
获取数据成功:云南昆明市五华区高新区
获取数据成功:云南昆明市五华区城区
获取数据成功:云南昆明市五华区华山街道
获取数据成功:云南昆明市五华区护国街道
获取数据成功:云南昆明市五华区大观街道
获取数据成功:云南昆明市五华区龙翔街道
获取数据成功:云南昆明市五华区丰宁街道
获取数据成功:云南昆明市五华区莲华街道
获取数据成功:云南昆明市五华区红云街道
获取数据成功:云南昆明市五华区黑林铺街道
获取数据成功:云南昆明市五华区普吉街道
获取数据成功:云南昆明市五华区西翥街道
正在插入数据库
 48054/48054 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
数据已更新完成
共插入:48054条数据,其中省级行政区:34,城市:457,区县:5171,乡镇街道:42392

Demo

<?php

namespace App\Http\Controllers;

use Aoxiang\Pca\ProvinceCityArea;
use Illuminate\Routing\Controller as BaseController;

class Controller  extends BaseController{
    public function getProvinceList()
    {
        return response()->json(ProvinceCityArea::getProvinceList());
    }
    
    public function getProvince()
    {
        return response()->json(ProvinceCityArea::getProvinceList());
    }

    public function getCity($provinceId)
    {
        if (empty($provinceId)) {
            return response()->json([]);
        }
        return response()->json(ProvinceCityArea::getCityList($provinceId));
    }

    public function getArea($cityId)
    {
        if (empty($cityId)) {
            return response()->json([]);
        }
        return response()->json(ProvinceCityArea::getAreaList($cityId));
    }
    
    
    public function getAllProvince()
    {
        return response()->json(ProvinceCityArea::getAllProvince());
    }
    
    public function getAllCity()
    {
        return response()->json(ProvinceCityArea::getAllCity());
    }
    public function getAllArea()
    {
        return response()->json(ProvinceCityArea::getAllArea());
    }
    public function getAllStreet()
    {
        return response()->json(ProvinceCityArea::getAllStreet());
    }
    

    public function test()
    {
        echo ProvinceCityArea::getName(21, 1827, 40847, 53114);
        //echo "江西南昌市西湖区系马桩街道";
    }

    public function parseAddress()
    {
        $address = '江西省南昌市红谷滩双子塔A2-1888 敖翔 13866668888';
        ProvinceCityArea::parseAddress($address);
    }
}

laravel-province-city-area's People

Contributors

aoxiang594 avatar guanguans avatar zhaojunqiang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

laravel-province-city-area's Issues

`guzzlehttp/psr7` 依赖问题

guzzlehttp/psr7 依赖有问题(guzzlehttp/psr7: "2.1.1")

./composer.json has been updated
Running composer update aoxiang/province-city-area
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Root composer.json requires aoxiang/province-city-area dev-master -> satisfiable by aoxiang/province-city-area[dev-master].
    - aoxiang/province-city-area dev-master requires guzzlehttp/psr7 2.1.1 -> found guzzlehttp/psr7[dev-master, 1.0.0, ..., 1.x-dev, 2.0.0-beta1, ..., 2.2.x-dev (alias of dev-master)] but it does not match the constraint.

Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.

Installation failed, reverting ./composer.json and ./composer.lock to their original content.

强制从京东获取 失败

开发环境 :homestead ,laravel 5.8

强制从京东获取,请执行php artisan pca:refreshData -d jd

image

php artisan pca:refreshData 获取的数据不完整

要是支持所有国家就更棒了。

看了下源码, 京东这个接口是支持 所有国家地区的。要是能支持的就非常酷了

https://fts.jd.com/area/get?fid=53283&callback=getAreaList_callbackF&sceneval=2

image

解析非法的地址时,发生语法错误

版本:1.2.5
PHP版本: 7.4.29
Laravel版本:8.83.13

ProvinceCityArea::parseAddress('test');

出现语法错误:

Undefined offset: XXX

触发该错误的位置在:

文件:ProvinceCityArea.php
行数:355
代码:$city = PCA::where('id', $areaList[$key]->parent_id)->first();

此处的$key的值,是省级的最后一个ID,是287行中遗留的,
是当没有市的信息时,会尝试从区获取对应的市(parent_id),当区列表为空时,此时的$key是287行遗留的,因此触发语法错误

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.