Php 从谷歌地图获取当前缩放级别
我正在PHP/MYSQL应用程序中使用google地图。我得到了地图表单Goolge Docs的代码,并对其进行了一些修改以适应应用程序。 应用程序中正在进行新的修改,现在应用程序需要知道“谷歌地图的当前缩放级别”。我上网查了一下,但没有找到明确的答案。 有可能吗?是否必须在每次缩放更改中重新加载页面? 这是代码,谢谢Php 从谷歌地图获取当前缩放级别,php,mysql,google-maps,zooming,Php,Mysql,Google Maps,Zooming,我正在PHP/MYSQL应用程序中使用google地图。我得到了地图表单Goolge Docs的代码,并对其进行了一些修改以适应应用程序。 应用程序中正在进行新的修改,现在应用程序需要知道“谷歌地图的当前缩放级别”。我上网查了一下,但没有找到明确的答案。 有可能吗?是否必须在每次缩放更改中重新加载页面? 这是代码,谢谢 <code> function load() { var map = new google.maps.Map(document.getElement
<code>
function load() {
var map = new google.maps.Map(document.getElementById("map"), {
center: new google.maps.LatLng(latitude,longitude),
zoom: zoommapa,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE
},
mapTypeId: 'roadmap'
});
// drap center
var image = 'images/icons/etapa/etapa.png';
var myLatLng = new google.maps.LatLng(latitude,longitude);
var beachMarker = new google.maps.Marker({
position: myLatLng,
map: map,
icon: image
});
var infoWindow = new google.maps.InfoWindow;
// Change this depending on the name of your PHP file
downloadUrl("marquers_motor_3.php", function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
//var name = 1;
var markers2 = [];
for (var i = 0; i < markers.length; i++) {
//var name = markers[i].getAttribute("name");
var image = markers[i].getAttribute("image");
var sombra = markers[i].getAttribute("sombra");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var orden = markers[i].getAttribute("order");
var name = markers[i].getAttribute("name"); // web_site email ciudad pais
var web_site = markers[i].getAttribute("web_site");
var email = markers[i].getAttribute("email");
var ciudad = markers[i].getAttribute("ciudad");
var pais = markers[i].getAttribute("pais");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
if (ciudad =="" || ciudad =='Desconocido') { ciudad = ""} else {ciudad =ciudad + " " }
if (!(web_site =="")) {web_site = "<a href='" + web_site + "' class='list' target='_blank'>" + web_site +"</a>"+"<br>"} else {web_site =""}
var html = "<div id='infoWindow'>" + orden + " - " + name + "<br>" + web_site + ciudad + " " + pais + "</div>";
//var name = name + 1;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: image,
shadow: sombra
});
var marker2 = new google.maps.Marker({
position: point
});
markers2.push(marker);
bindInfoWindow(marker, map, infoWindow, html);
}
});
var mcOptions = {gridSize: 50, maxZoom: 15};
var MarkerClusterer = new MarkerClusterer(map, markers2,mcOptions);
}
function bindInfoWindow(marker, map, infoWindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infoWindow.setContent(html);
infoWindow.open(map, marker);
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
//]]>
//google.maps.event.addDomListener(window, 'load', initialize);
函数加载(){
var map=new google.maps.map(document.getElementById(“map”){
中心:新google.maps.LatLng(纬度、经度),
zoom:zoommapa,
动物控制:对,
ZoomControl选项:{
样式:google.maps.ZoomControlStyle.LARGE
},
mapTypeId:“路线图”
});
//德拉普中心
var image='images/icons/etapa/etapa.png';
var mylatng=new google.maps.LatLng(纬度、经度);
var beachMarker=new google.maps.Marker({
职位:myLatLng,
地图:地图,
图标:图像
});
var infoWindow=new google.maps.infoWindow;
//根据PHP文件的名称更改此选项
下载URL(“marquers\u motor\u 3.php”,函数(数据){
var xml=data.responseXML;
var markers=xml.documentElement.getElementsByTagName(“标记”);
//变量名称=1;
var markers2=[];
对于(var i=0;i“}其他{website=“”}
var html=“”+orden+”-“+name+”
“+web_站点+ciudad+”“+pais+”;
//变量名称=名称+1;
var icon=customIcons[type]| |{};
var marker=new google.maps.marker({
地图:地图,
位置:点,,
图标:图像,
影子:索姆布拉
});
var marker2=新的google.maps.Marker({
位置:点
});
标记器2.推(标记器);
bindInfoWindow(标记、地图、infoWindow、html);
}
});
var mcOptions={gridSize:50,maxZoom:15};
var MarkerClusterer=新的MarkerClusterer(map、markers2、mcOptions);
}
函数bindInfoWindow(标记、地图、infoWindow、html){
google.maps.event.addListener(标记'click',函数(){
setContent(html);
信息窗口。打开(地图、标记);
});
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(请求、请求、状态);
}
};
打开('GET',url,true);
请求发送(空);
}
函数doNothing(){}
//]]>
//google.maps.event.addDomListener(窗口“加载”,初始化);
我假设应用程序需要知道缩放级别,但缩放级别在用户空间(客户端)中
使用javascript从地图中获取缩放级别(请参阅)
getZoom()
必须使用AJAX调用将其发送回服务器
服务器可以根据需要使用缩放级别
请记住,如果多个用户可以打开同一张地图,缩放级别可能会有所不同,那么所需的行为是什么?是的,您可以使用google.maps.map
对象的getZoom
方法获取地图的当前缩放级别
如果需要在缩放更改时触发方法,则可以收听google.maps.Map
对象的zoom\u changed
事件。有关google.maps.Map
对象的更多信息,请阅读:
考虑以下示例(要使其正常工作:在记事本中复制将文件另存为html并使用Chrome运行):
获取缩放演示
html,正文{height:100%;height:100%;margin:0;padding:0;}
#地图容器{高度:100%;宽度:100%;最小宽度:500px;最小高度:300px;}
//全局映射变量可以访问代码中任何位置的映射对象
var映射,
firstBoundChangedListener,
标记=[];
//添加随机标记
函数addMarkers(计数){
//map是google.maps.map对象
var bounds=map.getBounds();
var northEast=bounds.getNorthEast();
var soutwest=bounds.getsoutwest();
var minLat=Math.min(northEast.lat(),soutwest.lat());
var maxLat=Math.max(northEast.lat(),soutwest.lat());
var minLng=Math.min(northEast.lng(),soutwest.lng());
var maxLng=Math.max(northEast.lng(),soutwest.lng());
var latDifference=maxLat-minLat;
var lngDifference=最大液化天然气-最小液化天然气;
var latLngArray=新数组();
对于(变量i=0;i<!DOCTYPE html>
<html>
<head>
<title>Getting Zoom Demo</title>
<style type="text/css">
html, body{ height: 100%; height: 100%; margin: 0; padding: 0; }
#map-container{ height: 100%; width: 100%; min-width:500px; min-height:300px; }
</style>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
</head>
<body>
<div>
<label id="display-zoom-label">
</label>
</div>
<div id="map-container"></div>
<script>
// Global map variable to have access to map object everywhere in the code
var map,
firstBoundChangedListener,
markers = [];
// Add random markers
function addMarkers(count) {
// map is the google.maps.Map object
var bounds = map.getBounds();
var northEast = bounds.getNorthEast();
var southWest = bounds.getSouthWest();
var minLat = Math.min(northEast.lat(), southWest.lat());
var maxLat = Math.max(northEast.lat(), southWest.lat());
var minLng = Math.min(northEast.lng(), southWest.lng());
var maxLng = Math.max(northEast.lng(), southWest.lng());
var latDifference = maxLat - minLat;
var lngDifference = maxLng - minLng;
var latLngArray = new Array();
for (var i = 0; i < count; i++) {
var lat = minLat + Math.random() * latDifference;
var lng = minLng + Math.random() * lngDifference;
var latLng = new google.maps.LatLng(lat, lng);
latLngArray.push(latLng);
}
for (var i = 0; i < latLngArray.length; i++) {
var marker = new google.maps.Marker({
position: latLngArray[i],
title: "Marker: " + i
});
markers.push(marker);
marker.setMap(map);
}
}
function UpdateZoomLabel() {
var displayZoomLabel = document.getElementById("display-zoom-label"),
// get current zoom
zoomValue = map.getZoom();
displayZoomLabel.innerHTML = "The Current Map's Zoom is: " + zoomValue;
}
// Initialize the map object
function initialize() {
var latlng = new google.maps.LatLng(-34.397, 150.644);
var mapOptions = {
zoom: 8,
center: latlng
};
map = new google.maps.Map(document.getElementById('map-container'), mapOptions);
firstBoundChangedListener = google.maps.event.addListener(map, "bounds_changed", function () {
if (firstBoundChangedListener) google.maps.event.removeListener(firstBoundChangedListener);
// call add markers: add 'n' markers randomly
addMarkers(6);
});
//Listen for the 'zoom_changed' event of the map
google.maps.event.addListener(map, "zoom_changed", function () {
//show zoom in label
UpdateZoomLabel();
});
UpdateZoomLabel();
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</body>
</html>