在做微信开发的时候,很多客户要求加入地图的应用,自带的tx地图实在是鸡肋,谷歌又在Q外,所以研究了下百度地图。
准备工作:百度地图api的key(点我申请)
做微信的百度地图开发,大致有两个方向:
1、从微信获取数据后,访问百度api,返回给客户解析后的信息。
2、从微信跳转到封装好的百度地图的web界面
分析:
第一种主要调用的是 百度地图http服务接口,也就是和微信接口差不多,我们给他接口发送数据,他会返回给我们相应的信息(xml/json)。举个例子:用户给公共账号发送:我在哪? 后台调用api后直接返回:你在xx省xx市xx县城
第二种主要调用的是 百度地图web开发接口,这个是一堆javascript代码,我们根据实际需求分拆组装js,来组成我们自己的web页面。举个例子:用户给公共账号发送:我怎么去你们公司? 这时候我们给用户回复一个链接,用户点击进去之后,会自动出现地图,并在上边显示路线。
这两种各有不同,第一种方法更加灵活,但是相应的开发成本也更高。第二种方式简单,但是相对来说受到地图自己本身限制。
但是实际上第二种已经能满足大部分客户需求了,所以下边我们主要讲解第二种。
以用户获取到xx地点路线为例子
首先,设想一下,我们有一个地区很多城市的犯罪数据,另外有一张地图。如果我们把两者结合起来,是不是就能组装成一张显示该地区犯罪率分布的地图了?
这就是传说中WebService的思想,其实微信/百度lbs/黄鸡都算是WebService的一种。
扯远了,但是百度地图开发也是基于此原理,我们新建一个百度地图应用,是空的。
百度地图的Hello, World
这是一张空地图,我们需要做的就是在地图上添加更多的功能来满足我们的需求。
再让我们设想一下,获取用户当前到xx地的路线,大致有如下步骤。
1.先给地图设置一个点,让地图初始化。
2.获取并设置目的地的经纬度(固定值)
3.获取用户当前的经纬度(请求定位)
4.获取两点之间的路线
5.显示出来。
OK,我们现在很清楚了,需要给地图添加如下功能(参照api)
api名称:
a.用城市名字设置地图中心
b.添加鼠标缩放
c.设置目的地坐标
d.浏览器定位
e.根据其实点经纬度导航。
加入后代码大致如下:
浏览器
这就是驾车路线,还有一个公交路线,大致如下
@{ Layout = null; }展示公交换乘的结果面板