MapTimeBoston Leaflet Tutorial Объекты RatMap - PullRequest
0 голосов
/ 10 апреля 2019

Я следую за введением в Leaflet с https://maptimeboston.github.io/leaflet-intro/. На первой карте крыс мой код не смог отобразить объекты / местоположения грызунов на карте. Я непосредственно написал учебный код и все еще не смог получить объекты на моей карте. Все необходимые файлы находятся в том же каталоге (и имеют соответствующие имена), что и используемый html-файл.

Я новичок в HTML, GeoJSON, и мне не удалось найти метод, который я мог бы использовать для устранения неполадок. Файлы данных полны и содержат все ожидаемые значения / объекты. Я привык к Python / R / VBA, поэтому отсутствие сообщения об ошибке также является новым для меня.

Я запускаю файл HTML через браузер Chrome. HTML-файлы пишутся в Sublime Text

//make sure you have the jQuery and rodent GeoJSON files in HTML directory
<html>
<head>
  <title>A Leaflet map!</title>
  <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css"/>
  <script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
  <script src="jquery-2.1.1.min.js"></script>
  <style>
    #map{ height: 100% }
  </style>
</head>
<body>

  <div id="map"></div>

  <script>

  // initialize the map
  var map = L.map('map').setView([42.35, -71.08], 13);

  // load a tile layer
  L.tileLayer('http://tiles.mapc.org/basemap/{z}/{x}/{y}.png',
    {
      attribution: 'Tiles by <a href="http://mapc.org">MAPC</a>, Data by <a href="http://mass.gov/mgis">MassGIS</a>',
      maxZoom: 17,
      minZoom: 9
    }).addTo(map);

  // load GeoJSON from an external file
  $.getJSON("F://FinanceServer//HTML//rodents.geojson",function(data){
    // add GeoJSON layer to the map once the file is loaded
    L.geoJson(data).addTo(map);
  });

  </script>
</body>
</html>

Я ожидал увидеть что-то похожее на третью карту с вышеупомянутого учебного сайта.

1 Ответ

1 голос
/ 11 апреля 2019

URL-адрес вашего локального файла никогда не должен работать, особенно как абсолютный путь.

Браузеры не позволяют вам получить доступ к клиентской файловой системе по известным причинам безопасности.

Даже если выоткрыв HTML-страницу непосредственно из файловой системы (с протоколом file://), браузер Chrome не позволяет отправлять запросы AJAX на другие локальные файлы.В прошлый раз, когда я попробовал, это работает в других браузерах.

Даже если вы используете другой браузер, ваш URL должен быть относительным или указать протокол / начать с двойной косой черты, чтобы сделать его абсолютным.

Чтобы избежать большинства этих ограничений, стандартной практикой в ​​веб-разработке является обслуживание файлов с небольшим локальным сервером.

...