如何在外部文件中存储谷歌地图选项
How to store google map options in an external file
我正在使用Google Maps API v3,我想将地图选项存储在外部JS文件中,并与包含Google地图的其他页面共享地图选项。假设有两个不同的页面,它们有自己的谷歌地图,指向不同的位置,你希望通过设置一些控制选项,这些地图具有相同的外观。
我尝试过的:
在a.html
中
<!DOCTYPE html>
<html>
<head>
<style>
#map {width: 500px; height: 500px;}
</style>
</head>
<body>
<div id="map"></div>
<script src="map-options.js"></script>
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), MY_MAP_OPTIONS);
map.setCenter({lat: 40.782821, lng: -73.965596}); //New York
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap" async defer></script>
</body>
</html>
会有一些其他页面,如b.html
、c.html
等,指向不同的位置。
在map-options.js
中
var MY_MAP_OPTIONS = {
zoom: 10,
mapTypeControl: false,
streetViewControl: false,
zoomControl: true,
zoomControlOptions: {
position: google.maps.ControlPosition.RIGHT_TOP
}
};
显然,这些代码不起作用。问题是map-options.js
中的position: google.maps.ControlPosition.RIGHT_TOP
;浏览器不知道这是什么,因为在加载CCD_ 7时谷歌地图库还没有加载。
有解决这个问题的办法吗?或者,有没有其他方法可以与其他页面共享地图选项,避免在多个页面中写入相同的代码?
您可以尝试更改加载脚本的顺序,并在加载body时调用initMap函数,而不是在加载google map库时调用。
这样一来,谷歌地图库和外部js都将在调用initMap()之前加载。
<!DOCTYPE html>
<html>
<head>
<style>
#map {width: 500px; height: 500px;}
</style>
</head>
<body onload="initMap()">
<div id="map"></div>
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY">
<script src="map-options.js"></script>
<script>
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), MY_MAP_OPTIONS);
map.setCenter({lat: 40.782821, lng: -73.965596}); //New York
}
</script>
</script>
</body>
</html>
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 使用谷歌地图和Angular JS.正在尝试将坐标存储在变量中
- 如何在外部文件中存储谷歌地图选项
- 谷歌地图 API 中的存储标记和中心地图
- 使用本地存储绘制谷歌地图
- 将谷歌地图 api latLng 坐标存储到 js 数组
- 使用存储在App_Data中的Json数据,使用JavaScript和ASP.NET MVC在谷歌地图视图上显示
- 存储谷歌地图标记并从中选择特定标记
- 为标记添加唯一的信息窗口,并更新数据库以存储信息(谷歌地图api)
- JavaScript谷歌地图API如何将位置lat/long存储到全局变量
- 谷歌地图api V3存储输入
- 存储完整的谷歌地图路线
- 谷歌地图和存储地址在mysql数据库半径搜索相似
- 如何存储整个谷歌地图路线在数据库
- 在数组中存储谷歌地图标记
- 存储谷歌地图标记信息
- 本地存储的谷歌地图标记
- 使用KNOCKOUTJS从foursquare api获取数据以存储数据并使用谷歌地图api在地图上添加标记
- 谷歌地图api 3 -在javascript变量中存储值