深圳幼儿园地理位置展示--基于Laravel

看手册千万遍,不如实践一遍。

觉得废话多的可以直接识别二维码看demo

深圳幼儿园地理位置展示--基于Laravel_第1张图片
demo.png

Laravel 好早就了解了,放眼全球,是最流行的框架,没有之一。


深圳幼儿园地理位置展示--基于Laravel_第2张图片
PHP框架搜索排行.png

但是从5.1到5.4都出来了,还是没有真正的动手实践,心痛不已。

感觉学习新的框架就像一个爬坡的过程,需要一气呵成,不然就翻滚会老位置了。最近用了两天的时间来做一个小demo,记录一下,以见证自己的学习。

深圳幼儿园地理位置展示

痛点:政府的办事是非常不靠谱,幼儿园的数据是有公布出来了,但是格式各领风骚,公布的信息粒度不一,查询起来非常不好做对比。

其中罗湖区相对比较好,除了基本的名称、地址,其他的许可证号、法人、主办单位、性质、等级、每月费用、联系电话等都由公布,相对来家长一目了然;而南山就非常的高冷了,只有名称和地址,其他的自己找去吧!

深圳幼儿园地理位置展示--基于Laravel_第3张图片
总汇的幼儿园.png
深圳幼儿园地理位置展示--基于Laravel_第4张图片
各区幼儿园格式.png

目标:通过手机统一在地图上展示家长住所片区的所有幼儿园数据(名称、地址、等级、收费标准、电话等),真正的一目了然,给自己的小孩快速挑选一个安心的幼儿园。


计划:使用Laravel 框架来做后台支撑、管理所有数据;WeUI框架作为前端展示,解决不同手机显示的兼容性问题;百度地图作为地图支撑,获取用户位置,展示不同区的幼儿园位置和其他资料。


流程:

  1. Axure 构思产品功能和展示页面
  2. 配置 Laravel 运行环境
  3. 手工处理下载下来的幼儿园数据到excel表格
  4. 导入数据到Mysql数据库
  5. 通过百度地理编码接口获取幼儿园数据的经纬度
  6. 对经纬度做geohash编码(用于定位找附近的幼儿园)
  7. 前端接入WeUI;
  8. 动态筛选出来用户选择的片区幼儿园数据,接入百度地图的JSAPI,在百度地图界面打点显示。

步骤:

1.Axure 构思产品功能和展示页面
深圳幼儿园地理位置展示--基于Laravel_第5张图片
124.png
2. 配置 Laravel 运行环境
CentOS7.4 + Nginx1.10 + PHP7 + MariaDB
然后配置了一下虚拟主机,没有了
具体要了解更多就 [打开手册](https://laravel.com/docs/5.4)好了
3. 手工处理下载下来的幼儿园数据到excel表格
4. 导入数据到Mysql数据库

这个没有什么好说了,下载的数据一点点copy到一个规范的excel去呗,然后用累死 Navicat 的工具,导入到mysql去

5. 通过百度地理编码接口获取幼儿园数据的经纬度

看Demo例子
http://api.map.baidu.com/geocoder/v2/?address=北京市海淀区上地十街10号&output=json&ak=E4805d16520de693a3fe707cdc962045&callback=showLocation
然后就写个循环,Laravel控制器里边获取了所有的幼儿园名字数据,一个个去请求百度的接口,得到JSON格式的数据,解析后存入lng ,lat 到对应的幼儿园去,就有了经纬度啦。

6. 对经纬度做geohash编码(用于定位找附近的幼儿园)

这个功能还没有做,原理是,有了经纬度,就可以转换为 geohash了,然后通过字符串的位数比对就可以和用户自己的定位地址来比较出远近来,得到附近范围的幼儿园数据输出。

7. 前端接入WeUI;

参考,http://weui.io,但是因为官方的github缺少了一些样式的说明,可以利用 https://github.com/pengtikui/WeUI-Simple-Guide 来辅助理解一下

8. 动态筛选出来用户选择的片区幼儿园数据,接入百度地图的JSAPI,在百度地图界面打点显示。

效果如下:

深圳幼儿园地理位置展示--基于Laravel_第6张图片
125.png

总结:

这个例子学会了简单使用 Laravel 框架的:
路由
控制器
视图
Blade模板语法
数据库基础的几个请求、分页

原来用起来也不是很难,想不到自己浪费了那么久的时间在拖拉上。

例子

深圳幼儿园地理位置展示--基于Laravel_第7张图片
深圳幼儿园地理位置展示例子

你可能感兴趣的:(深圳幼儿园地理位置展示--基于Laravel)