Ko'proq

OpenLayers 3-dagi xususiyatlarni bosish oynasida GeoJSON xususiyatlarini popupda paydo bo'lishini xohlaysizmi?

OpenLayers 3-dagi xususiyatlarni bosish oynasida GeoJSON xususiyatlarini popupda paydo bo'lishini xohlaysizmi?


Menda asosiy qatlam va geojson klaster qatlami bo'lgan xarita mavjud. Xaritada alohida xususiyatni bosishni va xususiyatlarning tarkibini popupda ko'rsatishni xohlayman. Hozirda men faqat popupda ishlayapman, lekin funktsiya nomi va boshqa narsalar kabi ma'lumotlarni olishni istayman. Bu menga joylashuv popupini beradigan kodim:

var element = document.getElementById ('popup'); var popup = new ol.Overlay ({element: element, positioning: 'bottom-center', stopEvent: false}); map.addOverlay (popup); // map.on ('click', function (evt) {var feature = map.forEachFeatureAtPixel (evt.pixel, function (function, layer) {return return;}); agar (function) {var geometriya = function.getGeometry (); var coord = geometry.getCoordinates (); popup.setPosition (coord); coord = ol.proj.transform (coord, 'EPSG: 3857', 'EPSG: 4326'); $ (element) .popover ({'joylashtirish': 'top', 'html': rost, 'tarkib': ('

Manzil:

'+ koordinatali)}); $ (element) .popover ('show'); } else {$ (element) .popover ('yo'q qilish'); }});

Bu yaxshi ishlaydi, lekin men boshqa xususiyatlarni olishni xohlayman. Men sinab ko'rdimfeature.get ('bu erda xususiyat')o'rnigaxususiyati.getGeometry ();vageometry.getCoordinates ();Lekin bu shunday bo'ldi, chunki popup hech qachon ko'rinmas edi va men yong'inga qarshi vositada bo'lgan yagona narsa ol.js-da xato edib.slice () funktsiya emas. Shunday qilib, asosan, mening savolim: xususiyatning barcha GeoJSON xususiyatlarini popupda aks ettirishning aniq usuli bormi? Men bu erda nol orol misolidan foydalanib popupimni oldim

Va bu erda JSON xususiyatining bir misoli:

{"turi": "FeatureCollection", "xususiyatlari": [{"turi": "xususiyati", "geometriya": {"turi": "nuqta", "koordinatalari": [0.13138000,49.475577]}, "xususiyatlari" : {"name": "227006760", "speed": "55", "Nav_Status": "5"}}}}}

Siz olishingiz mumkin -xususiyati.get ('har qanday')- har qanday geojson xususiyati va ochilgan oynada ko'rsatish. Ushbu demoga qarang.

Siz ba'zi fikrlarni aralashtirdingiz. Shunday qilib, avval popupni joylashtirish uchun koordinatani oling:

var geometriya = feature.getGeometry (); var coord = geometry.getCoordinates ();

E'tibor bering, koordinatali transformatsiya yo'q.

Ikkinchidan, ochilgan tarkibni tayyorlash:

var content = '

'+ feature.get (' xususiyat bu erda ') +'

'; tarkib + = '
'+ feature.get (' other property ') +'
';

Va nihoyat, buni ko'rsating. To'g'ri?


Urunib ko'r

var geometriya = feature.getGeometry (); var coord = geometry.getCoordinates (); var type = geometry.getType ();

Videoni tomosha qiling: Leaflet Tutorial #1: Create a map with a marker using JavaScript