`
iamzhongyong
  • 浏览: 797277 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

服务范围在空间维度如何逐步细化

 
阅读更多

    ​    ​这篇文章是一个思路,陆续接触空间范的细化过程中的体会和一些实践。抛出来供大家拍砖。

    ​    ​概述

    ​    ​本文的例子是拿物流公司的配送来展开,大家都知道,物流是一个空间属性很强的行业,有些地方能够送到,有些地方送不到,有些服务在一些去也没法履行,而这个时候,我们应该怎样做,才能满足这个需求呢?且看本文逐步道来。

    ​    ​首先国家标准行政区域,目前总体是分为三级:省、市、区(当然也有特殊,有些市下面就没有区,例如东莞市),如果范围精确到市和区这一级别,我们应该怎么做?如果精确到区下面的级别(例如文三路送到,文二路送不到),这个时候又应该如何处理呢?

 

    ​    ​服务范围精确到“省市区”这类标准区域上,如何处理?

    ​    ​其实这种范围的设定,也是目前的做法,物流公司或者商家在后台设置一下,杭州市我会服务,或者西湖区我会提供服务,这时候,系统会把这个区域的标准行政区域编码存下来,消费者在交易下单环节,会选择自己的收货地址,而收货地址中的“省市区”的选择,会有标准行政区域的ID,这时候到范围表中查询(由于地址库是树状结构,所以检索过程并不是简单的判断是否有值,而是遍历),即可判断这比交易能否提供物流服务。

    ​    ​例如商家A在自己的后台,设置我仅仅服务于杭州市,后台数据存储ID“330100”,标示这个ID提供服务 ,消费者B在下单的时候,地址如下“浙江省杭州市西湖区文三路478号”,地址对应的标准区域ID是“330106”,在范围表中查询,西湖区的父节点杭州市全境提供服务,从而在交易端可以展示这个服务了。

 

    ​    ​商圈是一个什么样的概念?

    ​    ​这是一个穿插的话题,商圈貌似没有明确的解释,我谈一下我自己的理解。所谓商圈,就是大众熟悉的大概范围。例如浙江大学玉泉校区附近、北京鸟巢附近、上海外滩附近,这些是一个范围的概要描述,在国家标准行政区域的下一级别。商圈有啥用呢?

    ​    ​举个例子,在天猫交易下单页面,会有提示用户选择杭州市下属区域的所有自提点,这个时候,自提点的数量很多,如何更好的方便用户筛选呢?这时候商圈可以派上用场了,在自提点列表的上面,提供商圈的标签体系,例如“浙大玉泉校区”、“文三路沿线”、“翠苑”等,用户点击商圈,即可快速选择,因为商圈大家都非常熟悉。比起仔细看每个地址的详细描述要快很多(这里大体讲一下实现,我有自提点地址A和B,会判断一下这个地址属于哪个商圈,假设A属于X和Y,B属于Y,这个时候再根据X和Y来做倒排,从而实现点击商圈,把具体地址筛选出来的功能)。

 

    ​    ​物流公司如何设置自己的服务范围呢?

    ​    ​如果是标准行政区,范围很好描述,直接提供出省市区的枚举信息,供物流公司和商家设置即可。但是在区下边的如何处理,有一个办法,就是借助地图的特性,在空间描述方面,有点和多边形,范围的话自然用多边形描述。可以让商家或者物流公司,在一个后台系统中,来用多边形描述出自己的范围来,系统存储下这个范围(其实就是多边形的拐点),用来做后续计算使用(可以存储在空间数据库,也可以获得点的经纬度属性,按照正常的文本来存储)。这时候,物流公司的一个范围就得到体现了,直观、可视化,最重要的一点,后面可以进行空间维度的计算。

 

    ​    ​京东特色化的物流服务是如何实现范围细化的呢?

    ​    ​京东的物流体系,是我们很赞不绝口的,包括我自己也经常在京东上面买东西,理由就是物流体验好。那京东的特色服务肯定不是特定区域全境覆盖的,他是怎么做的。在搜索引擎上面很少检索到这方面的文章,自己在页面上体验了一下。就拿京东的晚间配送服务来说吧,这个服务能够满足西湖区的 ”古荡附近“,但是无法满足“黄龙附近”。

    ​    ​第一步:京东在后台服务范围设置页面,维护一下,“古荡附近”-- 提供晚间配送服务,“黄龙附近”-- 不提供晚间配送服务;

    ​    ​第二步:消费者在下单的时候,需要选择地址,当用户选择了“西湖区”之后,会继续展示一个“商圈层级”,如果我的地址在“黄龙附近”,那我就会选择这个,然后填写我的详细地址;

    ​    ​第三步:根据“黄龙附近”这个标签到范围表中检索,非空间检索,匹配出这笔交易能够展示“晚间配送”服务,则允许用户选择此服务,否则就直接不用展示了;

    ​    ​综上,京东是在区这一级别后面,增加了一个“商圈级别”,在物流范围设置和消费者选择地址两个地方做了匹配,从而实现范围的精细化。

 

    ​    ​目前像淘宝或者亚马逊等有很多年历史的情况,服务空间范围如何实现呢?

    ​    ​京东的思路在淘宝或者亚马逊这样有多年历史地址的电子商务公司,能够复用吗?显然不能,为啥?因为目前淘宝或者亚马逊的地址仅仅是“省市区”级别,后面没有商圈级别,为啥没有呢,因为之前几年没有这个需求。那可以让消费者重新选择啊,这个成本太高,目前很多活跃的消费者,一个地址基本上半年或者一年不会变,这时候让他去改动地址,是不可接受的,并且还有一个原因,淘宝和京东不同的是,京东就自己一家物流公司,但是淘宝合作的有百余个 ,商圈的标准很难统一。

    ​    ​这种情况下,就没有解决方案了?当然有了,这也是本文的重点,思路如下:

    ​    ​第一步:各个物流公司在后台管理系统中,描述自己特定服务的特定范围(在地图上绘制多边形),系统保存下来:A公司,X服务,多边形的拐点信息;

    ​    ​第二步:交易环节,消费者选择了自己的地址,请求地址的geocoding服务(途径有多个,一个是提前算好经纬度的数据,在查询地址文本的时候,顺便把经纬度一起查出来,一个是实时的请求地图服务厂商提供的http地址解析接口),获取这个文本地址的经纬度数据,这个数据提交给服务计算引擎;

    ​    ​第三步:服务计算引擎,针对消费地址的经纬度(pointA ),以及物流公司维护的范围信息,进行空间计算,判断一下pointA有没有落到A公司-X服务的范围内,如果落在了,则这笔交易,可以享受A公司的X服务(这里有个点,如何进行空间计算,方案有多个,一种是利用数据库的空间特性,一种是利用geohash算法,自己来做前缀匹配,一种是利用solr的空间检索,各有利弊和适用场景);

    ​    ​综上,需要三个步骤,重点是文本数据空间话,然后进行空间计算,从而是实现服务范围的精细化。

 

    ​    ​这个服务范围空间实现了,如何来进行评测呢?

    ​    ​那这个方案是否靠谱呢,需要一定的机制来进行评测,如果A公司提供的X服务,在PointA点不能提供,但是系统判别出能够系统,这个给到消费者的体验是非常差的。评测说简单也简单,说复杂也复杂。就是监控这笔交易的后续状态,这个包裹消费者是否正常收到,服务是否享受到,评价情况如何,利用这些交易后的数据,来判断是否准确。

    ​  

    ​    ​ ​写到这里,算是完了,随着电子商务网站物流服务的多样化,空间维度的细化已经迫在眉睫,否则服务的体验会没有那么好。    ​​

 

 

1
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics