Commit ac1e13d0 authored by fengruiyu's avatar fengruiyu

Merge branch 'dev_1.0.1' of http://gitlab.mints-id.com/android/android_street into fry_dev

 Conflicts:
	app/src/main/assets/web/common/ap.js
	app/src/main/assets/web/common/zsc.js
	app/src/main/assets/web/zsmap.html
	app/src/main/assets/web/zsmap.js
parents f583e484 6c6bc60b
// var initZsMap = function (data) {
// console.log(data)
// }
var isWindowLoad = false;//页面加载
var BridgeIsLoad = false;//框架加载
//[h(街道图)、m(街道图)、p(街道图)、r(街道图)、s(影像无注记)、y(影像含注记)、t(地形图)]
function tryAllIsOk() {
//console.log("tryAllIsOk", "isWindowLoad", isWindowLoad, "BridgeIsLoad", BridgeIsLoad)
if (isWindowLoad) {
try {
doAppFun("allIsOk");
} catch (e) {
// console.log('allisOk', e)
// alert("app未接受开始自动跳转" + e)
setTimeout(function () {
doAppFun("allIsOk");
}, 1500);
}
}
}
function toVurl(a, innerData) {
var data = JSON.stringify(innerData);
if (a == 'b') {
try {
doAppFun("toBVr", data);
} catch (e) {
console.log('tobvr', data)
// alert("app未接受开始自动跳转" + e)
}
}
if (a == 'g') {
try {
doAppFun("toVr", data);
} catch (e) {
// console.log('toVr', data)
//alert("app未接受开始自动跳转" + e)
}
}
}
function toVurl(a, innerData) {
var data = JSON.stringify(innerData);
if (a == 'b') {
try {
doAppFun("toBVr", data);
} catch (e) {
console.log('tobvr', data)
// alert("app未接受开始自动跳转" + e)
}
}
if (a == 'g') {
try {
doAppFun("toVr", data);
} catch (e) {
// console.log('toVr', data)
//alert("app未接受开始自动跳转" + e)
}
}
}
function allIsOk(a, data) {
//console.log("innerAllIsOk")
isWindowLoad = true;
tryAllIsOk();
// setTimeout(function(){
//
// },1000);
}
function doAppFun(funstr, params) {
//参数一:调用java中的方法 submitFromWeb是方法名,必须和Android中注册时候的方法名称保持一致
//参数二:返回给Android端的数据,可以为字符串,json等信息
//参数三:js接收到Android传递过来的数据之后的相应处理逻辑
window.WebViewJavascriptBridge.callHandler(
funstr
, params
, function (responseData) {
// console.log(responseData)
}
);
}
function centerChanged() {
try {
doAppFun("centerChanged");
} catch (e) {
// console.log("tips", msg)
//alert("app未弹框==>" + msg + e)
}
}
function tips(msg) {
try {
doAppFun("tips", msg);
} catch (e) {
//console.log("tips", msg)
//alert("app未弹框==>" + msg + e)
}
}
function openScenicsFrame(params) {
try {
doAppFun("openScenicsFrame", params);
} catch (e) {
}
}
//JS注册事件监听
function connectWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) {
callback(WebViewJavascriptBridge)
} else {
document.addEventListener(
'WebViewJavascriptBridgeReady'
, function () {
callback(WebViewJavascriptBridge)
BridgeIsLoad = true;
tryAllIsOk()
},
false
);
}
}
function getVmMsg(msg) {
return {
event: msg,
showVrButton: vm.showVrButton,
showScenics: vm.showScenics,
mapType: showScenics.mapType,
}
}
//注册回调函数,第一次连接时调用 初始化函数
connectWebViewJavascriptBridge(function (bridge) {
//初始化
bridge.init(function (message, responseCallback) {
var data = {
'Javascript Responds': 'Wee!'
};
responseCallback(data);
});
//Android调用js方法:functionInJs方法名称需要保持一致 ,并返回给Android通知
bridge.registerHandler("initZsMap", function (data, responseCallback) {
data = JSON.parse(data)
vm.initZsMap(data);
responseCallback(getVmMsg("suc:initZsMap"));
});
bridge.registerHandler("addZoom", function (data, responseCallback) {
vm.addZoom();
responseCallback(getVmMsg("suc:addZoom"));
});
bridge.registerHandler("reduceZoom", function (data, responseCallback) {
vm.reduceZoom();
responseCallback(getVmMsg("suc:reduceZoom"));
});
bridge.registerHandler("changeVrButton", function (data, responseCallback) {
data = JSON.parse(data)
vm.showVrButton = data.show == "1";
responseCallback(getVmMsg("suc:changeVrButton"));
});
bridge.registerHandler("showScenics", function (data, responseCallback) {
data = JSON.parse(data)
vm.doShowScenics(data.list);
responseCallback(getVmMsg("suc:showScenics"));
});
bridge.registerHandler("closeScenics", function (data, responseCallback) {
vm.doCloseScenics();
responseCallback(getVmMsg("suc:closeScenics"));
});
bridge.registerHandler("changeMapType", function (data, responseCallback) {
data = JSON.parse(data)
G_MAP.setMapTypeId(data.type);
responseCallback(getVmMsg("suc:changeMapType"));
});
})
var gtype = 's';
function zsChangeUrl(d) {
var sub = d.split("?")[1];
//console.log(sub)
if (G_MAP.getMapTypeId() == 'hybrid' ) {
gtype = 'y'
}
if(G_MAP.getMapTypeId() == 'satellite'){
gtype = 's'
}
if (G_MAP.getMapTypeId() == 'roadmap') {
gtype = 'r'
}
if (G_MAP.getMapTypeId() == 'terrain') {
gtype = 't'
}
var url = 'http://r.'+getParam("base")+"/" + getParam("u") + '/maps/vt?lyrs=' + gtype + '&gl=cn&' + sub.replace("hl=zh-CN", "").replace("v=", "");
//console.log(url)
return url;
}
function getZsKey() {
return getParam("gk")==null?"":getParam("gk");
}
function getRequestUrl(a) {
return "https://maps."+getParam("base")+"/" + getParam("u") + ""
}
function getVrUrls() {
return [
"http://lh3.ggpht."+getParam("base")+"/" + getParam("u") + "/",
"http://lh4.ggpht."+getParam("base")+"/" + getParam("u") + "/",
"http://lh5.ggpht."+getParam("base")+"/" + getParam("u") + "/",
"http://lh6.ggpht."+getParam("base")+"/" + getParam("u") + "/"
]
};
function getVrUrls0(a) {
if ( getParam("ut") =='uz')
return [
"http://geo0.ggpht."+getParam("base")+"/" + getParam("u") + "/cbk",
"http://geo1.ggpht."+getParam("base")+"/" + getParam("u") + "/cbk",
"http://geo2.ggpht."+getParam("base")+"/" + getParam("u") + "/cbk",
"http://geo3.ggpht."+getParam("base")+"/" + getParam("u") + "/cbk"
]
var date = Date.parse(new Date()) / 1000
console.log("kkkk")
return ['https://streetscape.xinzhi.space/' + date + '/' + md5(date).toUpperCase()+"/cbk"]
}
function getMb1U() {
return [
"http://khms0."+getParam("base")+"/" + getParam("u") + "/kh?v=904\u0026hl=zh-CN\u0026",
"http://khms1."+getParam("base")+"/" + getParam("u") + "/kh?v=904\u0026hl=zh-CN\u0026"
]
}
function getMb2U() {
return [
"http://khms0."+getParam("base")+"/" + getParam("u") + "/kh?v=130\u0026hl=zh-CN\u0026",
"http://khms1."+getParam("base")+"/" + getParam("u") + "/kh?v=130\u0026hl=zh-CN\u0026"
]
}
///
function wordToHex(lValue) {
let WordToHexValue = "",
WordToHexValueTemp = "",
lByte,
lCount;
for (lCount = 0; lCount <= 3; lCount++) {
lByte = lValue >>> lCount * 8 & 255;
WordToHexValueTemp = "0" + lByte.toString(16);
WordToHexValue = WordToHexValue + WordToHexValueTemp.substr(WordToHexValueTemp.length - 2, 2);
}
return WordToHexValue;
};
function rotateLeft(lValue, iShiftBits) {
return lValue << iShiftBits | lValue >>> 32 - iShiftBits;
};
function addUnsigned(lX, lY) {
let lX4, lY4, lX8, lY8, lResult;
lX8 = lX & 0x80000000;
lY8 = lY & 0x80000000;
lX4 = lX & 0x40000000;
lY4 = lY & 0x40000000;
lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);
if (lX4 & lY4) return lResult ^ 0x80000000 ^ lX8 ^ lY8;
if (lX4 | lY4) {
if (lResult & 0x40000000) return lResult ^ 0xC0000000 ^ lX8 ^ lY8; else return lResult ^ 0x40000000 ^ lX8 ^ lY8;
} else {
return lResult ^ lX8 ^ lY8;
}
};
function F(x, y, z) {
return x & y | ~x & z;
};
function G(x, y, z) {
return x & z | y & ~z;
};
function H(x, y, z) {
return x ^ y ^ z;
};
function I(x, y, z) {
return y ^ (x | ~z);
};
function FF(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(F(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
function GG(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(G(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
function HH(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(H(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
function II(a, b, c, d, x, s, ac) {
a = addUnsigned(a, addUnsigned(addUnsigned(I(b, c, d), x), ac));
return addUnsigned(rotateLeft(a, s), b);
};
function convertToWordArray(string) {
let lWordCount;
let lMessageLength = string.length;
let lNumberOfWordsTempOne = lMessageLength + 8;
let lNumberOfWordsTempTwo = (lNumberOfWordsTempOne - lNumberOfWordsTempOne % 64) / 64;
let lNumberOfWords = (lNumberOfWordsTempTwo + 1) * 16;
let lWordArray = Array(lNumberOfWords - 1);
let lBytePosition = 0;
let lByteCount = 0;
while (lByteCount < lMessageLength) {
lWordCount = (lByteCount - lByteCount % 4) / 4;
lBytePosition = lByteCount % 4 * 8;
lWordArray[lWordCount] = lWordArray[lWordCount] | string.charCodeAt(lByteCount) << lBytePosition;
lByteCount++;
}
lWordCount = (lByteCount - lByteCount % 4) / 4;
lBytePosition = lByteCount % 4 * 8;
lWordArray[lWordCount] = lWordArray[lWordCount] | 0x80 << lBytePosition;
lWordArray[lNumberOfWords - 2] = lMessageLength << 3;
lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;
return lWordArray;
};
function md5(string) {
let str = string + 'EfAvGE#aR@bC@VvdC223$xC23sWXR$vf'
let x = Array();
let k, AA, BB, CC, DD, a, b, c, d;
let S11 = 7,
S12 = 12,
S13 = 17,
S14 = 22;
let S21 = 5,
S22 = 9,
S23 = 14,
S24 = 20;
let S31 = 4,
S32 = 11,
S33 = 16,
S34 = 23;
let S41 = 6,
S42 = 10,
S43 = 15,
S44 = 21;
str = uTF8Encode(str);
x = convertToWordArray(str);
a = 0x67452301;
b = 0xEFCDAB89;
c = 0x98BADCFE;
d = 0x10325476;
for (k = 0; k < x.length; k += 16) {
AA = a;
BB = b;
CC = c;
DD = d;
a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);
d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);
c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);
b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);
a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);
d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);
c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);
b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);
a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);
d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);
c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);
b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);
a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);
d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);
c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);
b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);
a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);
d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);
c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);
b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);
a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);
d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);
c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);
b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);
a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);
d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);
c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);
b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);
a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);
d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);
c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);
b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);
a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);
d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);
c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);
b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);
a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);
d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);
c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);
b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);
a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);
d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);
c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);
b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);
a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);
d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);
c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);
b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);
a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);
d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);
c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);
b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);
a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);
d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);
c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);
b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);
a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);
d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);
c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);
b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);
a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);
d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);
c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);
b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);
a = addUnsigned(a, AA);
b = addUnsigned(b, BB);
c = addUnsigned(c, CC);
d = addUnsigned(d, DD);
}
let tempValue = wordToHex(a) + wordToHex(b) + wordToHex(c) + wordToHex(d);
return tempValue.toLowerCase();
}
function uTF8Encode(string) {
string = string.replace(/\x0d\x0a/g, "\x0a");
let output = "";
for (let n = 0; n < string.length; n++) {
let c = string.charCodeAt(n);
if (c < 128) {
output += String.fromCharCode(c);
} else if (c > 127 && c < 2048) {
output += String.fromCharCode(c >> 6 | 192);
output += String.fromCharCode(c & 63 | 128);
} else {
output += String.fromCharCode(c >> 12 | 224);
output += String.fromCharCode(c >> 6 & 63 | 128);
output += String.fromCharCode(c & 63 | 128);
}
}
return output;
};
\ No newline at end of file
<!DOCTYPE html>
<!-- saved from url=(0078)file:///Users/wmh/workspace1/worldMap/zs-api/src/main/resources/h5/map/ag.html -->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1; ">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link type="text/css" rel="stylesheet" href="./zsmap_files/css">
<link type="text/css" rel="stylesheet" href="./zsmap_files/css(1)">
<title></title>
<script src="./zsmap_files/polyfill.min.js"></script>
<style>
html,
body {
height: 100%;
margin: 0;
padding: 0;
}
#map {
width: 100%;
height: 100%;
position: relative;
}
.d1 {
width: 70px;
height: 90px;
/*background: #00e5ffff;*/
position: fixed;
top: 50%;
margin-top: -90px;
left: 50%;
margin-left: -35px;
}
#bmap {
width: 100%;
height: 100%;
overflow: hidden;
margin: 0;
position: absolute;
font-family: "微软雅黑";
}
.anchorBL,
a {
display: none !important;
}
#map .gmnoprint {
display: none !important;
}
.zsmaker {
margin-top: 35px;
}
.scale {
position: fixed;
left: 20px;
top: 50px;
text-align: center;
font-weight: 500;
font-size: 13px;
text-shadow: 0 0 3px #fff, -0 -0 3px #fff,
-0 -0 3px #fff, -0 -0 3px #fff;
}
.scale-size,
.left-side,
.right-side {
float: left;
}
.left-side,
.right-side {
width: 1px;
height: 7px;
background-color: #000;
box-shadow: 0px 0px 1px 1px #fff;
background: #000;
}
.scale-size {
margin: 5px 1px 0 1.5px;
height: 1px;
box-shadow: 0px 0px 1px 2px #fff;
background: #000;
}
#__vconsole .vc-switch {
display: fixed;
top: 20px;
height: 20px;
}
#map .gmnoprint {
display: none !important;
}
[v-cloak] {display: none;}
</style>
</head>
<body>
<div id="map"></div>
<div id="maps" style="" v-cloak>
<div class="scale">
<div>
{{mapScale}}
</div>
<div id="scale">
<div class="left-side"></div>
<div class="scale-size" id="scaleSize" :style="'width:'+pxValue+'px'"></div>
<div class="right-side"></div>
</div>
</div>
<img src="./common/icon.jpg" @click="vrs()" v-show="showVrButton" class="d1" id="im">
</div>
</body>
<script type="text/javascript" charset="UTF-8" src="./common/vue.min.js"></script>
<script type="text/javascript" charset="UTF-8" src="./common/latlng.js"></script>
<script type="text/javascript" charset="UTF-8" src="./common/url.js"></script>
<script type="text/javascript" charset="UTF-8" src="./common/zsc.js"></script>
<script type="text/javascript" charset="UTF-8" src="./common/gmap.js"></script>
<script type="text/javascript" charset="UTF-8" src="./common/bmap.js"></script>
<script type="text/javascript" charset="UTF-8" src="./zsmap.js"></script>
<script>
document.write('<script type="text/javascript"' +
' src="https://api.map.baidu.com/api?v=3.0&ak=' + getParam("bk") + '"><\/script>');
</script>
<script src="./common/jquery.min.js"></script>
<script src="./common/baidu.js" async=""></script>
<script type="text/javascript" charset="UTF-8" src="./common/ap.js" async=""></script>
<script type="text/javascript" charset="UTF-8" src="./zsmap_files/common.js"></script>
<script type="text/javascript" charset="UTF-8" src="./zsmap_files/util.js"></script>
<script type="text/javascript" charset="UTF-8" src="./zsmap_files/map.js"></script>
<script type="text/javascript" charset="UTF-8" src="./zsmap_files/onion.js"></script>
<script type="text/javascript" charset="UTF-8" src="./zsmap_files/controls.js"></script>
<script src="./zsmap_files/js" async=""></script>
<!--<script src="vconsole.min.js"></script>-->
<!--<script>-->
<!-- var vConsole = new VConsole();-->
<!--</script>-->
</html>
//var arr =[120.31, 31.58]
// var index = th.mts.indexOf(G_MAP.getMapTypeId());
// if (index == 3)
// index = -1;
//
// index = index + 1;
// console.log(index)
// G_MAP.setMapTypeId(th.mts[index]);
/**
* HYBRID 此地图类型在卫星图像上显示主要街道的透明图层。
ROADMAP 此地图类型显示普通街道地图。
SATELLITE 此地图类型显示卫星图像。
TERRAIN 此地图类型显示具有地形和植被等物理特征的地图。
*/
// G_MAP.addListener("center_changed", () => {
// console.log("center_changed", {lat: G_MAP.getCenter().lat(), lng: G_MAP.getCenter().lng()})
// });
let G_MAP; //gmap
function GF_addZoom() {
var zoom = G_MAP.getZoom();
if (zoom == 20) {
tip("已放大至最大级别")
return;
}
zoom += 1;
G_MAP.setZoom(zoom);
}
function GF_reduceZoom() {
var zoom = G_MAP.getZoom();
if (zoom == 0) {
tip("已缩放至最小级别")
return;
}
zoom -= 1;
G_MAP.setZoom(zoom);
}
var vm = new Vue({
el: '#maps',
data: {
showVrButton: true,
showScenics: false,
mapScale: "",
G_MAPINITED: false, //initStatus
canclick: true,
show: false,
//[h(街道图)、m(街道图)、p(街道图)、r(街道图)、s(影像无注记)、y(影像含注记)、t(地形图)]
types: ['h', 'm', 'p', 'r', 's', 'y', 't'],
mts: ['hybrid', 'roadmap', 'satellite', 'terrain'],
zoomLevel: [],
mapType: 'hybrid',
scenics: [],
markes: [],
pxValue: 50,
gdcenter:null
},
created: function () {
// console.log('llll')
},
methods: {
vrs: function () {
var th = this;
console.log(th.canclick)
if (th.canclick) {
th.canclick = false;
setTimeout(function () {
th.canclick = true;
}, 2000);
} else {
return;
}
var point;
gpoint = {
lat: G_MAP.getCenter().lat(),
lng: G_MAP.getCenter().lng()
}
toBPoint(gpoint, function (bpoint) {
getLocation(bpoint, function (res) {
if (res.c) {
console.log("猜测为国内,准备使用百度")
bvr(bpoint)
} else {
console.log("猜测为国外,准备使用谷歌")
tosh(gpoint);
}
});
})
},
doCloseScenics: function () {
vm.showScenics = false;
console.log(vm.markes)
for (i in vm.markes) {
vm.markes[i].setMap(null);
}
// vm.markes = [];
// vm.scenics = [];
},
doShowScenics: function (list) {
this.showScenics = true;
if (vm.markes.length == 0) {
this.scenics = list;
this.makeSenics();
} else {
for (i in vm.markes) {
vm.markes[i].setMap(G_MAP);
}
}
// G_MAP.setZoom(10)
},
makeSenics: function () {
for (i in vm.scenics) {
const image = "./common/sm.png";
var msg = vm.scenics[i];
var position = {
lat: parseFloat(msg.lat),
lng: parseFloat(msg.lng)
}
const marker = new google.maps.Marker({
position: position,
icon: image,//msg.img,
animation: google.maps.Animation.DROP,
optimized: false,
map: G_MAP,
label: {
text: msg.name,
className: "zsmaker",
// fontFamily: "Material Icons",
color: "#ffffff",
fontSize: "13px",
fontWeight: '500'
},
title: msg.bvid,
})
marker.addListener("click", (ss) => {
params = vm.getSeLabel(marker.getTitle());
if (params != null) {
console.log(params);
openScenicsFrame(params);
}
});
vm.markes.push(marker);
}
},
getSeLabel: function (bvid) {
for (i in this.scenics) {
if (this.scenics[i].bvid == bvid)
return this.scenics[i];
}
return null;
},
addZoom: function () {
GF_addZoom();
},
reduceZoom: function () {
GF_reduceZoom();
},
initZsMap: function (inMsg) {
var th = this;
if (inMsg.lat == 0 || inMsg.lng == 0 ||
inMsg.lat == '0' || inMsg.lng == '0') {
inMsg = {
"lat": 39.90960456049752,
"lng": 116.3972282409668,
"inner": 0
};
}
var point = {
lat: parseFloat(inMsg.lat),
lng: parseFloat(inMsg.lng)
};
if (inMsg.inner == null) {
toGPoint(point, function (r) {
console.log("定位 》》》toGooglePoint", r)
th.G_initMap(r, 16);
})
} else {
if (inMsg.inner == 0 || inMsg == '0') {
toGPoint(point, function (r) {
console.log("国内 》》》toGooglePoint", r)
th.G_initMap(r, 16);
})
} else {
console.log("国外 》》》toGooglePoint", point)
th.G_initMap(point, 16);
}
}
},
G_initMap: function (point, zoomLevel) {
if (zoomLevel == undefined || zoomLevel == null)
zoomLevel = 15;
var th = this;
if (th.G_MAPINITED == false) { //第一次初始化
th.G_MAPINITED = true;
initMap = function () {
G_MAP = new google.maps.Map(document.getElementById("map"), {
zoom: zoomLevel,
// RotateControlOptions :RIGHT_CENTER,
center: point,
mapTypeId: vm.mapType, //"satellite",//hybrid,
zoomControl: false,
// maxZoom:21,
// minZoom:2,
mapTypeControl: false,
scaleControl: false,
streetViewControl: false,
rotateControl: false,
fullscreenControl: false,
clickableIcons: false,
// gestureHandling:"none",
// gestureHandling: "greedy",
// scaleControlOptions: {
// position: google.maps.ControlPosition.LEFT_CENTER,
// },
// scaleControlOptions:true,
});
G_MAP.addListener('idle', function () {
var lat = G_MAP.getCenter().lat();
var zoomLevel = G_MAP.getZoom();
vm.mapScale = getScaleInfos(zoomLevel, lat, vm);
});
G_MAP.addListener('zoom_changed', function () {
console.log("拖动",vm.gdcenter)
if(vm.gdcenter!=null){
console.log("++++>")
// G_MAP.panTo(vm.gdcenter) //第二次初始化
}
});
G_MAP.addListener("dragend", () => {
centerChanged();
});
document.addEventListener("touchstart", function (e) {
console.log(e.touches);
if (e.touches.length > 1) {
vm.gdcenter=
{
lat:G_MAP.getCenter().lat(),
lng:G_MAP.getCenter().lng()
};
console.log("两指",vm.gdcenter)
} else {
vm.gdcenter=null;
console.log("一指",vm.gdcenter)
}
}, false);
// G_MAP.addListener('zoom_changed', () => {
// console.log(G_MAP.getCenter().lat())
// });
}
window.google.maps.Load && window.google.maps.Load(G_ZSYDA);
} else {
G_MAP.panTo(point) //第二次初始化
G_MAP.setZoom(zoomLevel)
}
},
}
})
window.onload = function () {
allIsOk();
// init();
}
function init() {
vm.initZsMap({"lng": 0, "lat": 0})
setTimeout(function () {
vm.doShowScenics([
{
"name": "故宫",
"img": "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_camera/img/ui/homepage/1628578695759.jpeg",
"desc": "北京故宫呀",
"lng": "116.313355",
"lat": "39.983856",
"blng": "116.32222419295384",
"blat": "39.99602192441332",
"bvid": "01002200001309200841046795L"
}
]);
}, 3000)
setTimeout(function () {
vm.showVrButton = true;
}, 5000)
setTimeout(function () {
vm.showVrButton = false;
}, 7000)
setTimeout(function () {
vm.showVrButton = true;
}, 8000)
setTimeout(function () {
vm.doCloseScenics();
}, 6000)
setTimeout(function () {
G_MAP.setMapTypeId('roadmap');
}, 7000)
setTimeout(function () {
G_MAP.setMapTypeId('terrain');
}, 11000)
setTimeout(function () {
G_MAP.setMapTypeId('satellite');
}, 13000)
setTimeout(function () {
G_MAP.setMapTypeId('hybrid');
}, 15000)
setTimeout(function () {
vm.doShowScenics([
{
"name": "故宫",
"img": "https://mints-pkg.oss-cn-beijing.aliyuncs.com/pkg_camera/img/ui/homepage/1628578695759.jpeg",
"desc": "北京故宫呀",
"lng": "116.313355",
"lat": "39.983856",
"blng": "116.32222419295384",
"blat": "39.99602192441332",
"bvid": "01002200001309200841046795L"
}
]);
}, 9000)
}
\ No newline at end of file
......@@ -43,7 +43,7 @@ class ItemHotViewAdapter(val context: Context, val dialog: BottomSheetDialog?, v
//设置点击事件
RxUtils.onMultiClick(holder.itemView) {
//判断是否当前是否是会员,
if (!UserManager.INSTANCE.userIsLogin()) {
if (!UserManager.INSTANCE.userIsLogin()&&!UserManager.INSTANCE.getVipFlag()) {
dialog?.dismiss()
//否-跳转到开通vip界面
startActivity(OpenvipActivity::class.java)
......
......@@ -220,7 +220,9 @@ class GoogleMapFragment() : BaseFragment<ActivityGoogleMapBinding, HomeViewModel
override fun onItemClick(position: Int, itemBean: HotViewBean.Dataslist?) {
itemBean?.apply {
//todo 冯瑞雨 修改toDouble
//点击调转页面
viewModel.authorized(bvid,name)
//更新当前坐标(控制js页面做回调)
binding.webview.callHandler("initZsMap"
,Gson().toJson(GPS(lat?.toDouble()?:0.0,
lng?.toDouble()?:0.0,0)) ) {
......
......@@ -26,6 +26,7 @@ import com.mints.street.R
import com.mints.street.bean.MapBean
import com.mints.street.bean.PositioningBean
import com.mints.street.databinding.FragmentHomeBinding
import com.mints.street.main.my.OpenvipActivity
import com.mints.street.manager.UmengManager
import com.mints.street.widget.ScrollLayout
import com.mints.street.widget.dialog.DialogMapStyle
......@@ -127,15 +128,11 @@ class HomeFragment() : BaseFragment<FragmentHomeBinding, HomeViewModel>(), Senso
false
)
}
//地图样式
RxUtils.onMultiClick(binding.imageMapChangeIcon) {
// context?.apply {
// if (dialogMapStyle == null) {
// dialogMapStyle = DialogMapStyle(this)
// }
// if (this@HomeFragment.fragmentManager != null) {
// dialogMapStyle?.show(this@HomeFragment.fragmentManager!!, "dialogMapStyle")
// }
// }
if (!com.mints.street.manager.UserManager.INSTANCE.userIsLogin()&&!com.mints.street.manager.UserManager.INSTANCE.getVipFlag()){
startActivity(OpenvipActivity::class.java)
}
}
//点击热门景点
......
......@@ -221,6 +221,9 @@ class HomeViewModel(application: Application) : BaseViewModel(application) {
)
}
/**
* 跳转百度坐标页面
*/
fun authorized(bvid:String?,name:String?) {
ApiModel.authorized().safeSubscribe(object
: HttpSubscribeImpl<BaseResponse<AuthorizedBean>>(
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
android:orientation="vertical">
<com.github.lzyzsd.jsbridge.BridgeWebView
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="40dp"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="0dp"
/>
android:layout_marginBottom="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:visibility="gone"
android:id="@+id/image_map_history"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="15dp"
android:src="@mipmap/map_history_icon"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
......@@ -36,8 +34,8 @@
android:id="@+id/image_location_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginBottom="220dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="220dp"
android:src="@mipmap/location_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
......@@ -46,18 +44,18 @@
android:id="@+id/image_map_change_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginBottom="220dp"
android:layout_marginTop="40dp"
android:layout_marginBottom="220dp"
android:src="@mipmap/map_change_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ly_hotview"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="3dp"
android:layout_marginTop="10dp"
android:padding="3dp"
android:src="@mipmap/icon_hotview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_map_change_icon" />
......@@ -66,8 +64,8 @@
android:id="@+id/map_a_d"
android:layout_width="36dp"
android:layout_height="73dp"
android:layout_marginBottom="10dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="10dp"
android:background="@drawable/shape_gold_card"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/image_location_icon"
......@@ -81,11 +79,12 @@
android:layout_height="36dp"
android:padding="10dp"
android:src="@mipmap/scale_add_icon" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginEnd="12dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@color/color_333" />
......@@ -97,7 +96,6 @@
android:src="@mipmap/scale_shrink_icon" />
</LinearLayout>
<com.mints.street.widget.ScrollLayout
......@@ -114,8 +112,8 @@
android:layout_height="wrap_content"
android:background="@drawable/cursor_bg"
android:gravity="center_horizontal"
android:paddingBottom="10dp"
android:orientation="vertical">
android:orientation="vertical"
android:paddingBottom="10dp">
<ImageView
android:id="@+id/image_under"
......@@ -131,53 +129,53 @@
android:id="@+id/stb_bg_search"
android:layout_width="match_parent"
android:layout_height="37dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_under"
app:stv_corner="20dp"
app:stv_solid="#F5F9FA"
app:stv_stroke_color="#ffe1e1e1"
app:stv_stroke_width="1dp"
/>
app:stv_stroke_width="1dp" />
<ImageView
android:layout_marginStart="16dp"
android:id="@+id/im_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:src="@mipmap/search_icon"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toStartOf="@id/stb_bg_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
<View
android:background="#A1A3AF"
android:layout_width="0.5dp"
android:layout_height="14dp"
android:layout_marginStart="16dp"
android:background="#A1A3AF"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
<TextView
android:layout_marginStart="27dp"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="27dp"
android:text="搜索境内、境外地址"
android:textColor="#A2A4B1"
android:textSize="14sp" />
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="@id/stb_bg_search"
app:layout_constraintStart_toEndOf="@id/im_search"
app:layout_constraintTop_toTopOf="@id/stb_bg_search" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.mints.street.widget.ScrollRecyclerView
android:background="@color/white"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:itemBinding="@{viewModel.addressItemBinding}"
app:items="@{viewModel.addressList}"
tools:listitem="@layout/item_home_button">
......
......@@ -11,108 +11,18 @@
android:id="@+id/bmapView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="80dp"
android:layout_marginBottom="40dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_click"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:layout_marginBottom="40dp"
android:src="@mipmap/positioning_icon"
app:layout_constraintBottom_toBottomOf="@id/bmapView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/bmapView" />
<ImageView
android:id="@+id/image_map_history"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="25dp"
android:src="@mipmap/map_history_icon"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_map_change_icon" />
<ImageView
android:id="@+id/ly_hotview"
android:layout_width="40dp"
android:layout_height="40dp"
android:padding="3dp"
android:layout_marginTop="10dp"
android:src="@mipmap/icon_hotview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_map_change_icon" />
<ImageView
android:id="@+id/image_location_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="220dp"
android:src="@mipmap/location_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/image_map_change_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginBottom="220dp"
android:layout_marginTop="35dp"
android:src="@mipmap/map_change_icon"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
/>
<LinearLayout
android:id="@+id/map_a_d"
android:layout_width="36dp"
android:layout_height="73dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="10dp"
android:background="@drawable/shape_gold_card"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/image_location_icon"
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:id="@+id/image_in"
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="10dp"
android:src="@mipmap/scale_add_icon" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@color/color_333" />
<ImageView
android:id="@+id/image_out"
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="10dp"
android:src="@mipmap/scale_shrink_icon" />
</LinearLayout>
<com.mints.street.widget.ScrollLayout
android:id="@+id/scroll_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00000000"
android:fillViewport="true"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="0dp">
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
......@@ -192,6 +102,94 @@
</com.mints.street.widget.ScrollLayout>
<ImageView
android:id="@+id/iv_click"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerInParent="true"
android:layout_marginBottom="40dp"
android:src="@mipmap/positioning_icon"
app:layout_constraintBottom_toBottomOf="@id/bmapView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/bmapView" />
<ImageView
android:id="@+id/image_map_history"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="25dp"
android:src="@mipmap/map_history_icon"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_map_change_icon" />
<ImageView
android:id="@+id/ly_hotview"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="10dp"
android:padding="3dp"
android:src="@mipmap/icon_hotview"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/image_map_change_icon" />
<ImageView
android:id="@+id/image_location_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="15dp"
android:layout_marginBottom="220dp"
android:src="@mipmap/location_icon"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<ImageView
android:id="@+id/image_map_change_icon"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginTop="35dp"
android:layout_marginBottom="220dp"
android:src="@mipmap/map_change_icon"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<LinearLayout
android:id="@+id/map_a_d"
android:layout_width="36dp"
android:layout_height="73dp"
android:layout_marginEnd="2dp"
android:layout_marginBottom="10dp"
android:background="@drawable/shape_gold_card"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/image_location_icon"
app:layout_constraintEnd_toEndOf="parent">
<ImageView
android:id="@+id/image_in"
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="10dp"
android:src="@mipmap/scale_add_icon" />
<View
android:layout_width="wrap_content"
android:layout_height="1dp"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@color/color_333" />
<ImageView
android:id="@+id/image_out"
android:layout_width="36dp"
android:layout_height="36dp"
android:padding="10dp"
android:src="@mipmap/scale_shrink_icon" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<data>
......
......@@ -59,9 +59,7 @@
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/image2"
app:url="@{viewModel.image3}"
/>
app:url="@{viewModel.image3}" />
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>
......@@ -15,6 +15,6 @@
android:layout_gravity="end"/>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_height="300dp"
android:layout_height="400dp"
android:layout_width="match_parent" />
</LinearLayout>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment