# API期末项目 **Repository Path**: LiangZeng_918f/api-final-project ## Basic Information - **Project Name**: API期末项目 - **Description**: api、机器学习与人工智能期末项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-03-25 - **Last Updated**: 2022-03-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # API-期末项目PRD文档 #### 介绍 |文档名称|ANYWHERE —— 产品需求文档| |:---:|:---:| |产品名称|ANYWHERE| |产品版本|1.0| |文件描述|一款用户能够在地图上看到流浪动物分布在哪的app,并且提供了一个发布寻宠启示的平台| |文件作者|李婧雯| 价值说明:基于当今社会流浪动物群体众多、流浪动物携带的病菌对低免疫力群体的负面影响以及城市卫生管理等问题,我设计了一款专注于流浪动物的app,运用了地理相关api,让人们可以通过app在地图上了解流浪动物的聚集地,同时用户也可以提供流浪动物地理位置数据。这款app还开设了一个帮助主人寻找丢失宠物的社交平台模块。 *** ## 一、需求概述 1.产品背景:随着人们生活水平的不断提高,越来越多人养宠物,而因为各种原因被遗弃的和丢失的宠物也随之增多。 [相关报道](http://citynews.eastday.com/csdb/html/2018-03/29/content_183544.htm) 2.产品市场:与流浪动物相关的网站或app少之又少,而实际上人们需求很大,因为在每一分钟内就有不少宠物丢失,而相关保护动物协会或者宠物救助站也可以通过该app进行流浪动物的救助。 3.解决方案:在app上添加逆地理编码、地图和定位系统,使得用户上传的地理位置信息数据能顺利记录在地图上。 ## 二、问题需求 1.使用场景: (1) 普通人在街上看到流浪动物 (2) 流浪动物救助站/动物保护协会根据地图上标识的流浪动物出没聚集地进行救助。 (3) 宠物主人寻找丢失宠物 2.用户画像 * 用户群体: * 热爱动物、想要援助流浪动物的人 * 动物保护协会/救助站 * 宠物主人 * 用户画像及场景 ![用户画像](image/user.png) ## 三、核心价值和痛点 | 用户痛点 | 智能加值 | | :------------: | :------------: | |不知道何处流浪动物聚集|定位API+地图| |想要援助流浪动物却不知如何援助|大数据预测+定位api| |不知道附近有多少走丢的宠物|大数据计算+大数据预测| * 产品所完成的主要功能是: * 根据用户提供的遇见流浪动物的位置信息数据,让人们了解哪里是流浪动物聚集地。 * 一个寻宠社区,爱宠主人可以在社区发布寻宠启示,或者好心人捡到宠物发布寻主启示等。 ## 四、ANYWHERE的价值主张画布 ![价值主张画布](image/value.png) * ANYWHERE不仅用定位api告诉用户流浪动物在哪出没哪里聚集,还设立了一个专门的寻宠社区,提供了一个寻宠平台。解决了用户找不到专注于流浪动物、寻宠平台的痛点。 * 学习参考: [价值主张画布](https://www.jianshu.com/p/00a5f0d959fa) ## 五、界面流程 #### 1、产品功能结构图 ![产品功能结构图](image/product.png) ## 六、产品原型及交互设计 ### [ANYWHERE--产品原型交互链接](https://modao.cc/app/4e944c80458752acab633de8333d1a685dc1d565?simulator_type=device&sticky) #### 1.登录界面 ![](image/登陆.png) #### 2.提交地址界面 ![](image/提交地址.png) #### 3.主页界面 ![](image/主页.png) #### 4.社区界面 ![](image/社区.png) #### 5.我的界面 ![](image/关于我.png) #### 9.交互流程图 ![](image/交互流程图.png) * API思路: * 用户可欲用性:用户可以随时随地看到附近的流浪动物聚集地,并且能收到附近丢失宠物的启示。有专门的寻宠社区模块,为寻宠提供了专属平台。 * 技术可行性:逆地理编码api与定位api都很成熟了,此功能精准率较高 * API智能成本分析: * [高德定位API--产品说明](https://lbs.amap.com/getting-started/locate/) * 高德定位api是开发平台,不超每日限额的话是免费的调用的。 * 商业模式画布: ![](image/商业模式画布.png) ## 七、需求列表(对应人工智能加值) | 序号 | 技术 | 用途 | 优先级 | | :------------: | :------------: | :------------: | :------------: | | 1 | 定位API | 对用户进行定位 | A(重要) | | 2 | 静态地图api | 展示定位地图位置 | A(重要) | | 3 | 逆地理编码api | 对用户提交的地址进行数据处理 | B(重要)| | 4 | 大数据预测模型 | 根据用户地理位置推送寻宠帖子 | B(重要)| ## 八、API的使用 ### [高德定位api使用介绍](https://lbs.amap.com/api/android-location-sdk/locationsummary) (一)定位api 1、获取key * [获取key方法](https://lbs.amap.com/api/android-location-sdk/guide/create-project/get-key) 2、配置 * [配置工程](https://lbs.amap.com/api/android-location-sdk/guide/create-project/android-studio-create-project) 3、获取数据 * [获取定位数据](https://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation) (二)逆地理编码api[https://lbs.amap.com/api/webservice/guide/api/georegeo/](https://lbs.amap.com/api/webservice/guide/api/georegeo/) 1.服务地址 API * URL:https://restapi.amap.com/v3/geocode/regeo?parameters * 请求方式:GET 2.使用说明 * 第一步,申请Web服务API类型Key; * 第二步,参考接口参数文档发起HTTP/HTTPS请求,第一步申请的 Key 需作为必填参数一同发送; * 第三步,接收请求返回的数据(JSON或XML格式),参考返回参数文档解析数据。 * 如无特殊声明,接口的输入参数和输出数据编码全部统一为 UTF-8 编码方式。 (三)静态地图api: 1.服务地址 * URL: https://restapi.amap.com/v3/staticmap?parameters * 请求方式: GET 2.使用说明 * 第一步,申请”Web服务API”密钥(Key); * 第二步,拼接HTTP请求URL,第一步申请的Key需作为必填参数一同发送; * 第三步,接收HTTP请求返回的数据(json或xml格式),解析数据。 * 如无特殊声明,接口的输入参数和输出数据编码全部统一为utf-8。 (四)部分代码 * 定位 ``` #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib from urllib import urlencode #---------------------------------- # 经纬度地址解析调用示例代码 - 聚合数据 # 在线接口文档:http://www.juhe.cn/docs/15 #---------------------------------- def main(): #配置您申请的APPKey appkey = "99b6fd576c6cb06dc071b44d30935237" #1.经纬度地址解析 request1(appkey,"GET") #经纬度地址解析 def request1(appkey, m="GET"): url = "http://apis.juhe.cn/geo/" params = { "lng" : "", #经度 (如:119.9772857) "lat" : "", #纬度 (如:27.327578) "key" : appkey, #申请的APPKEY "type" : "", #传递的坐标类型,1:GPS 2:百度经纬度 3:谷歌经纬度 "dtype" : "", #返回数据格式:json或xml,默认json } params = urlencode(params) if m =="GET": f = urllib.urlopen("%s?%s" % (url, params)) else: f = urllib.urlopen(url, params) content = f.read() res = json.loads(content) if res: error_code = res["error_code"] if error_code == 0: #成功请求 print res["result"] else: print "%s:%s" % (res["error_code"],res["reason"]) else: print "request api error" if __name__ == '__main__': main() ``` * 逆地理编码 ``` import requests import json import pandas as pd def regeocode(key,location='113.679287,23.632575',poitype=None,radius=None,extensions="all",batch=False,roadlevel=None,sig=None,callback=None,homeorcorp=None) ->dict: '''获得高德API逆地理编码''' url = 'https://restapi.amap.com/v3/geocode/regeo?parameters' params = { 'key':key_jw, 'location':location, 'poitype':poitype, 'radius':radius, 'extensions':extensions, 'batch':batch, 'roadlevel':roadlevel, 'sig':sig, 'output':'json', 'callback':callback, 'homeorcorp':homeorcorp } r = requests.get(url,params=params) result = r.json() return result 革新路 = regeocode(key=key_jw,location="113.251893,23.092342",extensions="all") print(革新路) df_革新路 = pd.json_normalize(革新路) df_革新路 ``` ## 九、竞品分析 1、在手机小程序中搜索“流浪动物”,出来的搜索结果中(仅有16个结果,并且有几个是游戏小程序或救助站平台)挑选了三个相对来说比较好的小程序。 |竞品|简介|功能|优势| |:---:|:---:|:---:|:---:| |身边的流浪动物查询(小程序)|一款基于地图定位的流浪动物信息分享小程序|可以通过地图标记分享身边的流浪动物|标记流浪动物的时候还一同上传了图片做成了流浪动物图鉴| |宠安家领养(小程序)|一款流浪动物公益领养平台|纯公益领养,有数据推送“推荐领养”|设置了“失信黑名单”,将宠物种类进行了分类筛选| |爪盟星zmengstar流浪动物关爱(小程序)|一款旨在帮助送养人及领养人更加便捷的进行领养审核、送养的程序|创造领养社区,用户可以在此选择心仪的宠物|不仅将宠物分类,还将性别进行了分类| 2、分析: * 首先不管是网站还是小程序、app我都很难找到与流浪动物直系相关的(网站几乎是没有找到),小程序虽然找到了一些,但大多做的比较简陋不规范,app更多的是与宠物相关的。 * 并没有专注流浪动物群体而创作的产品,更多是专注宠物和领养这个版块 * 与流浪动物相关的更多是公益性质,商业价值不高。 * 结论:与“流浪动物”相关的产品太少了,关注流浪动物的人还不够多,需要考虑如何引流的问题,如何吸引更多人关注流浪动物群体。 ## 十、心得总结与感谢 * 心得总结:本次prd文档问题主要集中在api调用的实现,说明了对api调用还是不够熟悉,需要更多的深入了解和学习。写文档的过程中也让我更清楚自己的产品定位,一步步清晰和了解方向。 * 感谢:感谢百度API提供的免费调用服务,接口服务及技术文档。