当汽车从传统的钢铁机械演变为“可移动的智能终端”,其线下体验空间的功能也随之被重新定义。对极氪而言,门店早已超越传统销售功能,转型为连接人、车与数字生活的
未来出行实验室。
在这一空间中,用户所感知的不仅是001车型流畅的猎装造型或009车型静谧奢华的座舱环境,更是极氪所倡导的“极致、智能、可持续”生活方式的真实呈现。借助沉浸式场景交互设计,用户能够直观体验浩瀚SEA架构带来的全域进化能力、ZEEKR OS实现的无缝生态流转,以及800V超快充技术如何将补能焦虑转化为效率自由。极氪正以“科技平权”的理念,将高阶智能电动体验从冰冷的参数表中释放,转化为可感知、可参与、可共创的生活片段。
这种以用户为核心的体验革新,使每一家极氪门店都成为智慧出行生态中的
活态数据节点。
无论是坐落于城市核心商圈的极氪中心,还是深入居民社区的极氪空间,这些门店持续产生关于用户行为偏好、使用场景深度、服务响应效率及区域市场热度的动态信息流。若这些数据仅用于局部运营,其价值将大打折扣;唯有通过标准化、自动化的采集机制,将其转化为结构化的地理与业务资产,才能真正释放其战略潜力——支撑网络布局的科学评估、服务半径的精准测算、资源投放的动态优化,乃至未来“车-桩-站-店”一体化生态的智能协同。这不仅是渠道管理的升级,更是极氪构建“以数据驱动用户体验进化”闭环的关键环节。
本文旨在通过程序化手段,调用极氪官方公开接口,自动化获取全国极氪门店的结构化数据。利用 Python 的 requests 库发起标准 HTTP POST 请求,可高效获取包含门店名称、所属省市区、详细地址、高德经纬度坐标、营业时间等字段的 JSON 响应数据。通过对这些信息的整合与地理可视化分析,不仅能清晰展现极氪当前“以用户为中心、数字化驱动、场景化落地”的线下服务网络布局密度与城市渗透策略,还可为潜在网点选址、用户就近试驾/交付匹配、区域营销资源精准投放、绿色出行生态协同(如与换电/超充网络联动)提供量化决策支持——这正是“用数据理解极氪智慧出行生态”的一次实践,也深刻呼应了极氪“平等、多元、可持续的未来出行”与“科技为人,驾驭愉悦”的品牌使命。

首先,需定位门店数据的存储位置,并重点关注三个关键部分:标头、负载、预览。
标头:通常包含目标资源的URL地址,即请求的接口链接;

负载:对于POST请求,负载中携带了传递的参数。由于所有参数均通过请求体发送而非URL,可观察到查询城市代码(citycode)、页码(page)等信息,整体负载内容未加密;

预览:用于快速查看响应内容的摘要,帮助用户了解返回数据的结构或部分内容片段。可发现实际数据位于data字段内;

经页面测试可知,只要输入市级行政区编码即可获取该层级下的全部门店数据。结合标头信息可判断,数据是基于市级行政区编码进行查询的。因此,首先需获取全国所有省市县的行政区编码列表,并将其保存至本地,后续便可利用该映射表遍历并抓取全国极氪门店数据。

第一步:使用 requests 库发送 HTTP 请求,获取全国所有市级城市的名称及其对应编码,并按指定标签保存为 CSV 文件;
完整代码 #运行环境 Python 3.11
import requests
import json
import csv
def save_cities_to_csv():
url = "https://zeekrlife-oss.zeekrlife.com/frontend/zeekrlifeWechat/common/area.json?time=1764733711854"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36",
"Referer": "https://www.zeekrlife.com/"
}
try:
print("正在请求 area.json 数据...")
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
data = response.json()
# 检查接口是否成功
if not data.get("success"):
print("接口返回失败")
return
provinces = data.get("regionAddressJsonDTO", [])
cities_data = []
for province in provinces:
province_name = province["name"]
province_code = province["code"]
city_list = province.get("cityList", [])
# 如果 cityList 为空(比如某些特殊地区),跳过
if not city_list:
# 有些可能是直筒子市(如东莞、中山),但此处按常规处理
continue
for city in city_list:
city_name = city["name"]
city_code = city["code"]
cities_data.append({
"province": province_name,
"city_name": city_name,
"city_code": city_code
})
# 保存到 CSV
output_file = "china_cities.csv"
with open(output_file, "w", encoding="utf-8-sig", newline="") as f: # utf-8-sig 支持 Excel 正确显示中文
writer = csv.DictWriter(f, fieldnames=["province", "city_name", "city_code"])
writer.writeheader()
writer.writerows(cities_data)
print(f"成功提取 {len(cities_data)} 个市级行政区,已保存至 {output_file}")
except Exception as e:
print(f"发生错误: {e}")
if __name__ == '__main__':
save_cities_to_csv()
生成的数据将以 CSV 格式保存于脚本运行目录下,包含以下字段:province(省名称)、city_name(市名称)、city_code(市编码);

获得包含370个市级行政区的编码列表后,即可通过遍历该列表,逐个城市请求并汇总全国门店信息。
第二步:使用 requests 库循环访问370个城市的编码,批量获取极氪全国门店数据,并按字段标签保存为 CSV 文件;
完整代码 #运行环境 Python 3.11
import requests
import json
import csv
import os
import time
from datetime import datetime
# 工具函数:时间戳转日期
def timestamp_to_date(ts):
if not ts:
return ""
try:
return datetime.fromtimestamp(int(ts) / 1000).strftime("%Y-%m-%d")
except (ValueError, OSError, TypeError):
return ""
# 获取单个城市门店数据
def fetch_stores_by_city_code(city_code, timeout=10):
url = "https://api-gw-toc.zeekrlife.com/zeekrlife-agg-comm-mssc-basic/open/apply/store/toc/common/nearby/shop/page"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36",
"Content-Type": "application/json",
"Referer": "https://www.zeekrlife.com/",
"Origin": "https://www.zeekrlife.com"
}
payload = {
"longitude": None,
"latitude": None,
"cityCode": city_code,
"storeType": 0,
"vehicleModel": None,
"pageNum": 1,
"pageSize": 9999
}
try:
response = requests.post(url, headers=headers, json=payload, timeout=timeout)
if response.status_code != 200:
print(f"城市 {city_code} 请求失败,状态码: {response.status_code}")
return []
data = response.json()
if not data.get("success"):
msg = data.get("msg", "未知错误")
print(f"城市 {city_code} API 返回失败: {msg}")
return []
# 安全获取 data 字段,防止 data 为 null
raw_data = data.get("data")
if raw_data is None:
print(f"城市 {city_code} 没有门店数据")
return []
stores = raw_data.get("allTypeDTOS") or [] # 如果字段不存在或为 null,视为空列表
if not stores:
print(f"城市 {city_code} 没有门店数据")
else:
print(f"城市 {city_code} 获取到 {len(stores)} 个门店")
return stores
except Exception as e:
print(f"城市 {city_code} 请求异常: {e}")
return []
# 主函数:遍历城市 + 汇总保存
def main():
input_file = "china_cities.csv" # 输入城市列表
output_file = "zeekr_all_stores.csv" # 输出门店汇总
if not os.path.exists(input_file):
print(f"找不到城市文件: {input_file}")
return
# 读取所有 city_code
city_codes = []
with open(input_file, mode='r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
code = row.get('city_code') or row.get('cityCode') or row.get('code')
if code and code.strip():
city_codes.append(code.strip())
if not city_codes:
print("未从文件中读取到任何 city_code")
return
print(f"共读取 {len(city_codes)} 个城市,开始抓取...")
# 定义输出字段
fieldnames = [
"storeFacilitiesId",
"longitude",
"latitude",
"cityName",
"zeekrCoordinateName",
"province",
"city",
"district",
"provinceCode",
"cityCode",
"districtCode",
"roadShowDailyOpeningStartTime",
"roadShowDailyOpeningEndTime",
"roadShowStartDate",
"shopAddress"
]
total_count = 0
with open(output_file, mode='w', encoding='utf-8-sig', newline='') as f_out:
writer = csv.DictWriter(f_out, fieldnames=fieldnames)
writer.writeheader()
for i, city_code in enumerate(city_codes, 1):
print(f"[{i}/{len(city_codes)}] 正在处理城市: {city_code}")
stores = fetch_stores_by_city_code(city_code)
for store in stores:
gaode_coord = store.get("gaodeCoordinate")
lon, lat = None, None
if gaode_coord and ',' in gaode_coord:
parts = gaode_coord.split(',', 1)
lon, lat = parts[0].strip(), parts[1].strip()
row = {
"storeFacilitiesId": store.get("storeFacilitiesId"),
"longitude": lon,
"latitude": lat,
"cityName": store.get("cityName"),
"zeekrCoordinateName": store.get("zeekrCoordinateName"),
"province": store.get("province"),
"city": store.get("city"),
"district": store.get("district"),
"provinceCode": store.get("provinceCode"),
"cityCode": store.get("cityCode"),
"districtCode": store.get("districtCode"),
"roadShowDailyOpeningStartTime": store.get("roadShowDailyOpeningStartTime"),
"roadShowDailyOpeningEndTime": store.get("roadShowDailyOpeningEndTime"),
"roadShowStartDate": timestamp_to_date(store.get("roadShowStartDate")),
"shopAddress": store.get("shopAddress")
}
writer.writerow(row)
total_count += 1
time.sleep(0.5)
print(f"\n抓取完成!共获取 {total_count} 条门店数据,已保存至: {os.path.abspath(output_file)}")
if __name__ == '__main__':
main()
获取的主要数据字段包括:storeFacilitiesId(门店id)、zeekrCoordinateName(门店名称)、province(省)、city(市)、district(县)、roadShowDailyOpeningStartTime(营业开始时间)、roadShowDailyOpeningEndTime(营业结束时间)、shopAddress(门店地址)、roadShowStartDate(开业时间)、lng & lat(地理坐标)。其他非核心字段在此略去;

第三步:坐标系转换处理。由于极氪提供的门店坐标采用的是高德GCJ-02坐标系,若直接在ArcGIS等系统中使用WGS-84标准地图展示,会出现位置偏移。因此,需将原始坐标由GCJ-02转换为WGS-84标准坐标系。可通过 coord-convert 库中的 gcj2wgs(lng, lat) 函数实现自动转换,也可借助免费在线工具完成批量处理:
地图坐标系批量转换 - 免费在线工具
在对CSV文件中的门店坐标列完成坐标转换后,将处理后的数据导入ArcGIS进行可视化展示;
从空间布局视角分析,极氪的线下渠道网络呈现出清晰的战略层级结构,体现为“核心城市群高密度覆盖、区域中心城市精准卡位、边疆省会象征性布点”的三级分布模式。
第一层级聚焦于中国主要经济圈:在长三角地区,极氪以高度密集的网点布局确立了战略核心区地位——仅上海就设有超过10家门店,杭州、苏州、宁波、南京等城市普遍配置2–4个触点,形成便捷高效的“15分钟体验圈”;珠三角则依托深圳与广州双核驱动,结合东莞、佛山等制造业强市的门店落子,精准对接当地高净值用户群体对智能电动产品的旺盛需求;京津冀区域以北京为核心枢纽,天津、石家庄作为辅助节点,构建起覆盖北方市场的服务主干网络。
第二层级覆盖中西部及东北地区,其布局逻辑突出“省会优先、经济导向”原则。成都、武汉、西安、重庆四大国家中心城市均已实现多店布局,其中成都更形成了城南金融城、城西万象城、城东龙湖天街等多商圈联动的立体化服务网络;郑州、合肥、长沙、青岛、沈阳等强省会城市也至少设立1–2家门店,通常选址于高端商业地标(如IFS、SKP、万象城等),既保障优质客流,也强化品牌的高端形象。值得注意的是,部分非省会但具备较强产业基础或消费能力的城市——如宁波、无锡、厦门、珠海——也被纳入重点拓展名单,反映出极氪更加注重实际市场潜力而非单一行政等级的策略取向。
第三层级涉及边疆与海岛城市,包括乌鲁木齐、拉萨、呼和浩特、银川、西宁、海口等地,虽普遍仅设单店,但具有重要战略意义。这些门店往往承担品牌展示、区域交付和用户维系多重功能,既是“全国可交付”承诺的空间兑现,也为未来潜在市场发展预留接口。特别是在海南,借助自贸港新能源政策优势,极氪已在海口、三亚设立门店,并与本地超充网络深度协同,探索“绿色出行+旅游生态”的创新应用场景。
整体而言,极氪门店的空间分布不仅与中国新能源汽车渗透率的地理格局高度吻合,也与其目标用户画像(高学历、高收入、科技敏感型)的空间聚集特征深度匹配。门店形态亦根据城市能级差异进行差异化配置:一线城市主打“极氪中心”,集产品展示、用户共创与社群活动于一体;二三线城市则更多采用轻量化的“极氪空间”或交付服务中心,在控制成本的同时保障用户体验。这种“以用户密度定网点、以城市能级配形态、以生态协同拓边界”的布局理念,正是极氪将“科技平权”愿景转化为现实空间实践的具体体现。
在厘清门店地理分布的基础上,我们进一步将观察维度由“空间”转向“时间”,深入剖析其线下网络的发展轨迹。接下来,通过梳理极氪门店的开业时间轴,揭示品牌成长过程中的关键节奏与战略演进;
自2021年下半年至2022年初,极氪的线下扩张步伐表现出谨慎而稳健的特点。该阶段每月新增门店数量大多维持在1至4家之间,仅在2021年12月出现小幅跃升,达到16家新店开业。这一阶段体现了品牌初期的战略重心:通过在重点城市开展试点运营,验证商业模式可行性并积累实践经验。例如,首批旗舰店落地于上海、北京、深圳等一线城市,不仅为后续全国复制提供了可参考的运营模型,也有助于确立高端智能电动车的品牌定位。此期间,极氪更强调产品呈现与用户体验,致力于在核心市场打下坚实基础。
进入2022年中期,随着车型矩阵逐步丰富以及市场认可度提升,门店建设速度明显加快。尤其在2022年底,单月新增门店数达到年度峰值——20家,标志着极氪正式迈入全国化布局的新阶段。然而,2023年的扩展进程并非持续加速,部分月份如8月仅新增5家门店,显示出品牌面对外部挑战(如供应链波动或市场竞争加剧)时所采取的灵活调整策略。尽管存在短期波动,整体仍保持稳定增长趋势,尤其是在2024年,多次实现单月新增逾20家门店的成绩。例如,2024年6月和8月均新开22家门店,表明极氪在渠道下沉与区域覆盖方面持续加码,进一步巩固其在全国市场的影响力。
最显著的增长出现在2025年9月,当月单月新开门店高达50家,创下整个观测周期内的最高纪录。此次爆发式增长可能源于多重因素叠加,包括新产品发布、品牌形象升级,或是“千城万店”计划的全面启动。2025年作为极氪发展的关键年份,公司推出了多款备受关注的新车型,并加大对三四线城市乃至县级市场的资源投入。同时,通过优化供应链体系、提升服务质量与增强用户互动体验,确保每一家新开门店能够快速融入本地社区,成为连接用户与品牌的重要纽带。这种“稳扎稳打 + 战略冲刺”的发展路径,不仅推动服务网络向更广域、更密集的方向延伸,也为未来的可持续扩张奠定了坚实基础。


雷达卡


京公网安备 11010802022788号







