在谷歌地图javascript中设置缩放级别
Setting zoom level in google maps javascript
我已经花了很长时间试图获得一个带有单个标记的谷歌地图。我已经完成了javascript,但无法获得11的缩放级别。我开发了一个可以使用多个标记的地图,代码为"MYMAP.bounds.extend(point);"以扩展地图。对于这个地图,我只有一个标记,当它加载时,我希望它位于地图的中心。感谢您的任何帮助。
打开代码。。。。。
// extend the bounds to include the new point
// I have another map with multiple markers
// and the code below extends the map bounds
// for this map, I only have one marker
// and I want it centered on the lat & long
// zoom level 11. I thought I set that level
// on line 11 but it doesn't seem to work as intended
MYMAP.bounds.extend(point);
var marker = new google.maps.Marker({
position: point,
map: MYMAP.map
});
var infoWindow = new google.maps.InfoWindow();
var html='<strong>'+name+'</strong.><br />'+address;
google.maps.event.addListener(marker, 'mouseover', function() {
infoWindow.setContent(html);
infoWindow.open(MYMAP.map, marker);
});
google.maps.event.addListener(marker,'mouseout', function() {
infoWindow.close();
});
MYMAP.map.fitBounds(MYMAP.bounds);
});
});
}
- 记下标记的数量(我建议将它们排列成一个阵列)
- 如果是1个标记,则将地图的中心设置为该标记,并将缩放设置为11
- 如果>1个标记,请使用map.fitBounds
概念验证小提琴
代码片段:
$(document).ready(function() {
$("#map").css({
// height: 700,
// width: 800
});
var myLatLng = new google.maps.LatLng(46.0772870, -118.2938430);
MYMAP.init('#map', myLatLng, 11);
$("#showmarkers").ready(function(e) {
MYMAP.placeMarkers('location_markers.xml');
});
});
var MYMAP = {
map: null,
bounds: null,
markers: []
}
MYMAP.init = function(selector, latLng, zoom) {
var myOptions = {
zoom: zoom,
center: latLng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
this.map = new google.maps.Map($(selector)[0], myOptions);
this.bounds = new google.maps.LatLngBounds();
}
MYMAP.placeMarkers = function(filename) {
//$.get(filename, function(xml){
var xml = xmlParse(xmlString);
$(xml).find("marker").each(function() {
var name = $(this).find('name').text();
var address = $(this).find('address').text();
// create a new LatLng point for the marker
var lat = $(this).find('lat').text();
var lng = $(this).find('lng').text();
var point = new google.maps.LatLng(parseFloat(lat), parseFloat(lng));
// extend the bounds to include the new point
// I have another map with multiple markers
// and the code below extends the map bounds
// for this map, I only have one marker
// and I want it centered on the lat & long
// zoom level 11. I thought I set that level
// on line 11 but it doesn't seem to work as intended
MYMAP.bounds.extend(point);
var marker = new google.maps.Marker({
position: point,
map: MYMAP.map
});
var infoWindow = new google.maps.InfoWindow();
var html = '<strong>' + name + '</strong.><br />' + address;
google.maps.event.addListener(marker, 'mouseover', function() {
infoWindow.setContent(html);
infoWindow.open(MYMAP.map, marker);
});
google.maps.event.addListener(marker, 'mouseout', function() {
infoWindow.close();
});
MYMAP.markers.push(marker);
if (MYMAP.markers.length == 1) {
MYMAP.map.setCenter(marker.getPosition());
} else {
MYMAP.map.fitBounds(MYMAP.bounds);
}
});
//});
}
function xmlParse(str) {
if (typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined') {
var doc = new ActiveXObject('Microsoft.XMLDOM');
doc.loadXML(str);
return doc;
}
if (typeof DOMParser != 'undefined') {
return (new DOMParser()).parseFromString(str, 'text/xml');
}
return createElement('div', null);
}
var xmlString = '<markers><marker><lat>42</lat><lng>-72</lng><name>somewhere</name><address>between Southbridge and Woodstock</address></marker><!-- marker><lat>35</lat><lng>-117</lng><name>somewhere else</name><address>Southern California</address></marker --></markers>';
html,
body,
#map {
height: 100%;
width: 100%;
margin: 0px;
padding: 0px
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js"></script>
<div id="map" style="border: 2px solid #3872ac;"></div>
<input type="button" id="showmarkers" />
相关文章:
- 动态设置谷歌地图缩放
- 从结果集中自动设置谷歌地图缩放
- 高图表 - 在缩放重置中设置最大值和最小值
- jquery ui地图设置缩放级别
- 如何平滑地设置HTML5画布fillText()的缩放动画
- 在D3中设置缩放功能后,如何删除缩放功能
- 如何在谷歌地图中设置标记的最佳缩放
- 如何为您的网站/视口设置最小宽度,并在宽度低于该宽度时进行浏览器缩放
- 如何使用 Gmap4rails 设置缩放级别
- 缩放时设置元素的重力
- 如何设置加载 JSON 图层的最小缩放比例
- 当我更改默认缩放设置时,Google Maps JavaScript API 不会缩放
- 从 C# 代码隐藏设置传单缩放区域
- 根据屏幕/设备宽度设置谷歌地图API V3缩放级别
- 如何在窗口缩小/缩放级别小于 1 时将窗口缩放设置为默认值
- 如何在新的谷歌地图上设置默认缩放级别
- 在 Vis.js 中设置缩放级别
- 将元素的宽度设置为等于监视器大小,而不会在缩放时发生变化
- 背景大小设置为包含的正文标签上的位置和缩放元素
- CSS或如何修复浏览器具有不同DPI/缩放设置时的外观