一、配送范围设置(以微信小程序为例)
1. 地图API接入
- 申请地图服务:
- 注册腾讯位置服务/高德地图开发者账号。
- 创建项目并获取`Key`(如腾讯地图需申请`WebService API`权限)。
- 配置小程序后台:
- 在微信公众平台(mp.weixin.qq.com)的「开发」-「开发管理」-「开发设置」中,添加`request合法域名`(如腾讯地图API域名)。
2. 配送范围设置方式
- 方式1:手动划定区域
1. 在小程序后台或管理后台(需开发支持)集成地图组件。
2. 使用多边形绘制工具(如腾讯地图JS API的`Polygon`)划定配送边界。
3. 保存区域坐标点(如`[[经度1,纬度1], [经度2,纬度2], ...]`)到数据库。
- 方式2:按行政区划筛选
1. 通过地图API的行政区划查询接口(如腾讯地图的`district`接口)获取区域边界。
2. 用户选择区/县后,自动匹配预设的配送范围。
3. 前端交互逻辑
- 用户输入地址时,调用地图API的`geocoder`接口将地址转为坐标。
- 判断坐标是否在配送范围内(使用`isPointInPolygon`算法或地图API的`containsLocation`方法)。
- 示例代码(腾讯地图JS API):
```javascript
const polygon = new TMap.MultiPolyline({
map: mapInstance,
geometries: [{
paths: [[116.3, 39.9], [116.4, 39.9], [116.4, 40.0]] // 配送区域坐标
}]
});
const isInRange = TMap.geometryUtils.isPointInPolygon(
[用户坐标经度, 用户坐标纬度],
polygon.getPaths()[0]
);
```
4. 配送规则扩展
- 按距离计费:使用地图API的`distance`接口计算用户地址到门店的距离,设置阶梯运费。
- 时间限制:结合`geocoder`和`direction`接口预估配送时间,动态显示可送达时段。
二、万象源码部署(以微信小程序为例)
1. 环境准备
- 服务器:购买云服务器(如腾讯云、阿里云),推荐配置:1核2G+50GB系统盘。
- 域名:备案域名并配置HTTPS(微信小程序要求)。
- 数据库:安装MySQL或使用云数据库(如腾讯云TDSQL)。
2. 源码部署步骤
- 步骤1:上传代码
1. 通过FTP/SFTP工具将源码上传至服务器(如`/var/www/html/fruit-mini`)。
2. 确保目录权限为`755`,文件权限为`644`。
- 步骤2:配置环境
1. 安装Node.js(若前端为Vue/React)和Nginx。
2. 配置Nginx反向代理(示例):
```nginx
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
location / {
root /var/www/html/fruit-mini/dist;
index index.html;
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://127.0.0.1:3000; 后端接口地址
}
}
```
- 步骤3:数据库配置
1. 导入SQL文件初始化数据库(如`mysql -u root -p database_name < dump.sql`)。
2. 修改后端配置文件(如`config/database.js`)中的数据库连接信息。
- 步骤4:启动服务
1. 启动后端服务(如`npm start`或`pm2 start app.js`)。
2. 重启Nginx:`systemctl restart nginx`。
3. 小程序配置
- 在微信公众平台配置:
- 服务器域名:填写HTTPS域名(如`https://yourdomain.com`)。
- 业务域名:同上(若涉及Web-View)。
- 上传小程序代码包(通过开发者工具导入前端代码并提交审核)。
三、常见问题解决
1. 地图不显示:
- 检查`Key`是否绑定域名,控制台是否有报错(如`Invalid Key`)。
- 确认网络请求未被拦截(浏览器开发者工具查看)。
2. 配送范围判断错误:
- 验证坐标点顺序是否正确(多边形需按顺时针或逆时针排列)。
- 使用在线工具(如[GeoJSON.io](https://geojson.io/))可视化检查区域。
3. 部署后404错误:
- 检查Nginx配置中`root`路径是否指向正确目录。
- 确认前端路由模式(如Hash模式无需后端配合,History模式需配置`try_files`)。
四、优化建议
- 缓存配送范围:将区域坐标存入Redis,减少数据库查询。
- 动态调整范围:根据运力、天气等因素,通过管理后台实时更新配送区域。
- 用户提示友好化:在无法配送时,显示“当前区域暂不支持配送,我们将尽快开放”并引导用户选择自提。
通过以上步骤,可快速完成水果小程序的配送范围设置及源码部署。如需更复杂的逻辑(如动态定价、多仓调度),可进一步集成ERP系统或第三方物流API。