联动这个概念怎么理解呢,就是你动,不需要手动操作,我也跟着动。
单向联动就是你动,我跟着动,或者是我动,你跟着我动。
双向联动,就是你动,我跟着动,我动,你也跟着我动。万一有一个天雷撞地虎的瞬间,你跟着我动的同时,我也要跟着你动,那怎么办呢?那就随缘吧,总会有一个打胜了的。
联动的核心在于谁主动,谁被动,其次还有动的频率(咋越来越像小黄文了。。。),还有位置点。
换成人话就是
1.主动对象的坐标点的位置position/location,方向角度 heading pitch roll,
2.以及刷新频率,采用自带的刷新机制,还是用定时器不断的去获取这几个参数,
3.最后传递给被动的对象,调整被动对象的位置和角度,从而实现联动的。
既然涉及位置和角度,如果两个对象的思维不在同一个位置频道,你说着你在东边,他理解成西边,俩人的世界在外人看起来就不是一个东西了。要么把俩对象所处的世界统一了,你说的对应我这边的相同的点,要么就是俩人各处一个世界,通过一个中间的东西给转换了,从而达成一致。
这里涉及的就是坐标的概念。三维场景,此处以cesium等为例,坐标系为WGS84,而街景不同坐标不同,GoogleStreetView 采用的是WGS84,同在一片天地,彼此默契很多。唯一不方便的就是网络受限,并且默认的还需要申请账号试用一年或者付费,否则能用的就是像被X光射线打了的街景,极度影响用户体验。
街景主动,三维场景跟着动的示例如下
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Street View Controls</title>
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var panorama;
function initPano() {
// Note: constructed panorama