Vairāk

FeatureClick nedarbosies cartoDB

FeatureClick nedarbosies cartoDB


Rediģēt: saite uz repo, kurā ir faili. Atverietindex.htmlfailuimportsuneksportsmapes.

Es varu dabūt visu, izņemotfeaturecClickstrādāt.

Mans JS:

window.onload = function () {var cartoDbTableName = 'sipri_import_export_map_1950_2014'; var domId = 'karte'; var mapStyle = document.getElementsByClassName ('kartes stils'); var lat = 0; var lon = 0; var zoomLvl = 2; var options = {centrs: [lat, lon], tālummaiņa: zoomLvl}; var mapObject = new L.Map (domId, opcijas); var layerSource = {user_name: 'chrismp', type: 'cartodb', apakšslāņi: [{sql: "SELECT * FROM" + cartoDbTableName + "WHERE (gwsyear <= 1950 UN gwsyear> 0)", cartocss: mapStyle [0]. iekšējaisHTML}]}; L.tileLayer ('http: // {s} .tile.openstreetmap.org / {z} / {x} / {y} .png ">

Jums ir jādefinē slānī pieejamās interaktivitātes slejas:

cartodb.createLayer (karte, {type: "cartodb", lietotāja_nosaukums: userName, apakšslāņi: [{sql: "SELECT * FROM tabula", cartocss: myCSS, interaktivitāte: ['cartodb_id', 'attribute1', 'attribute2']} ]})

Lai interaktivitāte darbotos, jums noteikti jāiekļauj datu datnes slejas, ar kurām vēlaties mijiedarboties. Jūsu gadījumā izskatās, ka jūs varētu interesētgwsyeardatu slejā.

Kodā createLayer jums jāmaina šādi:

cartodb.createLayer (mapObject, layerSource) .addTo (mapObject) .on ('izdarīts', funkcija (slānis) {layer.getSubLayer (0) .setInteraction (true); layer.getSubLayer (0) .setInteractivity ('gwsyear') ; // ir jāiekļauj vismaz viena kolonna, lai iespējotu mijiedarbības slāni.getSubLayer (0) .on ('featureClick', function (e, latlng, pos, data, subLayerIndex) {console.log (e, latlng, pos, data , subLayerIndex);}). on ('kļūda', function (err) {console.log ('featureClick error:' + err);});}). on on ('kļūda', function (err) {konsole. žurnāls (kļūdīties);});

Atšķirība ir:

layer.getSubLayer (0) .layer.getSubLayer (0) .setInteraction (true); layer.getSubLayer (0) .setInteractivity ('gwsyear');

Ja jūs neuztraucat, kura kolonna jāiekļauj, ieliecietcartodb_idtā vietā, jo tā ir agnostiķu kolonna.