0
Uygulamam sayım için api çağrıları yapar ve bu verileri Google Maps API v3 ile birlikte kullanır. Zamanın çoğunda beklendiği gibi çalışır, ancak 'Initmap tanımlı değil' veya 'google tanımlı değil' veya 'TypeError: map.data.getFeatureById (...) undefined' aralıklı bir hata alıyorum Herhangi bir mantıksal sebep olmaksızın.
HTML:Aralıklı 'google tanımlı' ve haritalar kullanarak diğer hataları alma api v3
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://maps.googleapis.com/maps/api/js?v=3&key=KEY1234&callback=initMap" async defer
></script>
<script src="js/mapfunc.js"></script>
</head>
<body>
<div id="map"></div>
<script>var map;
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: 35, lng: -106}
});
}</script>
</body>
</html>
JS:
function loadMapShapes() {
map.data.loadGeoJson('jsonya2.geojson', { idPropertyName: 'STATE' });
variable = 'B01003_001E,NAME';
variable2 = ',B01001F_002E';
loadCensusData(variable);
}
function loadCensusData(variable) {
// load the requested variable from the census API
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://api.census.gov/data/2014/acs5/?get=' +
variable + '&for=state:*&key=KEY123');
xhr.onload = function() {
var censusData = JSON.parse(xhr.responseText);
censusData.shift(); // the first row contains column names
censusData.forEach(function(row) {
censusMin = 0;
censusMax = 36000000;
var censusVariable = parseFloat(row[0]);
var stateName = row[1];
var stateId = row[2];
// keep track of min and max values
if (censusVariable < censusMin) {
censusMin = censusVariable;
}
if (censusVariable > censusMax) {
censusMax = censusVariable;
}
// update the existing row with the new data
coolid = map.data.getFeatureById(stateId);// <-- Here's where
//I get the error most often: "TypeError: map.data.getFeatureById(...) is undefined"
if (coolid !== undefined) {
map.data
.getFeatureById(stateId)
.setProperty('census_variable', censusVariable);
map.data
.getFeatureById(stateId)
.setProperty('census_variable1', stateName);
}
coolstate = map.data.getFeatureById(stateName);
});
Yine - Bu kod zamanın belki% 40 çalışır ve yukarıda açıklanan hatalardan biri zaman geri kalanını atar. Gün içinde hatalarda artış olduğunu fark edebilirim ancak emin olamıyorum. ayrıca fonksiyonlarını yürütmek için loadGeoJson arasında geri arama kullanın http://dukecitydigital.com/c1/
'
olan 'tanımsız' hatası:
kaynak
2016-07-17 12:03:44 CBEK
Teşekkürler CBEK - Tüm özellikimi kimliğime sarmak zorunda kaldım ve buna da propertis koydum. – phillydigital