首页 > 解决方案 > 不理解传单中 latLngBounds 的语法

问题描述

传单 latLngBounds() 函数有一个方法 getCenter() 但我不明白返回该值的语法。

var mk5 = L.latLngBounds.getCenter(); returns an error
var mk5 = L.latLngBounds().getCenter(); returns an error
var mk5 = L.latLngBounds({getCenter()}); returns an error

找到一个使用它的例子是不可能的。有人请告诉我使用这种方法的语法。

标签: javascriptleaflet

解决方案


正如文档所示:

  1. 创建第一个角:var corner1 = L.latLng(40.712, -74.227);
  2. 创建第二个角:var corner2 = L.latLng(40.774, -74.125);
  3. 创建边界:bounds = L.latLngBounds(corner1, corner2);
  4. 从实例调用getCenter方法:boundsbounds.getCenter()

这是一个例子:

<!DOCTYPE html>
<html>

  <head>

    <title>Quick Start - Leaflet</title>

    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />

    <link rel="stylesheet" href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
    <script src="https://unpkg.com/leaflet@1.6.0/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>



  </head>

  <body>



    <div id="mapid" style="width: 600px; height: 400px;"></div>
    <script>
      var mymap = L.map('mapid').setView([51.505, -0.09], 2);

      L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
        maxZoom: 18,
        attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
          '<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
          'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
        id: 'mapbox/streets-v11',
        tileSize: 512,
        zoomOffset: -1
      }).addTo(mymap);

      var corner1 = L.latLng(40.712, -74.227),
        corner2 = L.latLng(40.774, -74.125),
        bounds = L.latLngBounds(corner1, corner2)

      var rect = L.rectangle(bounds, {
        color: 'blue',
        weight: 1
      }).addTo(mymap);

      mymap.fitBounds(bounds)


      const markerCoords = bounds.getCenter()

      L.marker(markerCoords).addTo(mymap)

    </script>



  </body>

</html>


推荐阅读