一、水果小程序配送范围设置
配送范围设置是小程序运营的核心功能之一,直接影响用户体验和运营效率。以下是常见实现方式:
1. 基于地理位置的圆形范围
- 适用场景:简单覆盖周边区域(如3公里内)。
- 操作步骤:
1. 后端配置:
- 在数据库中存储配送中心坐标(经纬度)和半径(单位:米)。
- 示例表结构:
```sql
CREATE TABLE delivery_area (
id INT PRIMARY KEY,
center_lat DECIMAL(10, 6), -- 中心纬度
center_lng DECIMAL(10, 6), -- 中心经度
radius INT -- 半径(米)
);
```
2. 前端实现:
- 调用微信小程序API获取用户当前位置:
```javascript
wx.getLocation({
type: wgs84,
success(res) {
const { latitude, longitude } = res;
// 计算与配送中心的距离
const distance = calculateDistance(latitude, longitude, centerLat, centerLng);
if (distance <= radius) {
// 在配送范围内
}
}
});
```
- 使用第三方库(如`geolib`)计算两点间距离。
2. 多边形区域(不规则范围)
- 适用场景:复杂区域(如多个街道、行政区)。
- 操作步骤:
1. 后端配置:
- 存储多边形顶点坐标(经纬度数组)。
- 示例表结构:
```sql
CREATE TABLE delivery_polygon (
id INT PRIMARY KEY,
polygon_points TEXT -- JSON格式存储顶点,如[{"lat":39.9,"lng":116.4},...]
);
```
2. 前端实现:
- 使用地图API(如高德、腾讯地图)的`containsLocation`方法判断用户位置是否在多边形内:
```javascript
const points = JSON.parse(polygonPointsFromBackend);
const isInside = AMap.GeometryUtil.isPointInRing(
[userLng, userLat],
points.map(p => [p.lng, p.lat])
);
```
3. 行政区划绑定
- 适用场景:按城市、区县划分。
- 操作步骤:
1. 后端配置:
- 存储行政区划代码(如`110101`表示北京市东城区)。
2. 前端实现:
- 调用微信`wx.chooseLocation`获取用户选择的地址,解析其行政区划代码后匹配数据库。
4. 动态调整范围
- 功能扩展:
- 管理员通过后台管理界面调整配送范围(如拖拽地图标记点)。
- 使用地图编辑工具(如Leaflet.Draw)实现可视化配置。
二、万象源码部署简单操作
万象源码通常指基于微信小程序生态的开源框架(如WeUI、Vant Weapp等),以下是通用部署步骤:
1. 环境准备
- 工具安装:
- 下载并安装[微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)。
- 确保Node.js版本≥12。
2. 源码获取
- 方式一:从GitHub克隆开源项目:
```bash
git clone https://github.com/your-repo/wanxiang-miniprogram.git
```
- 方式二:直接下载ZIP包并解压。
3. 项目配置
1. 修改`app.js`:
- 配置小程序AppID(在微信公众平台申请)。
- 设置全局变量(如API基础URL)。
2. 修改`project.config.json`:
- 更新`appid`和项目名称:
```json
{
"appid": "your_appid",
"projectname": "水果配送小程序"
}
```
4. 依赖安装
- 如果项目使用npm包:
```bash
npm install
```
- 在微信开发者工具中点击工具 -> 构建npm。
5. 数据库配置(如需)
- 若使用云开发(如微信云开发):
1. 在微信公众平台开通云开发。
2. 修改`cloud.init()`中的环境ID。
- 若使用自建后端:
- 配置`config.js`中的API地址:
```javascript
const config = {
apiBaseUrl: https://your-server.com/api
};
```
6. 编译与预览
1. 在微信开发者工具中点击编译。
2. 扫描二维码预览效果,或通过真机调试测试。
7. 常见问题解决
- 问题1:编译报错`Cannot find module xxx`。
- 解决:删除`node_modules`后重新`npm install`。
- 问题2:地图显示空白。
- 解决:在微信公众平台配置合法域名,并申请地图API Key。
三、进阶优化建议
1. 配送费计算:
- 根据距离动态计算费用(如`基础费 + 里程费 * 距离`)。
2. 配送时间预估:
- 集成高德/腾讯地图的路径规划API,显示预计送达时间。
3. 多仓支持:
- 若有多家门店,按用户位置分配最近仓库。
通过以上步骤,您可快速完成水果小程序的配送范围设置及源码部署。如需具体代码示例或进一步优化,可提供更多需求细节。