地图导航

随着交通经济的发展,人们的活动区域越来越大,不认识路,找不到目的地的情况也屡有发生,地图导航的功能可以帮用户导航到目的地。



高德地图

  • 高德地图是中国领先的数字地图内容,导航和位置服务解决方案提供商。高德拥有中国领先的电子地图数据库,并拥有多个“甲级资质”,在汽车导航、政府和企业应用,互联网及移动互联网位置服务应用三大业务领域,均处于市场领先地位
  • 高德地图API是一组基于云的服务接口,包括互联网地图API和手机地图API。
    为了方便企业和个人开发者使用高德地图,高德建立了地图API频道https://lbs.amap.com/,该频道提供各种开发文档,参考手册,功能演示,和工具资源,供开发者下载使用。
  • 我们使用高德地图API完成导航功能,我们需要根据目的地起始地的坐标,然后再根据两地的坐标来进行导航。
  • 我们使用高德地图JavaScript API
    中的“鼠标拾取地图坐标”功能来获得目的地的坐标,该功能的地址为:https://lbs.amap.com/api/javascript-api/example/map/click-to-get-lnglat/
高德地图API提供了线路规划功能,给出起点和终点,就可以搜索公交或驾车路线,接口示例如下:

公交线路导航接口:
http://mo.amap.com/?from=".$object->Location_X.",".$object->Location_Y."(".$object->Label.")&to=".$Pondbay['latitude'].",".$Pondbay['longitude']."(".$Pondbay['name'].")&type=1&opt=0&dev=1")
驾车线路导航接口:
http://mo.amap.com/?from=".$object->Location_X.",".$object->Location_Y."(".$object->Label.")&to=".$Pondbay['latitude'].",".$Pondbay['longitude']."(".$Pondbay['name'].")&type=0&opt=1&dev=1"

index.php完整代码如下:

<?php
/*CopyRight 2018-All Rights Reserved
*/define("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();
if (!isset($_GET['echostr'])) {$wechatObj->responseMsg();
}else{$wechatObj->valid();
}class wechatCallbackapiTest
{public function valid(){$echoStr = $_GET["echostr"];if($this->checkSignature()){echo $echoStr;exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode($tmpArr);$tmpStr = sha1($tmpStr);if($tmpStr == $signature){return true;}else{return false;}}public function responseMsg(){$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];if (!empty($postStr)){$this->logger("R ".$postStr);$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$RX_TYPE = trim($postObj->MsgType);switch ($RX_TYPE){case "event":$result = $this->receiveEvent($postObj);break;case "text":$result = $this->receiveText($postObj);break;case "location":$result = $this->receiveLocation($postObj);break;default:$result = "unknow msg type: ".$RX_TYPE;break;}$this->logger("T ".$result);echo $result;}else {echo "";exit;}}private function receiveEvent($object){$content = "";switch ($object->Event){case "subscribe":$content = "欢迎关注 德强1012 ";$content .= isset($object->EventKey)?("\n来自二维码场景 ".$object->EventKey):"";break;case "unsubscribe":$content = "取消关注";break;}$result = $this->transmitText($object, $content);return $result;}private function receiveText($object){$keyword = trim($object->Content);$content = date("Y-m-d H:i:s",time());$result = $this->transmitText($object, $content);return $result;}private function receiveLocation($object){$Pondbay = array("name" => "方倍工作室", "latitude" => "22.539394", "longitude" => "113.956246");$content[] = array("Title" =>"高德地图为您导航", "Description" =>"", "PicUrl" =>"", "Url" =>"");$content[] = array("Title" =>"点击图片查看公交线路导航", "Description" =>"", "PicUrl" =>"http://h.hiphotos.bdimg.com/wisegame/pic/item/1fd98d1001e9390186c2c97479ec54e737d196bc.jpg", "Url" =>"http://mo.amap.com/?from=".$object->Location_X.",".$object->Location_Y."(".$object->Label.")&to=".$Pondbay['latitude'].",".$Pondbay['longitude']."(".$Pondbay['name'].")&type=1&opt=0&dev=1");$content[] = array("Title" =>"点击图片查看驾车线路导航", "Description" =>"", "PicUrl" =>"http://b.hiphotos.bdimg.com/wisegame/pic/item/eeb1cb1349540923f48a42079058d109b2de49e3.jpg", "Url" =>"http://mo.amap.com/?from=".$object->Location_X.",".$object->Location_Y."(".$object->Label.")&to=".$Pondbay['latitude'].",".$Pondbay['longitude']."(".$Pondbay['name'].")&type=0&opt=1&dev=1");$result = $this->transmitNews($object, $content);return $result;}private function transmitText($object, $content){$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content></xml>";$result = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content);return $result;}private function transmitNews($object, $arr_item){if(!is_array($arr_item))return;$itemTpl = "    <item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item>";$item_str = "";foreach ($arr_item as $item)$item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);$newsTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[news]]></MsgType><Content><![CDATA[]]></Content><ArticleCount>%s</ArticleCount><Articles>$item_str</Articles></xml>";$result = sprintf($newsTpl, $object->FromUserName, $object->ToUserName, time(), count($arr_item));return $result;}private function logger($log_content){if(isset($_SERVER['HTTP_APPNAME'])){   //SAEsae_set_display_errors(false);sae_debug($log_content);sae_set_display_errors(true);}else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL$max_size = 10000;$log_filename = "log.xml";if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}file_put_contents($log_filename, date('H:i:s')." ".$log_content."\r\n", FILE_APPEND);}}
}?>

微信公众号最佳实践 ( 9.6)地图导航相关推荐

  1. 微信公众号最佳实践 ( 4.7)获取用户地理位置

    开通了上报地理位置接口的微信公众号,在用户关注并进入微信公众号回话时,会弹框让用户确认是否允许微信公众号使用其地理位置.弹框只在关注后出现一次,用户以后可以在微信公众号详情页面进行操作. 本章代码还需 ...

  2. 微信公众号最佳实践 ( 8.8)智能聊天机器人

    智能聊天机器人 小i机器人,是上海至臻网络科技有限公司开发的智能机器人产品,是全球用户量最大的中文聊天机器人.该机器人,能查询新闻.地图.餐饮.机票等各类生活资讯. iBotCloud iBotClo ...

  3. 微信公众号最佳实践 ( 10.2)回复QQ表情和Emoji表情

    回复QQ表情和Emoji表情 微信的的文字发送方有一个笑脸表情等表情符,单击该表情后,我们可以发送这些表情,这些表情包括QQ表情和Emoji表情(也叫符号表情) 如图示: 微信用户和微信公众号都能直接 ...

  4. 微信公众号最佳实践 ( 4.3)语音识别

    4.3.1 接取识别结果 开通语音识别功能以后,用户每次发送语音给微信公众号,微信会在推送语音消息XML数据包中添加一个Recongnition字段,该字段为语音识别出的文本内容. 注:由于客户端缓存 ...

  5. 微信公众号最佳实践 ( 3.2) 被动回复用户消息

    '公众号' 被动回复 "用户" 发送的六种类型的消息 其中图文可分为'单图文'和'多图文' 回复文本消息 回复图片消息 回复语音消息 回复视频消息 回复音乐消息 回复图文消息 请注 ...

  6. 微信公众号最佳实践 ( 4.4)客服接口

    当用户和公众号产生特定动作的交互时(具体动作请见下方列表),微信将会把消息数据推送给开发者,开发者可以在一段时间内(目前修改为48小时)调用客服接口,通过POST一个JSON数据包来发送消息给普通用户 ...

  7. 微信公众号最佳实践 ( 9.1)会员卡

    会员卡 会员卡一般是指企业发行的用于识别顾客身份的卡片,普片用于服务行业,他是公司宣传的理想载体,能够吸引新顾客,留住老顾客,增强顾客忠诚度的作用,还能实现打折,积分等功能. 页面布局 准备素材,包括 ...

  8. 微信公众号最佳实践 ( 7.2)交通信息查询

    交通信息查询 交通信息是是属于公共信息,已经有很多大型网站提供了响应的查询和查看功能,但是这些信息的后台数据往往并不对外开放,一是因为获取成本高,二是怕添加一个新的竞争对手,但好在很多第三方网站提供了 ...

  9. 微信公众号最佳实践 ( 8.7)一站到底

    一站到底 <一站到底>是一个益智答题类节目.趣味十足,在挑战中挖掘个性. 实现方案 首先,我们需要有一个题库,用户答题的内容均从题库中获取. 该题库SQL语句如下: -- -- 表的结构 ...

最新文章

  1. 图灵奖得主Bengio再次警示:可解释因果关系是深度学习发展的当务之急
  2. CCF NOI plus 201(7)6 初赛题 解题报告
  3. python 的类装饰器
  4. 无服务器:不费吹灰之力!
  5. (SPFA+最短路变形+回路对起点的影响)Arbitrage
  6. java nio 客户端_Java网络编程:Netty框架学习(二)---Java NIO,实现简单的服务端客户端消息传输...
  7. ACM 整数划分(四)
  8. sql隐式转换_SQL Server中的隐式转换
  9. Spring MVC访问页面拦截js和css文件解决方法( No mapping found for HTTP request with URI [/Recruit/js/popper1.15.0.)
  10. Nginx页面乱码问题
  11. oem718d 基准站设置_诺瓦泰NovAtel OEM718D全系统多频单机测向板卡
  12. matlab现值与终值函数_个人家庭投资理财基础(二 单利、复利、终值、现值、内部收益率)...
  13. AD中元器件库对照表(一)
  14. 求高手请进,帮我分析这种情况是什么原因
  15. 3DGPS数据图和3D圆轨道图
  16. PHPMailer 发送163网易企业邮箱和个人邮箱, 163邮箱可能无法发送gmail邮箱,可使用qq邮箱解决问题
  17. 计算机专业学生如何做项目,计算机专业学生如何申请科研项目?
  18. 深富策略:盘面太墨迹 期待来根大阳线
  19. kettle(4.1 TSV文件的抽取)
  20. Nuke Essential Training Nuke基本训练 Lynda课程中文字幕

热门文章

  1. one coin,oneworld
  2. 次氯酸钠发生器选型依据,再也不怕选不对设备了
  3. Java中实现十进制数转换为二进制
  4. Android WebView 因重定向无法正常goBack()的一种解决小方案
  5. Node.js接入支付宝(蚂蚁金服)支付
  6. 全志A40I sdk wifi 模块移植说明文档
  7. android开发工具类之获得WIFI IP地址或者手机网络IP
  8. KTV 歌房如何实现伴奏与人声同步功能
  9. vue实现密码显示隐藏、很简单易懂
  10. SysY文法编译器前端设计实现