Google maps 谷歌地图在Onsen用户界面上的点显示
我担心与Onsen UI一起使用的google地图插件: 当我的谷歌地图div(canvas)直接位于index.html页面时,我可以完美地显示谷歌地图 当我通过Onsen UI侧菜单浏览到任何其他页面时,google地图将无法再显示在浏览到的任何页面上。当我返回index.html页面时,它不再工作(地图显示为白色) 如果我在导航器定义中加入了任何起始页属性,它也不起作用(ons navigator id=“navi”page=“start\u page”/ons navigator),这就是为什么我只允许:ons navigator id=“navi”/ons navigator 我知道关于这个问题也有一个类似的话题,但它已经被关闭了,问题并没有得到解决:github.com/mapsplugin/cordova-plugin-googlemaps/issues/324 我附上一个pdf文件来描述序列和问题(您可以在线查看,无需下载): 非常感谢你的帮助 这是我的Index.html:Google maps 谷歌地图在Onsen用户界面上的点显示,google-maps,onsen-ui,Google Maps,Onsen Ui,我担心与Onsen UI一起使用的google地图插件: 当我的谷歌地图div(canvas)直接位于index.html页面时,我可以完美地显示谷歌地图 当我通过Onsen UI侧菜单浏览到任何其他页面时,google地图将无法再显示在浏览到的任何页面上。当我返回index.html页面时,它不再工作(地图显示为白色) 如果我在导航器定义中加入了任何起始页属性,它也不起作用(ons navigator id=“navi”page=“start\u page”/ons navigator),这
<!DOCTYPE html>
<html lang='en' ng-app='app'>
<head>
<!-- meta Charset-->
<meta charset='utf-8'>
<script src='js/angular.min.js'></script>
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
<link rel='stylesheet' href='onsenui/css/onsenui.css'/>
<link rel='stylesheet' href="css/onsen-css-components.css"/>
<script src='onsenui/js/onsenui.js'></script>
<script src='onsenui/js/angular-onsenui.js'></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<meta name='viewport' content='user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width'>
</head>
<body ng-controller="AppCtrl">
<ons-splitter>
<ons-splitter-side id="menu" side="left" width="220px" collapse swipeable >
<ons-page>
<ons-list>
<ons-list-item>
<div class="text_menu_color" ng-click="fn.load('index.html')">Index</div>
</ons-list-item>
<ons-list-item>
<div class="text_menu_color" ng-click="fn.load('html/dashboard.html')">Dashboard</div>
</ons-list-item>
</ons-list>
</ons-page>
</ons-splitter-side>
<ons-splitter-content>
<ons-navigator id="navi"></ons-navigator>
</ons-splitter-content>
</ons-splitter>
<h3>Index.html</h3>
<div id="map_canvas_1" style="position:fixed;width:160px;height:320px;left:10px;bottom:150px;background: blue;border: 2px solid black"><h3>map 1</h3></div>
<button ng-click="show_map_1()" style="position:fixed;width:160px;height:100px; left:10px;bottom:30px">Show map 1</button>
<script>
ons.platform.select('android')
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {window.powermanagement.acquire()}
angular.module('app', ['onsen'])
.controller('AppCtrl', function($scope) {
$scope.show_map_1 = function(){
$scope.map_1=""
$scope.map_1 = plugin.google.maps.Map.getMap(document.getElementById('map_canvas_1'));
$scope.map_1.addEventListener(plugin.google.maps.event.MAP_READY, $scope.onMapReady_1)
}
$scope.show_map_2 = function(){
$scope.map_2=""
$scope.map_2 = plugin.google.maps.Map.getMap(document.getElementById('map_canvas_1'));
$scope.map_2.addEventListener(plugin.google.maps.event.MAP_READY, $scope.onMapReady_2)
}
$scope.onMapReady_1 = function() {
$scope.map_1.setDiv(document.getElementById('map_canvas_1'))
$scope.map_1.refreshLayout();
$scope.map_1.setBackgroundColor('green')
}
$scope.onMapReady_2 = function() {
$scope.map_2.setDiv(document.getElementById('map_canvas_2'))
$scope.map_2.refreshLayout();
$scope.map_2.setBackgroundColor('green')
}
$scope.fn = {};
$scope.fn.load = function(page) {
var menu = document.getElementById('menu');
var navi = document.getElementById('navi');
menu.close();
navi.resetToPage(page, {animation: 'slide', animationOptions:{duration: 0.4, delay: 0, timing: 'ease-in'}});
};
})
</script>
</body>
</html>
指数
仪表板
Index.html
地图1
显示地图1
ons.platform.select('android')
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
函数onDeviceReady(){window.powermanagement.acquire()}
角度模块('app',['onsen']))
.controller('AppCtrl',函数($scope){
$scope.show_map_1=函数(){
$scope.map_1=“”
$scope.map_1=plugin.google.maps.map.getMap(document.getElementById('map_canvas_1'));
$scope.map_1.addEventListener(plugin.google.maps.event.map_READY,$scope.onMapReady_1)
}
$scope.show_map_2=函数(){
$scope.map_2=“”
$scope.map_2=plugin.google.maps.map.getMap(document.getElementById('map_canvas_1'));
$scope.map_2.addEventListener(plugin.google.maps.event.map_READY,$scope.onMapReady_2)
}
$scope.onMapReady_1=函数(){
$scope.map\u 1.setDiv(document.getElementById('map\u canvas\u 1'))
$scope.map_1.refreshLayout();
$scope.map_1.setBackgroundColor('绿色')
}
$scope.onMapReady_2=函数(){
$scope.map\u 2.setDiv(document.getElementById('map\u canvas\u 2'))
$scope.map_2.refreshLayout();
$scope.map_2.setBackgroundColor('绿色')
}
$scope.fn={};
$scope.fn.load=函数(第页){
var menu=document.getElementById('menu');
var navi=document.getElementById('navi');
menu.close();
重新设置页面(第页,{动画:'幻灯片',动画选项:{持续时间:0.4,延迟:0,计时:'轻松'});
};
})
这是我的Dashboard.html:
<ons-page>
<h3>Dashboard.html</h3>
<div id="map_canvas_2" style="position:fixed;width:160px;height:320px;right:10px;bottom:150px;background: blue;border: 2px solid black" ><h3>map 2</h3></div>
<button ng-click="show_map_2()" style="position:fixed;width:160px;height:100px; right:10px;bottom:30px" >Show map 2</button>
</ons-page>
Dashboard.html
地图2
显示地图2
我设法解决了这个问题
对于那些在使用带有Onsen UI的google maps插件时遇到同样问题的用户,可以在不使用该插件的情况下使用google maps,无论您访问哪个页面,它都可以通过Onsen navigator完美工作
有人已经发布了关于如何在没有插件的情况下使用谷歌地图的解释。它工作得很好:
干杯我设法解决了这个问题 对于那些在使用带有Onsen UI的google maps插件时遇到同样问题的用户,可以在不使用该插件的情况下使用google maps,无论您访问哪个页面,它都可以通过Onsen navigator完美工作 有人已经发布了关于如何在没有插件的情况下使用谷歌地图的解释。它工作得很好:
CheersOnsenUI为页面动态添加一个背景div,检查您的map容器元素并检查,因为所有父级都必须使用此css样式透明
背景颜色:rgba(0,0,0,0)代码>
对我来说,有一个div用类“page--background”隐藏了地图,该类不是由插件动态设置为透明的(因为它是一个无父div,具有绝对位置),示例:
<div class="page__background page--material__background" __plugindomid="pgm423934967639"></div>
<div class="page__content page--material__content _gmaps_cdv_" __plugindomid="pgm1136479823937">
<div id="mymap-container" class="gmap-container _gmaps_cdv_" __pluginmapid="map_0_147744461355" style="background-color: rgba(200, 200, 200, 0.5); position: relative; overflow: hidden;" __plugindomid="pgm888819903812"><div __plugindomid="pgm1177970622685" style="position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; overflow: visible; z-index: 0;"></div></div></div>
此处(页面底部)对此进行了解释:OnsenUI为页面动态添加一个背景div,检查映射容器元素并检查,因为所有父级都必须使用此css样式透明背景颜色:rgba(0,0,0,0)代码>
对我来说,有一个div用类“page--background”隐藏了地图,该类不是由插件动态设置为透明的(因为它是一个无父div,具有绝对位置),示例:
<div class="page__background page--material__background" __plugindomid="pgm423934967639"></div>
<div class="page__content page--material__content _gmaps_cdv_" __plugindomid="pgm1136479823937">
<div id="mymap-container" class="gmap-container _gmaps_cdv_" __pluginmapid="map_0_147744461355" style="background-color: rgba(200, 200, 200, 0.5); position: relative; overflow: hidden;" __plugindomid="pgm888819903812"><div __plugindomid="pgm1177970622685" style="position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; overflow: visible; z-index: 0;"></div></div></div>
这里(页面底部)对此进行了解释:正如您在anwser中所说,您可以始终使用Javascript Web API,下面是Web API和本机API之间的比较表。正如您在anwser中所说,您可以始终使用Javascript Web API,下面是Web API和本机API之间的比较表。