You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
information-system/application/third_party/tour_map/views/welcome.php

198 lines
6.3 KiB
PHP

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<!doctype html>
<html lang="zh-CN">
<head>
<!-- 原始地址://webapi.amap.com/ui/1.0/ui/misc/PathSimplifier/examples/simple-demo.html -->
<!-- <base href="//webapi.amap.com/ui/1.0/ui/misc/PathSimplifier/examples/" /> -->
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
<title>简单路径</title>
<script type="text/javascript" src='//webapi.amap.com/maps?v=1.4.10&key=b91a08b248b7db3e15a28eb3926650de'></script>
<!-- UI组件库 1.0 -->
<script src="//webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
<script type="text/javascript" src="http://info/min/?f=/js/information-system3.min.js,/js/common.js&v=2018022601"></script>
<style>
html,
body,
#container {
width: 100%;
height: 100%;
margin: 0px;
}
.amap-marker-label{
border: 0;
background-color: transparent;
}
.markerInfo {
background: rgba(255, 255, 255, 0.7);
padding: 2px 5px;
border: 1px solid #ccc;
white-space: nowrap;
}
</style>
</head>
<body>
<!--
根据行程生成地图,数据格式:
起点名称,起点坐标,终点名称,终点坐标,交通工具,交通工具备注(如航班号,车次等)
data['start']='Beijing';//出发地
data['start_lng']='116.41667';//经度
data['start_lat']='39.91667';//纬度
data['end']='Xian';
data['end_lng']='108.95000';//经度
data['end_lat']='34.26667';//纬度
data['traffic']='2';//交通类型 2火车 3飞机 4游船 5小车
data['memo']='G87';//备注,显示航班号,里程等等
-->
<?php
$tour=array();
$tour[]=array('start'=>'Beijing','start_lng'=>'116.41667','start_lat'=>'39.91667','end'=>'Xian','end_lng'=>'108.95000','end_lat'=>'34.26667','traffic'=>'2','memo'=>'G87');
$tour[]=array('start'=>'Xian','start_lng'=>'108.95000','start_lat'=>'34.26667','end'=>'Guilin','end_lng'=>'110.290247','end_lat'=>'25.273915','traffic'=>'3','memo'=>'CA1225');
$tour[]=array('start'=>'Guilin','start_lng'=>'110.290247','start_lat'=>'25.273915','end'=>'Longsheng','end_lng'=>'110.648739','end_lat'=>'24.828426','traffic'=>'5','memo'=>'');
$tour[]=array('start'=>'Longsheng','start_lng'=>'110.648739','start_lat'=>'24.828426','end'=>'Guilin','end_lng'=>'110.290247','end_lat'=>'25.273915','traffic'=>'5','memo'=>'');
$tour[]=array('start'=>'Guilin','start_lng'=>'110.290247','start_lat'=>'25.273915','end'=>'Yangshuo','end_lng'=>'110.496593','end_lat'=>'24.778481','traffic'=>'5','memo'=>'');
$tour[]=array('start'=>'Yangshuo','start_lng'=>'110.496593','start_lat'=>'24.778481','end'=>'Guilin','end_lng'=>'110.290247','end_lat'=>'25.273915','traffic'=>'5','memo'=>'');
$tour[]=array('start'=>'Guilin','start_lng'=>'110.290247','start_lat'=>'25.273915','end'=>'Shanghai','end_lng'=>'121.473658','end_lat'=>'31.230378','traffic'=>'3','memo'=>'FM9350');
?>
<div id="container"></div>
<script type="text/javascript">
var tour_data='<?php echo json_encode($tour); ?>';
//创建地图
var map = new AMap.Map('container', {
zoom: 5,
center: [116.397428, 39.90923],
lang: "zh_en"
});
//标记出目的地
$.each(JSON.parse(tour_data), function (index, element) {
var marker_start = new AMap.Marker({
position:[element.start_lng,element.start_lat],
title: element.start,
label:{content:element.start,offset:new AMap.Pixel(15, 15)}
});
var marker_end = new AMap.Marker({
position:[element.end_lng,element.end_lat],
title: element.end,
label:{content:element.end,offset:new AMap.Pixel(15, 15)}
});
map.add([marker_start,marker_end]);
});
//画轨迹
AMapUI.load(['ui/misc/PathSimplifier', 'lib/$'], function(PathSimplifier, $) {
if (!PathSimplifier.supportCanvas) {
alert('当前环境不支持 Canvas');
return;
}
var pathSimplifierIns = new PathSimplifier({
zIndex: 100,
//autoSetFitView:true,//自动调整地图视野以适合全部轨迹
map: map, //所属的地图实例
getPath: function(pathData, pathIndex) {
return pathData.path;
},
renderOptions: {
renderAllPointsIfNumberBelow: 100 //绘制路线节点,如不需要可设置为-1
}
});
window.pathSimplifierIns = pathSimplifierIns;
var path_data=new Array();
$.each(JSON.parse(tour_data), function (index, element) {
path_data.push({'name':index,'path':PathSimplifier.getGeodesicPath([element.start_lng, element.start_lat], [element.end_lng, element.end_lat], 30)});
});
//设置数据
pathSimplifierIns.setData(path_data);
$.each(JSON.parse(tour_data), function (index, element) {
//交通工具 plane car train ship
var tour_traffic='';
var tour_speed=500000;//巡航速度,单位千米/小时
var tour_memo=element.memo;
//2火车 3飞机 4游船 5小车
switch(element.traffic){
case '2':
tour_traffic='/css/images/train.png';
tour_speed=50000;
break;
case '3':
tour_traffic='/css/images/plane.png';
tour_speed=500000;
break;
case '4':
tour_traffic='/css/images/ship.png';
tour_speed=50000;
break;
case '5':
tour_traffic='/css/images/car.png';
tour_speed=5000;
break;
default:
tour_traffic='/css/images/car.png';
tour_speed=50000;
}
//创建一个巡航器
var navigator = pathSimplifierIns.createPathNavigator(index, {
loop: true, //循环播放
speed: tour_speed, //巡航速度,单位千米/小时
pathNavigatorStyle: {
width: 32,
height: 32,
//使用图片
content: PathSimplifier.Render.Canvas.getImageContent(tour_traffic, onload, onerror),
strokeStyle: null,
fillStyle: null,
//经过路径的样式
pathLinePassedStyle: {
lineWidth: 6,
//strokeStyle: 'black',
dirArrowStyle: {
stepSpace: 15,
strokeStyle: 'red'
}
}
}
});
if(tour_memo!==''){
var $markerContent = $('<div class="markerInfo"></div>');
$markerContent.html(tour_memo);
navigator.marker = new AMap.Marker({
offset: new AMap.Pixel(15, -10),
content: $markerContent.get(0),
map: map
});
navigator.on('move', function() {
navigator.marker.setPosition(navigator.getPosition());
});
}
navigator.start();
});
});
</script>
</body>
</html>