- var config = {
- key:'请在此填入你申请的key'
- }
- module.exports.Config = config;
- var amapFile = require('../../libs/amap-wx.js');
- var config = require('../../libs/config.js');
- <scroll-view scroll-x class="bg-white nav text-center">
- <view class="cu-item {{index==TabCur?'text-blue cur':''}}" wx:for="{{4}}" wx:key bindtap="tabSelect" data-id="{{index}}">
- {{method[index]}}
- </view>
- </scroll-view>
- <view class="map">
- <view bindtap='getFormAddress'>
- <view class="cu-form-group">
- <view class="title">出发地</view>
- <input placeholder="出发地" type="text" name="" bindinput="" value='{{markers[0].name}}' />
- </view>
- </view>
- <view bindtap='getToAddress'>
- <view class="cu-form-group">
- <view class="title">目的地</view>
- <input placeholder="目的地" type="text" name="" bindinput="" value='{{markers[1].name}}' />
- </view>
- </view>
- ?
- <view class="flex" wx:if="{{TabCur==0||TabCur==1}}">
- <button class="cu-btn bg-blue lg" bindtap = 'getSure'>确定</button>
- </view>
- ?
- </view>
- <view>
- <view class="map_box" wx:if="{{TabCur==0}}">
- <map id="navi_map" longitude="{{markers[0].longitude}}" latitude="{{markers[0].latitude}}" scale="12" markers="{{markers}}" polyline="{{polyline}}"></map>
- </view>
- <view class="text_box" wx:if='{{TabCur==0}}'>
- <view class="text">{{distance}}</view>
- <view class="text">{{cost}}</view>
- <view class="detail_button" bindtouchstart="goDetail" wx:if="{{state==1}}">详情</view>
- </view>
- </view>
- var amapFile = require('../../libs/amap-wx.js');
- var config = require('../../libs/config.js');
- const app = getApp()
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- markers: [{
- iconPath: "../../img/mapicon_navi_s.png",
- id: 0,
- latitude: 39.989643,
- longitude: 116.481028,
- width: 23,
- height: 33
- },{
- iconPath: "../../img/mapicon_navi_e.png",
- id: 0,
- latitude: 39.90816,
- longitude: 116.434446,
- width: 24,
- height: 34
- }],
- distance: '',
- cost: '',
- state: 0,
- method:['驾车','公交','骑行','步行'],
- index:0,
- TabCur:0,
- polyline: [],
- transits: []
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad: function(options) {
- var that = this;
- wx.showLoading({
- title: "定位中",
- mask: true
- })
- wx.getLocation({
- type: 'gcj02',
- altitude: true, //高精度定位
- success: function(res) {
- console.info(res);
- var latitude = res.latitude
- var longitude = res.longitude
- var speed = res.speed
- var accuracy = res.accuracy
- that.setData({
- markers: [{
- name: '当前位置',
- latitude: latitude,
- longitude: longitude
- }, {
- name: '您要去哪儿?',
- latitude: '',
- longitude: ''
- }]
- })
- },
- fail: function() {
- wx.showToast({
- title: "定位失败",
- icon: "none"
- })
- },
- complete: function() {
- wx.hideLoading()
- }
- })
- },
- //选择器改变函数
- tabSelect(e) {
- this.setData({
- TabCur: e.currentTarget.dataset.id,
- scrollLeft: (e.currentTarget.dataset.id - 1) * 60
- })
- },
- //获取出发地
- getFormAddress: function() {
- var that = this;
- wx.chooseLocation({
- success: function(res) {
- var name = res.name
- var address = res.address
- var latitude = res.latitude
- var longitude = res.longitude
- var markesName = "markers[" + 0 + "].name";
- var markesLatitude = "markers[" + 0 + "].latitude";
- var markeslongitude = "markers[" + 0 + "].longitude";
- var markesiconPath = "markers[" + 0 + "].iconPath";
- that.setData({
- [markesName]: name,
- [markesLatitude]: latitude,
- [markeslongitude]: longitude,
- [markesiconPath]: "../../img/mapicon_navi_s.png"
- })
- },
- fail: function() {
- wx.showToast({
- title: '定位失败',
- icon: "none"
- })
- },
- complete: function() {
- //隐藏定位中信息进度
- wx.hideLoading()
- }
- })
- },
- //获取目的地
- getToAddress: function() {
- var that = this;
- wx.chooseLocation({
- success: function(res) {
- console.log(res);
- var name = res.name
- var address = res.address
- var latitude = res.latitude
- var longitude = res.longitude
- var markesName = "markers[" + 1 + "].name";
- var markesLatitude = "markers[" + 1 + "].latitude";
- var markeslongitude = "markers[" + 1 + "].longitude";
- var markesiconPath = "markers[" + 1 + "].iconPath";
- that.setData({
- [markesName]: name,
- [markesLatitude]: latitude,
- [markeslongitude]: longitude,
- [markesiconPath]: "../../img/mapicon_navi_e.png"
- })
- },
- fail: function() {
- wx.showToast({
- title: '定位失败',
- icon: "none"
- })
- },
- complete: function() {
- //隐藏定位中信息进度
- wx.hideLoading()
- }
- })
- },
- /**
- * 确定
- */
- getSure: function() {
- var that = this;
- var origin = that.data.markers[0].longitude + ',' + that.data.markers[0].latitude;//出发地
- var destination = that.data.markers[1].longitude + ',' + that.data.markers[1].latitude; //目的地
- var TabCur=this.data.TabCur;
- app.origin = origin;
- app.destination = destination;
- var key = config.Config.key;
- var myAmapFun = new amapFile.AMapWX({
- key: key
- });
- if(TabCur==0){
- myAmapFun.getDrivingRoute({//获取驾车路线
- origin: origin,
- destination: destination,
- success: function(data) {
- var points = [];
- if (data.paths && data.paths[0] && data.paths[0].steps) {
- var steps = data.paths[0].steps;
- for (var i = 0; i < steps.length; i++) {
- var poLen = steps[i].polyline.split(';');
- for (var j = 0; j < poLen.length; j++) {
- points.push({
- longitude: parseFloat(poLen[j].split(',')[0]),
- latitude: parseFloat(poLen[j].split(',')[1])
- })
- }
- }
- }
- that.setData({//将路线在地图上画出来
- state: 1,
- polyline: [{
- points: points,
- color: "#0091ff",
- width: 6
- }]
- });
- if (data.paths[0] && data.paths[0].distance) {
- that.setData({
- distance: data.paths[0].distance + '米'
- });
- }
- if (data.taxi_cost) {
- that.setData({
- cost: '打车约' + parseInt(data.taxi_cost) + '元'
- });
- }
- }
- })
- }
- },
- /**
- * 详情页
- */
- goDetail: function() {
- var TabCur=this.data.TabCur;
- if(TabCur==0){
- wx.navigateTo({
- url: '../detail/detail'
- })
- }
- },
- })
- .flex-style{
- display: -webkit-box;
- display: -webkit-flex;
- display: flex;
- }
- .flex-item{
- height: 35px;
- line-height: 35px;
- text-align: center;
- -webkit-box-flex: 1;
- -webkit-flex: 1;
- flex: 1
- }
- .flex-item.active{
- color:#0091ff;
- }
- .map_title{
- position:absolute;
- top: 10px;
- bottom: 110px;
- left: 0px;
- right: 0px;
- }
- .map_btn{
- position:absolute;
- top: 150px;
- bottom: 220px;
- left: 0px;
- right: 0px;
- }
- .map_box{
- position:absolute;
- top: 187px;
- bottom: 70px;
- left: 0px;
- right: 0px;
- }
- #navi_map{
- width: 100%;
- height: 100%;
- }
- .text_box{
-
- position:absolute;
- height: 70px;
- bottom: 0px;
- left: 0px;
- right: 0px;
- }
- .text_box .text{
- margin: 15px;
- }
- <view class="text_box" wx:for="{{steps}}" wx:for-item="i" wx:key="j">
- {{i.instruction}}
- </view>
- var amapFile = require('../../libs/amap-wx.js');
- var config = require('../../libs/config.js');
- const app = getApp()
- Page({
- data: {
- steps: {}
- },
- onLoad: function () {
- var that = this;
- var key = config.Config.key;
- var myAmapFun = new amapFile.AMapWX({ key: key });
- myAmapFun.getDrivingRoute({
- origin: app.origin,
- destination: app.destination,
- success: function (data) {
- if (data.paths && data.paths[0] && data.paths[0].steps) {
- that.setData({
- steps: data.paths[0].steps
- });
- }
- },
- fail: function (info) {
- }
- })
- }
- })
- Page{
-
- }
- .text_box{
- margin: 0 15px;
- padding: 15px 0;
- border-bottom: 1px solid #c3c3c3;
- font-size: 13px;
- }
- .text_box .text_item{display:inline-block;line-height: 8px;}