创建后如何操作谷歌地图
How to manipulate Google Map after creation?
我应该警告你,我对网站创建和Javascript非常陌生。 有了这个。 正因为如此,我在我正在创建的网站上有一个谷歌地图小部件。 它使地图创建变得非常容易,但如果我真的需要,我想我可以尝试自己编码。 除此之外,我想在地图的一侧添加按钮,这些按钮将转到我创建的一些标记。
我很难让地图对象在创建后对其进行操作。 我似乎找不到小部件对地图对象的调用,所以我只是无法使用使我的地图变量成为全局对象的想法。
我只是想更改默认缩放以开始。 以下是我基本上要做的事情,但每当执行代码时,但我的地图在屏幕上变成了一个灰色框。
<html>
<head>
<style>
#map {
width: 500px;
height: 400px;
margin: 0 auto 0 auto;
}
</style>
</head>
<script type="text/javascript"src="http://www.google.com/jsapi?key=YOUR_API_KEY_HERE"></script>
<script type="text/javascript"charset="utf-8">google.load("maps","2.x"); google.load("jquery","1.3.1");</script>
<body>
<div id="map"></div>
<script>
function initMap() {
var map;
var myOptions = {
center: {lat: 40, lng: 50},
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
}
var mapDiv = document.getElementById('map');
map = new google.maps.Map(mapDiv, myOptions);
}
google.maps.event.addDomListener(window, 'load', init_map);
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap" async defer></script>
<script>
function newLocation(newLat, newLng) {
//var mymap = new google.maps.Map(document.getElementById('map'));
var mymap = document.getElementById('map');
mymap.setZoom(4);
}
</script>
<INPUT TYPE="button" NAME="myButton" VALUE="Press This" onclick="newLocation(45,88)">
<body>
</html>
查看谷歌开发人员工具,我收到此错误"未捕获的类型错误:mymap.setZoom 不是一个函数。 我认为这意味着我得到的是地图区域而不是地图本身。
因此,是否可以抓取地图的实例以便我可以对其进行操作?
您
没有引用在initMap()
中创建的正确map
变量
我要改变的是将map
变量设为全局变量,以便包括newLocation()
在内的所有函数都可以访问此map
变量。
您的实现在 newLocation()
函数中使用 mymap
,它可以访问映射的div
容器,而不是实际的map object
本身,这就是为什么您无法更改 zoom
等属性的原因。
尝试将其结构化为这样,以便您拥有对 map 变量的正确引用。
<html>
<head>
<style>
#map {
width: 500px;
height: 400px;
margin: 0 auto 0 auto;
}
</style>
</head>
<script type="text/javascript"src="http://www.google.com/jsapi?key=YOUR_API_KEY_HERE"></script>
<script type="text/javascript"charset="utf-8">google.load("maps","2.x"); google.load("jquery","1.3.1");</script>
<body>
<div id="map"></div>
<script>
var map;
function initMap() {
var myOptions = {
center: {lat: 40, lng: 50},
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var mapDiv = document.getElementById('map');
map = new google.maps.Map(mapDiv, myOptions);
}
google.maps.event.addDomListener(window, 'load', init_map);
function newLocation(newLat, newLng) {
map.setZoom(4);
}
</script>
<script src="https://maps.googleapis.com/maps/api/js?callback=initMap" async defer></script>
<INPUT TYPE="button" NAME="myButton" VALUE="Press This" onclick="newLocation(45,88)">
<body>
</html>
相关文章:
- 谷歌地图固定位置覆盖
- 不显示带有本地json文件数据的谷歌地图脚本
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 谷歌地图标记不会显示
- 无法在JS中显示谷歌地图
- 科尔多瓦页面类应用程序中的多个谷歌地图
- 需要帮助谷歌地图方向面板在FancyBox中显示
- 在谷歌地图上获取事件的x,y坐标
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 模拟谷歌地图中的点击
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 缓存谷歌地图数据
- 谷歌地图劫持了iphone's滚动(触摸事件)-如何恢复
- 谷歌地图Api v3:点击信息窗口中的按钮时启动一个操作
- 如何为谷歌地图的addDOMListener添加操作
- 页面加载时的操作,以在谷歌地图概率上设置标记
- Angular 2 和谷歌地图 API.从组件操作映射的对象
- 创建后如何操作谷歌地图
- 当任何谷歌地图事件被触发时,如何触发操作