Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从谷歌地图获取当前缩放级别_Php_Mysql_Google Maps_Zooming - Fatal编程技术网

Php 从谷歌地图获取当前缩放级别

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

我正在PHP/MYSQL应用程序中使用google地图。我得到了地图表单Goolge Docs的代码,并对其进行了一些修改以适应应用程序。 应用程序中正在进行新的修改,现在应用程序需要知道“谷歌地图的当前缩放级别”。我上网查了一下,但没有找到明确的答案。 有可能吗?是否必须在每次缩放更改中重新加载页面? 这是代码,谢谢

  <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>