2015-03-25 3 views
0

Я новичок в программировании, и я пытаюсь отобразить информацию о разрешении на карте листовка. Данные разрешений взяты из представления в Сократе. Я следую за кодом http://fire.seattle.io/, чтобы выяснить, как это сделать, и мне удалось воссоздать карту самостоятельно, но когда я пытаюсь использовать нужный вид, я продолжаю получать сообщение об ошибке «Неиспользуемая ошибка: недопустимый объект LatLng: (null, null)».Socrata views in Листовые карты

Вид имеет несколько записей без информации о координатах; Я хочу отфильтровать представление, поэтому я могу получать только действительные записи, но я пока не понял, как это сделать. Используя предложение where в конечной точке API (используя url с ресурсом), я могу сделать фильтр, но получаю неопределенное предупреждение и ошибку «Uncaught TypeError: Не могу прочитать длину свойства« неопределенного », указывающую на мой jquery.

Код из приложения, за которым я следую, использует другой URL для доступа к данным (используя url с api/views), но я не смог выполнить какой-либо фильтр или выбор (продолжайте получать записи с нулевыми координатами) ,

Как устранить эти записи с нулевыми значениями, чтобы я мог отображать данные на карте буклетов? Любая помощь приветствуется ...

Код ...

<!DOCTYPE html> 
<html> 
<head> 
<meta charset=utf-8 /> 
<title>Just a test</title> 
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' /> 
<script src='https://api.tiles.mapbox.com/mapbox.js/v2.1.6/mapbox.js'></script> 
<script src='http://fire.seattle.io/js/leaflet/leaflet.js'></script> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

<link href='https://api.tiles.mapbox.com/mapbox.js/v2.1.6/mapbox.css' rel='stylesheet' /> 

<style> 
    body { margin:0; padding:0; } 
    #map { position:absolute; top:0; bottom:0; width:100%; } 
</style> 
</head> 
<body> 

<div id='map'></div> 
<script> 
$.getJSON('https://data.pr.gov/api/views/93ae-6ffm/rows.json?jsonp=?&max_rows=2', function(results) { 
    console.log(results.data); 

var map = L.map('map').setView([18.25,-66.45], 9); 

    // add an OpenStreetMap tile layer 
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { 
    attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors' 
}).addTo(map); 

    $.each(results.data, function(index, value) { 
    L.marker([value[28], value[29]]).addTo(map) 
    .bindPopup('<h6>' + value[6] + '</h6>' + value[7] + '<br>'); 
    }); 

}); 

</script> 


</body> 
</html> 

Благодарности

ответ

0

Похоже, вы встречая результаты, которые не имеют действительную широту, долгое место, связанное с их. Для этих записей ваши поля широты и долготы будут null. В вашем цикле $.each вы можете проверить их и пропустить.

Я бы также рекомендовал вместо этого использовать новый пример Криса Уона soda-leaflet. Он использует наш современный API SODA 2.0, а также включает в себя некоторые функции для фильтрации и стилизации ваших данных.