Uniapp代码中显示HTML链接页面

Uniapp代码页面嵌入HTML链接地址 实现路径规划

image

Uniapp代码如下


<template>
  <view>
    <web-view :src="htmlContent"></web-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      htmlContent: 'https://example.com/sample.html' // 或者直接传递HTML代码
    };
  }
}
</script>

Html代码如下



<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>折线应用: 路线规划</title>
</head>
<script charset="utf-8"
    src="https://map.qq.com/api/gljs?v=1.exp&key=SBBBZ-LAW36-RSRSO-ETB5Z-UPYT2-D7F7B"></script>
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=SBBBZ-LAW36-RSRSO-ETB5Z-UPYT2-D7F7B"></script>
<style>

    html,
    body {
        height: 100%;
        margin: 0px;
        padding: 0px;
    }

    #mapContainer {
        width: 100%;
        height: 100%;
    }
</style>

<body onload="initMap()">
    <div id="mapContainer"></div>
    
    <form  id="frm" action="https://www.protradies.com/shop/map/updateguihua" method="" accept-charset="utf-8"  target="myIframe">
        <input type="hidden" name="order_id" id="order_id" value="<?php echo $order_id; ?>" />
        <input type="hidden" name="latitude" id="latitude" value="" />
        <input type="hidden" name="longitude" id="longitude" value="" />
    </form>
    <iframe name="myIframe" style="display:none;"></iframe>
</body>

</html>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js">
</script>
<script >

// 新增代码
 

// END

//注:本例仅为说明流程,不保证严谨

var map;
let nlat = '';
let nlng = '';
let endnlat =<?php echo $latitude; ?>;
let endnlng =<?php echo $longitude; ?>;

let order_id =<?php echo $order_id; ?>; 

 
var ipLocation = new TMap.service.IPLocation(); // 新建一个IP定位类
 var params = {};
 
function initMap(){

 
	
//新增代码 获取当前定位

  ipLocation
    .locate(params)
    .then((result2) => {
      nlat = result2.result.location.lat;
      nlng = result2.result.location.lng;
      
      console.log(result2.result.location.lat);
      console.log(result2.result.location.lng);
      console.log(nlat);
      console.log(nlng);
  
  
  
  //挪进来

        	//初始化地图
        	map = new TMap.Map('mapContainer', {
        		center: new TMap.LatLng(nlat,nlng),//地图显示中心点
        		zoom:14	//缩放级别
        	});
        
        
        	//WebServiceAPI请求URL(驾车路线规划默认会参考实时路况进行计算)
        	var url="https://apis.map.qq.com/ws/direction/v1/driving/"; //请求路径
        	url+="?from=" + nlat + ',' + nlng;  //起点坐标
        	url+="&to=" + endnlat + ',' + endnlng;   //终点坐标
        	url+="&output=jsonp&callback=cb" ;	//指定JSONP回调函数名,本例为cb
        	url+="&key=SBBBZ-LAW36-RSRSO-ETB5Z-UPYT2-D7F7B"; //开发key,可在控制台自助创建
        
           
 
      console.log(nlat);
      console.log(nlng);
          console.log(endnlat);
      console.log(endnlng);
      
        	//发起JSONP请求,获取路线规划结果
        	jsonp_request(url);
        	    //新增代码 更改骑手坐标
        $("#latitude").val(nlat) ; 
        $("#longitude").val(nlng) ;   
        document.getElementById("frm").submit();
  
//   挪进来END
      
    })
    .catch((error) => {
    });
     return
 
    
// END

// 	//初始化地图
// 	map = new TMap.Map('mapContainer', {
// 		center: new TMap.LatLng(nlat,nlng),//地图显示中心点
// 		zoom:14	//缩放级别
// 	});


// 	//WebServiceAPI请求URL(驾车路线规划默认会参考实时路况进行计算)
// 	var url="https://apis.map.qq.com/ws/direction/v1/driving/"; //请求路径
// 	url+="?from=" + nlat + ',' + nlng;  //起点坐标
// 	url+="&to=34.76543,113.78517";  //终点坐标
// 	url+="&output=jsonp&callback=cb" ;	//指定JSONP回调函数名,本例为cb
// 	url+="&key=SBBBZ-LAW36-RSRSO-ETB5Z-UPYT2-D7F7B"; //开发key,可在控制台自助创建

 
// 	//发起JSONP请求,获取路线规划结果
// 	jsonp_request(url);
}

//浏览器调用WebServiceAPI需要通过Jsonp的方式,此处定义了发送JOSNP请求的函数
function jsonp_request(url){
	var script=document.createElement('script');
	script.src=url;
	document.body.appendChild(script);
}

//定义请求回调函数,在此拿到计算得到的路线,并进行绘制
function cb(ret){
    console.log(ret)
    
	var coords = ret.result.routes[0].polyline, pl = [];
	//坐标解压(返回的点串坐标,通过前向差分进行压缩)
	var kr = 1000000;
	for (var i = 2; i < coords.length; i++) {
	  coords[i] = Number(coords[i - 2]) + Number(coords[i]) / kr;
	}
	//将解压后的坐标放入点串数组pl中
	for (var i = 0; i < coords.length; i += 2) {
	  pl.push(new TMap.LatLng(coords[i], coords[i+1]));
	}
	
	display_polyline(pl)//显示路线

	//标记起终点marker
	var marker = new TMap.MultiMarker({ 
		id: 'marker-layer',
		map: map,
		styles: {
			"start": new TMap.MarkerStyle({
				"width": 45,
				"height": 65,
				"anchor": { x: 16, y: 32 },
				// "src": 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/start.png'
				"src": 'https://www.protradies.com/public/map/new.png'
				
			}),
			"end": new TMap.MarkerStyle({
				"width": 45,
				"height": 65,
				"anchor": { x: 16, y: 32 },
				// "src": 'https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/end.png'
				"src": 'https://www.protradies.com/public/map/end.png'
			})
		},
		geometries: [{
			"id": 'start',
			"styleId": 'start',
			"position": new TMap.LatLng(nlat,nlng)
		}, {
			"id": 'end',
			"styleId": 'end',
			"position": new TMap.LatLng(endnlat,endnlng)
		}]
	});

}

function display_polyline(pl){
	//创建 MultiPolyline显示折线
	var polylineLayer = new TMap.MultiPolyline({
		id: 'polyline-layer', //图层唯一标识
		map: map,//绘制到目标地图
		//折线样式定义
		styles: {
			'style_blue': new TMap.PolylineStyle({
				'color': '#3777FF', //线填充色
				'width': 8, //折线宽度
				'borderWidth': 5, //边线宽度
				'borderColor': '#FFF', //边线颜色
				'lineCap': 'round', //线端头方式
			})
		},
		//折线数据定义
		geometries: [
			{
				'id': 'pl_1',//折线唯一标识,删除时使用
				'styleId': 'style_blue',//绑定样式名
				'paths': pl
			}
		]
	});
}

</script>

截图截图

posted @ 2023-10-17 14:50  79524795  阅读(544)  评论(0编辑  收藏  举报