division

package module
v0.0.0-...-f64306d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2023 License: MIT Imports: 9 Imported by: 0

README

简易的四级中国行政区划查询库

支持Redis缓存和普通缓存

功能

注意:数据仅支持到街道/镇级

  • 查询所有省份
  • 查询某行政区信息
  • 查询某行政区划下一级行政区
  • 查询某行政区的详细政区信息

使用

go get -u github.com/enjoy322/china-division-query@master

若需使用redis缓存,需使用以下库

github.com/go-redis/redis/v8

需要将行政区文件拷贝到你的项目启动根目录下,然后启动时指定文件目录

package main

import (
	"fmt"
	division "github.com/enjoy322/china-division-query"
)

func main() {

	// 1. 使用redis作为缓存
	// client 为redis连接
	divisionClient := division.InitDivisionWithRedisAdapter("divisions", client)
	province := divisionClient.ListProvince()
	fmt.Println(province)
	// [{11    北京市} {12    天津市}...]

	//	2. 不适用redis作为缓存
	divisionClient := division.InitDivisionWithOutRedisAdapter("divisions")

	province, err := divisionClient.ListNextDivision(530102)
	if err != nil {
		fmt.Println(err)
	}
	fmt.Println(province)
	// [{53 5301 530102 530102001 华山街道} {53 5301 530102 530102002 护国街道} ...
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Division

type Division struct {
	ProvinceCode int    `json:"province_code"`
	CityCode     int    `json:"city_code"`
	CountyCode   int    `json:"county_code"`
	TownCode     int    `json:"town_code"`
	Name         string `json:"name"`
}

type RedisAdapter

type RedisAdapter struct {
	// contains filtered or unexported fields
}

func InitDivisionWithRedisAdapter

func InitDivisionWithRedisAdapter(fileDir string, db *redis.Client, level int, limitProvince map[int]struct{}) *RedisAdapter

func (RedisAdapter) GetCity

func (s RedisAdapter) GetCity(code int) (Division, error)

GetCity get city information

func (RedisAdapter) GetCounty

func (s RedisAdapter) GetCounty(code int) (Division, error)

func (RedisAdapter) GetDivisionDetail

func (s RedisAdapter) GetDivisionDetail(code int) ([]Division, error)

GetDivisionDetail province-city-county,if the length of slice returned is 1 it means code is of province

func (RedisAdapter) GetProvince

func (s RedisAdapter) GetProvince(code int) (Division, error)

GetProvince get province information

func (RedisAdapter) GetTown

func (s RedisAdapter) GetTown(code int) (Division, error)

func (RedisAdapter) ListNextDivision

func (s RedisAdapter) ListNextDivision(code int) ([]Division, error)

ListNextDivision list the next level divisions

func (RedisAdapter) ListProvince

func (s RedisAdapter) ListProvince() []Division

ListProvince liat all provinces

type WithoutRedisAdapter

type WithoutRedisAdapter struct {
}

func InitDivisionWithOutRedisAdapter

func InitDivisionWithOutRedisAdapter(fileDir string, level int) *WithoutRedisAdapter

func (WithoutRedisAdapter) GetCity

func (s WithoutRedisAdapter) GetCity(code int) (Division, error)

GetCity get city information

func (WithoutRedisAdapter) GetCounty

func (s WithoutRedisAdapter) GetCounty(code int) (Division, error)

GetCounty get county information

func (WithoutRedisAdapter) GetDivisionDetail

func (s WithoutRedisAdapter) GetDivisionDetail(code int) ([]Division, error)

GetDivisionDetail province-city-county,if the length of slice returned is 1 it means code is of province

func (WithoutRedisAdapter) GetProvince

func (s WithoutRedisAdapter) GetProvince(code int) (Division, error)

GetProvince get province information

func (WithoutRedisAdapter) GetTown

func (s WithoutRedisAdapter) GetTown(code int) (Division, error)

GetTown get town information

func (WithoutRedisAdapter) ListNextDivision

func (s WithoutRedisAdapter) ListNextDivision(code int) ([]Division, error)

ListNextDivision list the next level divisions

func (WithoutRedisAdapter) ListProvince

func (s WithoutRedisAdapter) ListProvince() []Division

ListProvince liat all provinces

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL