php - 从 Google map 获取当前缩放级别

标签 php mysql google-maps zooming

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

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

最佳答案

我假设应用程序需要知道缩放级别,但缩放级别位于用户空间(客户端)。

  1. 使用 JavaScript 从 map 获取缩放级别(请参阅 https://developers.google.com/maps/documentation/javascript/reference?hl=nl#Map )

    map.getZoom();

  2. 必须使用 AJAX 调用将其发送回服务器

  3. 服务器可以根据需要调整缩放级别

请记住,如果多个用户可以打开同一个 map ,缩放级别可能会有所不同,那么所需的行为是什么?

关于php - 从 Google map 获取当前缩放级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20561245/

相关文章:

php - 脚本上传到实时服务器后不起作用

php - 当我尝试通过控制面板打开 xampp shell 时,应用程序无法正确启动 0xc0000142 错误

php - 使用 PHP 解析时,WHERE NOT EXISTS 在 SQL 中出现语法错误

javascript - Google API V3 和说明 (Javascript)

c - C语言获取 map 位置坐标

php - sql查询order by似乎不起作用

php - 时区函数帮助

php - Highcharts动态图表(按一定时间间隔更新)PHP+MySql示例

mysql - 在 MySQL 中,如何从一列输入不一致的日期中提取年份作为字符串?

android - 使用 Google Maps API for Android 搜索位置